Aller au contenu


Photo

Glenn Robot Humanoide


  • Veuillez vous connecter pour répondre
994 réponses à ce sujet

#661 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 15 décembre 2017 - 05:28

Merci bien R1D1, c'est ce que je me disais pour le code de la communication.

 

Après une question me vient, devrais je découper chaque capteur, driver etc etc séparément ou en faire un fichier unique et taper dedans, perso je suis partant pour la première idée de faire un prog pour chaque capteurs...

Et apparemment on peux utiliser les pointeurs avec arduino :)

http://www.locoduino.org/spip.php?article106

 

Je me pose encore quelques questions, mais bon, petit à petit, déjà dégrossir le travail ^^


signature_01.png -->

 

Mon Tipeee
 


#662 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 15 décembre 2017 - 06:09

Si ta librairie est petite, tu peux tout avoir dans un fichier, mais en général, mieux vaut avoir un fichier cpp/h par classe. Quitte à avoir un fichier header qui regroupe les headers des fichiers individuels, e.g. :
// Sensors.h
// ---------
#include "Ultrasound.h"
#include "IR.h"
// ...
donc pas comme je l'ai fait dans ma librairie :D
Je n'ai pas testé l'influence sur la taille du code, mais il est probablement plus économique de pouvoir faire ' #include "sensors/distance/Ultrasound.h" ' que ' #include "sensors.h" ' et de rajouter tous les prototypes dont on a pas besoin.

Comme je le disais sur Discord, l'utilisation des pointeurs et l'organisation en classes sont des outils différents (et complémentaires).
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#663 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 15 décembre 2017 - 06:19

Oui, j'ai vu que les pointeurs et les classes pouvaient être super pratique pour certaines choses, cela évite de d'avoir une variable redondante si je puis dire.

Enfin j'imagine bien la chose.

 

Quel est le problème d'avoir plusieurs classes ?

Du moins, y a t'il un problème à avoir plusieurs classes pour un capteur si il y en a besoin ?

 

Hum, bien compris sur cette ligne : "Je n'ai pas testé l'influence sur la taille du code, mais il est probablement plus économique de pouvoir faire ' #include "sensors/distance/Ultrasound.h" ' que ' #include "sensors.h" ' et de rajouter tous les prototypes dont on a pas besoin." cela inclut quoi au juste ?


signature_01.png -->

 

Mon Tipeee
 


#664 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 16 décembre 2017 - 01:29

Quel est le problème d'avoir plusieurs classes ?
Du moins, y a t'il un problème à avoir plusieurs classes pour un capteur si il y en a besoin ?
 
Hum, bien compris sur cette ligne : "Je n'ai pas testé l'influence sur la taille du code, mais il est probablement plus économique de pouvoir faire ' #include "sensors/distance/Ultrasound.h" ' que ' #include "sensors.h" ' et de rajouter tous les prototypes dont on a pas besoin." cela inclut quoi au juste ?

J'ai pas compris tes questions ^^
Pour un capteur (matériel que tu branches sur ta carte), tu écris une classe qui te permet de le gérer facilement le capteur : sortir la valeur mesurée, faire des calculs simples dessus, initialiser les pins, etc.
En général, une classe devrait suffire :le principe de la POO, c'est que chaque classe a une fonction définie (e.g. gérer le capteur). Si une classe commence à tout faire, on appelle ça un "God object" (https://fr.wikipedia...wiki/God_object), c'est un mauvais design du code. À éviter si possible.

Pour "#include ...", je donne juste des exemples pour illustrer différentes organisations du code, ce qu'il y a vraiment dans les fichiers, ça dépend de tes besoins avec le capteur.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#665 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 16 décembre 2017 - 01:41

Oki Doki. ^^


signature_01.png -->

 

Mon Tipeee
 


#666 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 23 décembre 2017 - 07:45

Plop les maker's, juste un ptit coucou, j'ai essayé de faire un schéma avec Fritzing, les micros ne sont pas branchés, et pour les ventilateurs j'aurais des questions plus tard ^^

 

 

Glenn_02_bb.png

 

 

Glenn_02_schéma.png

 

J'espère que c'est pas trop à la ramasse mon truc ^^

 

...et je n'ai pas trouvé le driver Maestro pour Frtizing.

 

Merci


signature_01.png -->

 

Mon Tipeee
 


#667 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 23 décembre 2017 - 08:17

Comment tu alimente tout ça ?

C'est quoi le composant à gauche de l'écran oled ?



#668 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 23 décembre 2017 - 09:10

J'ai une alimentation pour la pi qui elle alimente la mega, et j'ai une autre alimentation pour le driver maestro.
A gauche c'est l'IMU.


Modifié par Oliver17, 23 décembre 2017 - 09:22 .

signature_01.png -->

 

Mon Tipeee
 


#669 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 28 décembre 2017 - 10:30

Plop les maker's, étant toujours à la recherche de savoir ^^ là je me pose une tite question...

 

En programmation, si je développe plusieurs fichiers (POO) pour certains modules et ce que je peux faire une interruption d'un programme pour tous simplement éviter que ce module consomme pendant qu'il n'est pas en service ??

 

Mon idée et par exemple le capteur de distance Vl53L0x ne servira pas toujours, et par une commande booléenne je lui dis donc si il est en service ou non, et donc, ni le programme, ni le capteur ne sont en service, est ce possible ?? 

 

Bien sur si cela fonctionne l'idée et de l'appliquer à plusieurs capteurs, module etc etc, genre faire une liste de qui doit être activé ou non.

 

J'espère être clair :)

 

Merci


signature_01.png -->

 

Mon Tipeee
 


#670 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 766 messages
  • Gender:Male

Posté 28 décembre 2017 - 02:15

Et bien, c'est le principe de l'interruption.
Je n'ai pas encore finit mon bouquin, et donc je ne vais pas pouvoir te venir en aide, mais je vais attendre patiemment la réponse à ton problème.

#671 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 28 décembre 2017 - 03:00

Ok, c'est bien ce qu'il me semblait, c'est possible ^^

 

Quel livre lis tu ??

Et si c'est sur le C++ qu'en penses tu ??

 

Car j'ai un vieux livre de C++ mais il doit avoir au moins 15 ans facile, si ce n'est plus.

 

Edit : pour dire, le prix est encore en franc :) (62 francs).


Modifié par Oliver17, 28 décembre 2017 - 03:24 .

signature_01.png -->

 

Mon Tipeee
 


#672 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 28 décembre 2017 - 05:02

Fizz Oliver !
Pas sûr de comprendre complètement ce que tu envisages.
Pour utiliser le capteur, il faut un programme qui gère l'interaction avec le matériel. Par exemple, le code sur l'arduino qui lit les pins du capteur ; c'est le driver du capteur. Sur l'arduino, tu peux avoir plusieurs capteurs branchés et au lieu de lire les données de chacun, ne lire que certains.
Mais ne pas lire certains pins n'a probablement pas beaucoup d'influence sur la conso. L'arduino peut également gérer l'alimentation du capteur, et dans ce cas, tu peux certainement économiser de l'énergie.
Si tu gères ton capteur directement avec la Pi et un programme dédié, la solution est de quitter le programme à certaines conditions (en gros, arriver à la fin du main). Mais dans ce cas, il faut que tu fasses communiquer le programme principal et le programme qui gère le capteur.
Pour le coup, ROS est bien pratique pour ça. :)
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#673 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 28 décembre 2017 - 05:33

Oki doki ^^


signature_01.png -->

 

Mon Tipeee
 


#674 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 28 décembre 2017 - 07:42

je peux faire une interruption d'un programme pour tous simplement éviter que ce module consomme pendant qu'il n'est pas en service ??

 

Tu veux dire libérer la mémoire ? Ou bien tu veux que le capteur ne consomme plus d'électricité ? Peut-être les 2.

 

Si tu veux libérer la mémoire, il faut gérer tout ça dans le destructeur de ta classe et détruire les objets instanciés.

 

Si tu veux désactiver un capteur, il faut que celui-ci te le permette et faire comme ce doit être décrit dans sa doc.

 

Une interruption, ce n'est pas ça. Une interruption c'est un évènement.

 

Et il n'y a pas de lien entre tout ça et fait de faire des classes dans des fichiers séparés ou pas.

 

Je crois que j'ai pas compris non-plus.



#675 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 28 décembre 2017 - 07:49

Si si, tu as à peu prés résumé le problème, et R1D1 m'a fait un cour rapide sur le discord ^^

 

Merci Path tes indications sont les bienvenues et utiles.

 

PS : ouais je sais j'ai toujours autant de mal à me faire comprendre, décidément ^^


signature_01.png -->

 

Mon Tipeee
 


#676 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 766 messages
  • Gender:Male

Posté 28 décembre 2017 - 07:56

Quel livre lis tu ??

https://www.amazon.f...0?ie=UTF8&psc=1
https://www.amazon.f...0?ie=UTF8&psc=1
http://www.robot-maker.com/shop/livres-robotique/176-boite-outils-arduino.html

Je pensais que l'idée c'était de provoquer une interruption avec un capteur. Avec un bouton poussoir, par exemple.
Mais bon, tant pis.

#677 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 28 décembre 2017 - 08:01

Ok vu le discord :)

Il faut que tu pratique Oliver !! ça va venir :)



#678 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 28 décembre 2017 - 08:14

C'est clair, il y a pas mal de chose que je commence à bien saisir, faut vraiment que je m'y mette, enfin déjà comme je disais à R1D1 : 

 

- Créer un code pour le VL53 qui me permettra de créer donc un objet dans le main() arduino sans avoir tous le code de base du VL53
- Ensuite que la Pi puisse récupérer l'information.

 

Et par la suite essayer de m'amuser avec tous le reste dans la même optique d'échange entres les deux cartes ^^

 

Mais oui, il faut absolument que je m'y mette à fond à coder.
 

PS : j'ai créer un post pour trouver un éventuel livre sur le C++, une sorte de bible complète avec des cours et exemples si possible. 


signature_01.png -->

 

Mon Tipeee
 


#679 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 04 janvier 2018 - 07:30

Bon ben aujourd'hui un peu de modélisation, étant donné qu'il était trop petit (de peu) il sera un peu plus grand du coup ^^ (environ 90 cm léger plus je pense).

 

Il faut que je retouche, le bras et la tête pour mettre tous ça aux bonnes proportions.

Work In Progress 

 

Glenn_04_v09_r01.png

 

^^


signature_01.png -->

 

Mon Tipeee
 


#680 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 766 messages
  • Gender:Male

Posté 04 janvier 2018 - 09:11

Vraiment très beau !




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users