Aller au contenu


maximusk

Inscrit(e) (le) 26 mai 2016
Déconnecté Dernière activité mai 24 2019 04:43
-----

#86880 Nouveau tutoriel

Posté par maximusk - 21 août 2017 - 07:12

Pas mal, par contre pour les deux dernières parties (chainage et ajout d'entrées), tu devrais ajouter des schémas.
Et l'ajout d'entrée, ce n'est pas une bidouille ou un truc "sale", c'est le principe du multiplexage, on l'utilise dans l'autre sens avec les afficheurs 7 segments, et généralement en matrices avec des boutons (avec 16 boutons tu peux passer de 16 a 8 entrées sorties par exemple).


#86427 projet de robot

Posté par maximusk - 03 août 2017 - 04:17

Et si tu es sur téléphone, il n'y a pas de signature, alors elle dit quelque chose comme :
"Sur Robot-maker y'a pas que le forum, y'a plein de trucs intéressants comme des tutos, des articles, ou des ouvrages !".

Sinon, comme a dit Oliver, pour la robotique, j'aurais tendance a te recommander d'apprendre le C et le C++, qui sont les deux langages de base dans les systèmes embarqués (et l'assembleur si vraiment t'es un bourrin).

Commences par des choses simples, en plus avec les nombreux fournisseurs chinois, on peut vraiment faire des petits robots a base d'arduino pour pas cher. Avec une bradboard, des fils, et quelques composants, il y a moyen d'apprendre les bases de l'électronique.

Les livres, c'est bien si tu aimes le format papier, mais on trouve a peu près tout ce dont on a besoin sur internet, et c'est gratuit (les livres techniques coûtent vraiment cher).


#86412 Premier prototype Quadrupède

Posté par maximusk - 03 août 2017 - 09:28

Un MOSFET c'est mieux pour commuter, car sa résistance passante entre Drain et Source (Rdson) est très faible, parfois en dessous du mohm pour les meilleurs. Par contre, un mosfet se commande en tension, donc pour qu'il limite le courant, il faut convertir le courant en tension.




#86411 Projet robot quadrupède

Posté par maximusk - 03 août 2017 - 07:34

Avec le convertisseur de 5A, tu risques que la piste chauffe. D'après les calculs que j'ai fait sur un site, je dirais environ 50° a 5A. C'est beaucoup, mais ça ne devrait pas risquer grand chose, surtout que tu ne tireras pas tout le temps 5A.

Pour le convertisseur, comme l'a expliqué Resethel, le hacheur série est un convertisseur buck (abaisseur de tension), et le hacheur parallèle est un convertisseur boost (élévateur de tension). Ce sont deux types d'alimentations a découpages differentes, celles qu'on retrouve le plus sur les convertisseurs pas cher. Mais il faut savoir qu'il existe plein d'autres topologies d'alimentation a découpage, dont certaines qui peuvent a la fois abaisser et élever la tension (buck-boost, flyback, ...).

Pour les masses, ce qui peut se passer, c'est que les potentiels sont différents entre tes cartes.
Imaginons que tu ne relies pas les masses ensembles. La masse de ton arduino est la référence, donc on va dire qu'elle est a 0V. La masse de ton contrôleur de servo peut être differente, par exemple 5V.
Du coup, quand ton arduino mettra 5V sur une ligne de l'I2C, ça correspondra a 0V pour le convertisseur. Qui prendra cela pour un état bas. Et pire, quand ton arduino enverra 0V (pour signaler l'État bas, ça fera -5V pour le contrôleur, qui dans le meilleur des cas, est protégé et prendra ça comme un état bas, et dans le pire des cas sera détruit car pas fait pour les tensions négatives.

Mais dans ton cas, tu ne devrais pas avoir besoin de le faire, car c'est déjà faut dans le contrôleur de servos et le convertisseur, donc même sans le fil noir que tu as ajouté, toutes les masses sont reliées ensemble.

Et pour les pullup de l'I2C, pour faire simple tu n'as pas besoin de le faire car arduino le fait pour toi. Il faut vraiment que j'écrive un truc sur l'I2C, parce qu'il y a vraiment beaucoup d'incompréhensions et d'idées reçues a ce sujet, et la plupart des ressources en français se limitent a I2C avec Arduino / WiringPi, sans aucun détail sur la partie physique, le protocole en lui même, ou d'autres plateformes.


#86405 Premier prototype Quadrupède

Posté par maximusk - 02 août 2017 - 09:50

Le lien du schéma ne marche pas, donc je ne peux pas trop te dire pour le montage.

Un thyristor se commande en tension, mais mettre une résistance (plutôt de 200ohm que 1k, mais sinon c'est bon). En effet, la gate a une capacité, et le temps qu'elle soit chargée (quelques ms), c'est comme un court circuit. Ce n'est pas problématique dans ton cas, mais si tu veux le commandée avec un microcontrôleur, c'est un coup a l'endommager.

Si tout le courant passe par le transistor, je peux te dire que le 2n2222a va cramer. D'après la datasheet, il supporte au max 800mA en continu.

Après j'attends le schéma pour confirmar.


#86354 Disque SATA

Posté par maximusk - 01 août 2017 - 08:12

Sinon achètes un mac =P (oui je mets mon casque et mon armure pour les éventuels cailloux). Ce qui doit a mon avis se rapprocher de la solution de Levend, mais en plus cher.




#86323 Premier prototype Quadrupède

Posté par maximusk - 31 juillet 2017 - 10:38

Au temps pour moi, je n'avais pas vu que c'était un thyristor, je croyais que c'était une diode. Par contre, un MOSFET se commande en tension, pas en courant, si tu veux limiter le courant, il te faut un transistor bipolaire, et ça fait beaucoup de calcul pour trouver les bonnes résistances et le bon transistor. En plus, tu vas perdre beaucoup d'énergie (en chaleur, donc il faudra un radiateur) en mettant un transistor bipolaire entre le + de la batterie et le reste du robot.

 

Pour commuter des forts courants, il vaut mieux utiliser des MOSFET, ou un circuit spécialisé de type high-side switch (qui en fait est aussi un MOSFET avec pas mal d'électronique de contrôle), comme le VND5012, qui contient en plus une protection contre les court-circuits/ surintensités.

 

Par contre, un montage plus simple, et plus efficace pour protéger ton robot, c'est le MOSFET en protection d'inversion de polarité avec un fusible (ou un polyfuse si tu ne veux pas changer le fusible à chaque erreur de manip). 

 

Si vraiment tu insistes sur le côté apprentissage, tu peux aussi utiliser un montage à base d'AOP avec un convertisseur courant / tension, et un comparateur (eventuellement un comparateur à trigger de schmitt), pour couper ton MOSFET à l'entrée lorsque tu dépasses un certain courant.




#86263 Carte électronique projet Robot des RobotMakerien :)

Posté par maximusk - 30 juillet 2017 - 01:31

J'avais jamais vu ce projet avant aujourd'hui.

 

Au niveau des schémas :

- A mon avis, 1µF en découplage sur le L298, c'est limite

- Si je ne me trompe pas, tu as intégré une conversion de niveau logique sur l'I²C. Par contre, tu as mis l'arduino du côté 3.3V, si je ne me trompe pas, elle devrait être du côté 5V (même si cela dépend du type d'arduino.

- Un petit condo ceramique en découplage du MCP3008 peut être une bonne idée, ainsi qu'un plus gros pour l'alimentation de la raspberry.

 

 

Pour la carte moteurs :

- Les pistes allant du L298 aux borniers des moteurs sont peut-être trop fines (selon les moteurs utilisés), et trop longues.

- Le placement des composants empêche de coller un radiateur au L298

 

Pour la carte de contrôle :

- Si j'ai bien compris, le but est de la mettre sur une raspberry. L'idéal serait qu'elle fasse la même taille ou qu'elle soit plus petite.

- Les résistances CMS du dessous sont énormes par rapport aux tout petits transistors a côté.

 

Pour les deux cartes :

- Pourquoi ne pas utiliser plus de CMS, pour les CI par exemple ? (même si je sais que beaucoup de hobbyistes sont contre).

- Tu devrais passer sous les 100mm, par exemple chez seeed, le double face 100x100mm coute moins de 5$ les 10 PCB. Par contre si tu dépasses (ne serait-ce que d'un mm), tu multiplies le prix par plus de 5.

- Ce serait bien de remplacer les x? des connecteurs par une description du connecteur sur le silkscreen (genre "capteurs", "moteurs", ...).

- Il y a quelques pistes avec des angles droits. Ce n'est pas dramatique, mais c'est mieux de les éviter.

 

A part ça, ça m'a l'air plutôt pas mal.




#86003 Naissance et mort de la conscience d'un robot ? ^^

Posté par maximusk - 20 juillet 2017 - 12:50

Je ne vois pas pourquoi une intelligence artificielle développée ne pourrait pas se suicider (a condition d'avoir les moyens de le faire), on à déjà vu une IA raciste (chez Microsoft).

Mais une intelligence artificielle vraiment développée (une vraie intelligence quoi), c'est pour l'instant reservé à des gros supercalculateurs (chez google par exemple), et a des fins de recherche. Pour les robots, j'y crois pas vraiment pour l'instant (un jour probablement, mais pas avant longtemps).

 

La à mon avis, d'après la photo, soit il a un capteur qui a déconné, soit il a pas capté le trou parce qu'il y avait l'eau, et il est tombé dans les marches (bah ouais, essayez de marcher vers un escalier les yeux fermés et vous verrez, je décline toute responsabilité en cas de blessure / mort / escalier endommagé  =P).




#85826 Detection de l'etat de charge des batteries.

Posté par maximusk - 14 juillet 2017 - 10:43

Pas faux, ça doit aussi marcher.

 

Par contre il faut mesurer la capacité de ta batterie car il est fréquent que la capacité réelle soit bien en dessous de celle annoncée pour certaines marques (et la capacité diminue avec l'age de la batterie, son exposition à la chaleur, le nombre de cycles charge/décharge qu'elle subit...).

 

Et cela ne te permet pas de t'assurer que tes cellules se déchargent de la même façon et qu'il n'y en a pas une qui te lâche pendant que les autres fonctionnent encore correctement.

 

Il me semble que les circuits intégrés pour batterie de téléphone ou de PC portable utilisent les deux méthodes (mesure de courant et de tension) et avec des mesures régulières et des calculs stockent dans une mémoire l'état de ta batterie, pour que la mesure soit toujours correcte même sur une batterie usée.




#85811 Detection de l'etat de charge des batteries.

Posté par maximusk - 13 juillet 2017 - 03:51

Tu peux mesurer la tension, un diviseur de tension peut fonctionner, mais le problème c'est qu'il consommera tout le temps un peu de courant (faible, mais en continu).

 

Un autre problème avec la mesure de tension, c'est que c'est bien uniquement pour s'assurer que ta batterie ne tombe pas trop bas en charge, et couper l'alimentation le cas échéant. Pour avoir un joli pourcentage comme sur ton téléphone ou ton PC, il faut utiliser des circuits intégrés spécialisés, ou un microcontrôleur avec plusieurs capteurs, car la courbe de décharge d'une cellule LiPo dépend de trop de facteurs :

- Courant de décharge

- Usure de la cellule

- Température ambiante

...

 

De plus, la tension diminue très rapidement au début et a la fin de la décharge, et très peu le reste du temps. En gros, une cellule chargée a fond est à 4.2V, et à 3V, elle est déchargée.

Au début de sa décharge, elle tombera rapidement à 3.8V. Si la décharge était linéaire, elle serait déjà déchargée de 35%, alors qu'en fait, elle n'est déchargée que d'a peu près 20% (encore une fois, ça dépend de pas mal de facteurs). Ensuite, elle va se décharger assez lentement de manière quasi-linéaire jusqu'a 3.5V, ce qui correspond à 80% de sa décharge (alors qu'encore une fois, si c'était linéaire on aurait environ 65%).

A partir de ce moment, la décharge s'accélère vraiment, puisqu'une fois les 20% restant partis, on tombe à 3V. C'est pour ça qu'il est déconseillé de descendre en dessous de 3.3/3.2V, parce que la tension chute tellement vite après que ta batterie va vite être endommagée si tu ne fais pas attention.

 

Donc pour résumer :

- Tu perds 0.4V sur les 20 premiers %

- Tu perds 0.3V sur les 80% du mileu

- Tu perds 0.5V sur les 20 derniers %

 

Sachant que toutes les valeurs que j'ai donné sont des valeurs approximatives pour la décharge a 1C d'une cellule en bon état.

 

Une autre contrainte, c'est que n'importe quel robot de taille conséquente utilisera une batterie de plusieurs cellules en série. Au début, ce n'est pas un problème, car toutes tes cellules se déchargent à peu près de la même manière, mais avec les légères variations de resistance interne, cela change avec l'age de la batterie. Et donc tu peux avoir encore 50% de batterie dans toutes tes cellules mais une seule qui est tombée à 20%. En mesurant la tension totale, tu penseras que ta batterie est assez chargée pour continuer, et tu risques d'y laisser une cellule.

 

 

Donc pour finir ce pavé :

Si tu veux juste que ton robot se recharge en dessous d'un certain seuil, et que tu n'utilises qu'une cellule, une simple mesure de tension (avec un diviseur de tension ou un capteur de tension suffira, tu lui dis d'aller ce recharger à 3.4/3.3V et c'est bon.

 

Si tu veux juste que ton robot se recharge et que tu utilises plusieurs cellules, une mesure de tension suffira aussi, mais il faudra mesurer chaque cellule. Dès que l'une d'elle passe en dessous du seuil, go recharger. Tu peux faire cela avec des ADC différentiels ou des amplis OP en montage différentiel.

 

Si tu veux un pourcentage précis de batterie affiché, il te faudra un circuit spécialisé. En cherchant en anglais avec "battery monitor" on en trouve (mais on trouve souvent des trucs pour une seule cellule comme les téléphones, ou beaucoup comme les voitures et les vélos électriques). On trouve aussi avec les termes "fuel gauge" (mais la aussi on trouve pas mal de trucs en rapport avec les jauges d'essence de voitures).




#85483 Écran pour vol en immersion :

Posté par maximusk - 06 juillet 2017 - 11:48

Bonjour. Comme tu es nouveau, tu es censé passer par la présentation.

A mon avis, tu pourrais commencer par essayer de trouver une documentation de ton écran, chose qui n'est généralement pas facile.
La plupart des écrans dans ce genre d'appareil utilisent le protocole série MIPI-DSI. Par contre, les connecteurs ne sont pas standardisés, et dépendent du constructeur, donc pas de doc, pas de connexion.

Ensuite, de ce que j'ai compris, tu dois connecter ton écran par USB OTG. Donc il te faudra un ordinateur (smartphone, tablette, raspberry, PC, ...) pour faire l'interface.
Supposons que tu utilises quelque chose comme une raspberry, la sortie vidéo sera en HDMI, il te faudra donc réaliser une carte avec le connecteur de l'écran et un convertisseur DSI / HDMI, comme l'ADV7533. Le genre de composant que tu ne peux pas souder sans un bon équipement et de l'expérience.

A mon avis ce sera beaucoup plus simple d'utiliser un PC ou de trouver un smartphone avec OTG que d'essayer d'utiliser cet écran. De ce que j'en sais, c'est vraiment super compliqué d'utiliser des écrans de récupération, et encore plus quand ils viennent de petits appareils.




#84130 La coupe de france de robotique est passée !

Posté par maximusk - 29 mai 2017 - 07:35

Je serais bien venu, mais je suis a plus de 1000km en ce moment.
Par contre, je vais essayer de monter mon équipe pour l'année prochaine !


#83798 Communication multi robots

Posté par maximusk - 19 mai 2017 - 07:06

Le réseau maillé, c'est bien quand tu as vraiment beaucoup de noeuds (donc de robots), et que tu veux économiser de l'énergie. Ca permet aussi de ne pas dépendre d'un élément, donc si il y en à un qui tombe en panne / perd la connexion, le groupe continue de fonctionner. Mais c'est compliqué à mettre en oeuvre.

A mon avis, le plus simple c'est de tous les connecter à un même réseau wifi, et en utilisant des protocoles réseau, tu peux envoyer des trames en broadcast, donc à tout le monde.




#70953 Présentation de Houlabalou

Posté par maximusk - 08 juin 2016 - 07:42

Un moteur CC c'est un moteur à courant continu. Ils tournent assez vite (entre 5000 et 20 000 tours/minute à la louche), mais manquent de couple (de force). Un moteur CC tout seul te donnera donc un robot impossible à diriger (il ira beaucoup trop vite) s'il arrive à rouler (un robot lourd ne bougera pas si le couple est trop faible) :

403378.jpg

Un motoreducteur, c'est un moteur suivi d'un réducteur. Le reducteur est un ensemble d'engrenages qui permet de diminuer la vitesse et d'augmenter le couple (si tu divises la vitesse par 100, tu multiplies le couple par 100).

Un réducteur :

42465932.jpg

 

Un motoréducteur :

1_13_021_3xx_gs38.jpg

 

 

Donc un motoreducteur CC, c'est un motoreducteur dont le moteur est un moteur CC. Attention, quand tu cherches motoreducteur sur google, les premiers liens sont généralement des motoréducteurs industriels, pas vraiment fait pour les robots (enfin pas les petits robots qu'on peut construire dans sa chambre en tout cas).

Tu as des exemples de motoreducteurs ici

 

Après, il y a plein de modèles différents, de qualité et de prix différents, c'est juste le premier que j'ai trouvé. Il faut savoir que les motoreducteurs doivent être dimensionnés en fonction du robot, on utilisera pas les mêmes pour un petit robot aspirateur que pour un robot de la coupe de France de robotique ou un robot tondeuse.

 

Pour les servomoteurs, tu peux varier la taille et la puissance de tes servomoteurs, mais les servos puissants sont relativement chers. Encore une fois, on les dimensionne en fonction de ce qu'on veut faire avec, on utilisera pas le même servo pour lever un petit drapeau en papier que pour déplacer une boule de pétanque (exemples débiles pris au hasard). Cela peut donc être intéressant d'avoir plusieurs tailles de servos à disposition.

 

Un driver de servomoteur est une carte qui permet de contrôler plusieurs servomoteurs, généralement par une communication série (I2C, RS232,...). Elle permet de réduire le nombre de sorties pour commander les servos : Si tu as 6 servos, il te faut 6 sorties sur ta carte programmable, alors qu'avec le driver, il ne te faut que 2/3 fils pour envoyer les données et c'est tout.

En voici un exemple ici

Un driver de 2 servomoteurs, cela me paraît limite, généralement les drivers peuvent en gérer beaucoup plus.

 

Voila, donc pour choisir entre les tailles, il faut déjà fixer un projet : si tu prends des petits moteurs, et que le but est de faire un robot de 20Kg, il ne bougera même pas, mais si tu prends des moteurs pour un gros robot, cela est beaucoup plus cher et encombrant.

 

Sinon, pour résumer vite fait chaque objet de la liste :

- Carte arduino : Carte programmable équipée d'un microcontrôleur ATMEL. On peut programmer ce microcontrôleur pour piloter des entrées/sorties, faire tourner des moteurs, allumer des leds, afficher des choses sur un écran, ... . L'avantage de l'arduino est d'avoir directement un port USB et des outils dédiés pour le développement qui simplifient la démarche, il faut juste un PC, un câble, et la carte et c'est parti. On rédige le code, on clique sur le bouton, et ça y est. Avec un microcontrôleur seul, il faudrait un programmateur, il faudrait le brancher correctement avec au moins 4 fils, puis passer par plusieurs étapes pour le programmer. Il faudrait aussi faire une carte pour le relier aux moteurs, aux leds, ... .

 

- Encodeurs : Un encodeur, c'est un capteur qui permet de savoir de quel angle son axe (généralement relié à une roue) a tourné. On peut donc, en connaissant la taille de la roue, savoir de quelle distance et dans quelle direction s'est déplacé le robot, ce qui permet d'avoir un déplacement précis, et pas juste un programme qui fait déplacer le robot en aveugle.

 

- Un driver pour deux moteurs 5V : Il s'agit d'un composant (ou d'un ensemble de composants) qui permet de diriger un moteur. En effet, pour faire tourner un moteur en sens inverse, il faut inverser ses deux bornes, chose impossible lorsque le robot est en fonctionnement. C'est donc ce que fait le driver de moteur. Il permet aussi de gérer la vitesse du moteur, en ne l'alimentant pas tout le temps selon la vitesse voulue.

 

- Des microrupteurs : il s'agit de petits interrupteurs (ou plutot de boutons-poussoirs) nécessitant une force très faible pour être appuyés. On les trouve dans les souris pour les clics par exemple. Sur un robot, ils permettent de détecter le contact avec un obstacle.

 

- Des capteurs de distance : Là c'est pas très compliqué de comprendre ce que c'est, mais il en existe plusieurs types : à infrarouges, à ultrasons, laser, ... avec des prix, des qualités, et des avantages et inconvénients différents.

 

En espérant que mon pavé est clair, et qu'il répond plus ou moins à tes questions.