Aujourd'hui j'ai essayé de fusionner le code du capteur de barre, avec le code de la commande des moteurs, l'objectif étant d'obtenir un contrôle en boucle fermé de la barre (angle et bordé-choqué).
Malheureusement, je suis tombé sur un problème d'incompatibilité d'une librairie utilisée pour l'encodeur linéaire (pinchangeint) et de la librairie utilisée pour communiquer avec la carte de contrôle des moteurs (softwareSerial)
http://forum.arduino.cc/index.php?topic=91264.5;wap2
Comme je disposais déjà de 2 arduinos, j'ai essayé de contourner le problème en utilisant les 2 arduinos et en rajoutant une communication de l'un à l'autre. Pour cela, le plus simple me paraissait de sortir une valeur analogique sur l'un et de venir la lire sur l'autre. Malheureusement cela me donnait 0 ou 5V de manière alternative, mais pas la valeur attendue. Cela est peut-être dû à la modulation pwm et à l'absence de filtre passe-bas.
Du coup, j'ai utilisé le protocôle I2C qui était présenté comme une solution standard pour discuter entre plusieurs arduinos. Je me suis basé sur :
http://www.instructables.com/id/I2C-between-Arduinos/step3/Programming/
Les codes de ce tutoriel ne fonctionnent cependant pas, mais les exemples d'utilisation existent de base dans les exemples arduino.
J'ai utilisé des résistances de pull up de 10kOhm.
Cela fonctionne mais demande d'avoir deux arduinos.
J'ai continué les recherches ce soir, et j'ai trouvé une solution logicielle au problème de compatibilité des librairies.
http://code.google.com/p/arduino-pinchangeint/wiki/Bugs
L'aventure du développement des systèmes de pilote automatique de cerfs-volants : idées, technologies et applications.
jeudi 13 mars 2014
lundi 10 mars 2014
Interface Homme Machine : joystick
Lors des essais de l'été dernier, j'ai d'abord utilisé un simple potard comme interface de contrôle. D'un côté, j'allais dans un sens, de l'autre dans l'autre sens. J'ai ensuite rajouté une boucle fermée mais toujours avec un contrôle par un potard.
Cela posait quelques problèmes car la plage de rotation du potard est trop grande pour être couverte facilement. De plus, le potard était monté sur une boîte contenant les circuits électroniques, donc il était posé au niveau du sol. Finalement le potard a fini par casser (au niveau de la connectique).
N'ayant pas de potard de rechange sous la main, j'ai ensuite utilisé mon téléphone portable. L'inclinaison du téléphone était utilisée pour contrôler la vitesse des moteurs. Cela avait l'avantage de permettre de contrôler sans fil (via wifi) et donc par exemple de pouvoir faire les tests seul en joystick manuel (je lançais le cerf-volant et essayais de le piloter à distance). Le problème est que sans information de retour sur la position de la barre, le contrôle était trop difficile. De plus la portée du wifi du téléphone portable étant limitée, il y avait souvent des coupures. Enfin dès que je voulais poser le téléphone, ou que je faisais une erreur, cela envoyait des ordres non désirés.
J'ai ensuite utilisé une radiocommande (récupérée de mon voilier radiocommandé). C'était assez pratique, notamment grâce au ressort permettant un retour à la position neutre. La portée radio était suffisante (mais l'antenne un peu gênante). Le trim est aussi une fonctionnalité que j'ai utilisée pour le contrôle de la barre en boucle fermé. Je n'avais pas testé le décodage par la carte arduino des commandes envoyées au servo, mais cela semble possible (pour pouvoir avoir un enregistrement des commandes).
Souvent, j'ai également directement utilisé une interface graphique avec des "sliders". C'est assez pratique car cela ne demande pas de matériel. Par contre, il est difficile à la souris d'aller cliquer sur le slider, puis de savoir où il est rendu sans avoir les yeux rivés sur l'écran. Pour régler cela, la gestion des sliders était également possible aux flèches du clavier, mais cela n'est pas très réactif, le retour à zéro est difficile (une solution aurait été d'utiliser par exemple la flèche du bas pour le retour au neutre, mais cela n'est pas prévu de base avec les sliders de html5), et on ne sait pas quand on arrive en butée non plus.
Une solution souvent utilisée est le joystick. Le joystick a l'avantage de pouvoir être utilisé à une main s'il est bien fixé. Mais lors des tests pour le pilotage du cerf-volant, cela se passe plutôt en extérieur, et j'essaie d'avoir le moins de matériel possible (pas de table). Une manette de jeu dotée d'un joystick me semblait donc plus pratique, car pouvant se tenir d'une main, le joystick ne bougeant qu'avec le pouce. Cela permet de passer d'un pilotage manuel d'une main (grâce à la barre), à un pilotage joystick de l'autre main par une personne seule. Une alternative serait d'avoir un petit joystick directement fixé sur la barre.
J'ai récemment acheté une manette de jeu ("gamepad") : la rumble pad 2 de Logitech (9 euros chez Happy Cash!).
A partir du site http://videlais.com/2013/12/24/html5-using-gamepads-as-input/, j'ai réussi à réaliser un programme de test.
Cela posait quelques problèmes car la plage de rotation du potard est trop grande pour être couverte facilement. De plus, le potard était monté sur une boîte contenant les circuits électroniques, donc il était posé au niveau du sol. Finalement le potard a fini par casser (au niveau de la connectique).
N'ayant pas de potard de rechange sous la main, j'ai ensuite utilisé mon téléphone portable. L'inclinaison du téléphone était utilisée pour contrôler la vitesse des moteurs. Cela avait l'avantage de permettre de contrôler sans fil (via wifi) et donc par exemple de pouvoir faire les tests seul en joystick manuel (je lançais le cerf-volant et essayais de le piloter à distance). Le problème est que sans information de retour sur la position de la barre, le contrôle était trop difficile. De plus la portée du wifi du téléphone portable étant limitée, il y avait souvent des coupures. Enfin dès que je voulais poser le téléphone, ou que je faisais une erreur, cela envoyait des ordres non désirés.
J'ai ensuite utilisé une radiocommande (récupérée de mon voilier radiocommandé). C'était assez pratique, notamment grâce au ressort permettant un retour à la position neutre. La portée radio était suffisante (mais l'antenne un peu gênante). Le trim est aussi une fonctionnalité que j'ai utilisée pour le contrôle de la barre en boucle fermé. Je n'avais pas testé le décodage par la carte arduino des commandes envoyées au servo, mais cela semble possible (pour pouvoir avoir un enregistrement des commandes).
Souvent, j'ai également directement utilisé une interface graphique avec des "sliders". C'est assez pratique car cela ne demande pas de matériel. Par contre, il est difficile à la souris d'aller cliquer sur le slider, puis de savoir où il est rendu sans avoir les yeux rivés sur l'écran. Pour régler cela, la gestion des sliders était également possible aux flèches du clavier, mais cela n'est pas très réactif, le retour à zéro est difficile (une solution aurait été d'utiliser par exemple la flèche du bas pour le retour au neutre, mais cela n'est pas prévu de base avec les sliders de html5), et on ne sait pas quand on arrive en butée non plus.
Une solution souvent utilisée est le joystick. Le joystick a l'avantage de pouvoir être utilisé à une main s'il est bien fixé. Mais lors des tests pour le pilotage du cerf-volant, cela se passe plutôt en extérieur, et j'essaie d'avoir le moins de matériel possible (pas de table). Une manette de jeu dotée d'un joystick me semblait donc plus pratique, car pouvant se tenir d'une main, le joystick ne bougeant qu'avec le pouce. Cela permet de passer d'un pilotage manuel d'une main (grâce à la barre), à un pilotage joystick de l'autre main par une personne seule. Une alternative serait d'avoir un petit joystick directement fixé sur la barre.
J'ai récemment acheté une manette de jeu ("gamepad") : la rumble pad 2 de Logitech (9 euros chez Happy Cash!).
J'ai pu tester son bon fonctionnement avec le programme jstest-gtk
J'ai ensuite réalisé un programme de test avec le module python pygame (à partir d'un cours sur openclassrooms). Le code est ici.
J'arrive bien à récupérer les informations du joystick (axes) et des boutons. Par contre, cela me paraissait difficile de combiner la gestion des événements de pygame et de tornado.
J'ai donc cherché à capter les signaux du joystick directement au niveau de l'interface graphique (dans un navigateur web).
Cela est possible grâce à l'API gamepad en cours de définition par le W3C http://www.w3.org/TR/2014/WD-gamepad-20140225/.Une implémentation fonctionne sous chrome(ium) pour l'instant. Elle peut-être testée sur html5rocks.
A partir du site http://videlais.com/2013/12/24/html5-using-gamepads-as-input/, j'ai réussi à réaliser un programme de test.
function runAnimation()
{
window.requestAnimationFrame(runAnimation);
var gamepads = (navigator.webkitGetGamepads && navigator.webkitGetGamepads()) ||
!!navigator.webkitGamepads || !!navigator.mozGamepads ||
!!navigator.msGamepads || !!navigator.gamepads;
for (var i = 0; i < gamepads.length; ++i)
{
var pad = gamepads[i];
console.log(pad.axes);
}
}
window.requestAnimationFrame(runAnimation);
Un code plus complet est disponible ici. Une (petite) difficulté a été de permettre à la fois le contrôle par le joystick, ou par les sliders de l'interface graphique. Une bonne chose est que les informations peuvent être récupérées en même temps par python et javascript. Ce qui peut permettre d'utiliser le joystick même si aucune interface graphique n'est lancée.
Il reste encore à ajouter un trim.
J'ai également testé sur mon téléphone mobile android, en connectant la manette en USB On The Go. Cela permettrait d'avoir un joystick mobile.
Pour cela j'ai servi les fichiers statiques avec :
python -m SimpleHTTPServer
Malheureusement, cela ne fonctionne pas pour l'instant, mais les développements sont en cours.
Cahier des charges (a posteriori) :
- Au moins 2 axes (droite-gauche, bordé-choqué)
- Utilisable d'une seule main
- Ergonomie (amplitude du mouvement)
- Utilisable en tenant la barre
- Données récupérables sur un PC
- Progressif
- Feedback sensoriel non visuel de la position du joystick + butée + neutre (tactile ou auditif?)
- Trim (avec protection contre le déréglage)
- Détrompeur pour limiter le risque de tenir le joystick à l'envers (voir à ce propos mes mésaventures sur mon blog perso, 2ème paragraphe )
Options :
- Retour d'effort
- Solide, étanche
- Retour au neutre ou maintien en position
dimanche 9 mars 2014
Sélections de liens
Voici quelques liens (pas forcément récents) trouvés sur le net.
D'abord un historique des tentatives d'utilisation de l'énergie éolienne aérienne (en allemand).
Une vidéo d'Ampyx power, une spin off de TU Delft qui mise sur du reel in/reel out avec un cerf-volant de type planeur.
Un TedX de Reinhart Paelinck du KU Louvain
La présentation de l'équipe Plume à l'issu des 24h de l'innovation de l'ESTIA sur un projet proposé par Yves Parlier et Fabien Griffon.
D'abord un historique des tentatives d'utilisation de l'énergie éolienne aérienne (en allemand).
Une vidéo d'Ampyx power, une spin off de TU Delft qui mise sur du reel in/reel out avec un cerf-volant de type planeur.
Un TedX de Reinhart Paelinck du KU Louvain
La présentation de l'équipe Plume à l'issu des 24h de l'innovation de l'ESTIA sur un projet proposé par Yves Parlier et Fabien Griffon.
samedi 8 mars 2014
Pierre Benhaïem et Flygenkite
Voici une vidéo de Pierre Benhaïem lors du concours Lépine 2011.
Il a fabriqué un petit prototype assez simple d'une micro-éolienne se fixant sur les lignes et alimentant un bandeau de leds. Si la production d'énergie électrique pour un retour vers la terre ne me parait pas une bonne idée, une production de quelques watts me semble intéressante pour alimenter et réduire la taille des batteries nécessaires à l'alimentation des capteurs embarqués et des leds pour la nuit.
Il a fabriqué un petit prototype assez simple d'une micro-éolienne se fixant sur les lignes et alimentant un bandeau de leds. Si la production d'énergie électrique pour un retour vers la terre ne me parait pas une bonne idée, une production de quelques watts me semble intéressante pour alimenter et réduire la taille des batteries nécessaires à l'alimentation des capteurs embarqués et des leds pour la nuit.
Capteur de barre.
Aujourd'hui j'ai pu finir (?) le capteur complet de la barre. Le capteur permet de mesurer à la fois le border-choquer et l'angle de barre. Cela permet ainsi de faire des mesures, même lors d'une utilisation manuelle de la barre.
Le capteur est fixé à la barre par un bout de sangle, percé pour laisser passer un potentiomètre. Sur l'axe de ce dernier est fixée une planchette en bois (avec des colsons...). Sur cette planchette en bois sont collés deux coulisseaux imprimés en plastique. L'un deux est équipé de 3 fourches infrarouges ce qui permet de mesurer optiquement les graduations sur la règle qui coulisse dans les coulisseaux. Cette règle est fixée parallèlement à la ligne centrale du kite (possible sur le côté seulement sur la barre que j'ai, mais possible devant ou derrière sur d'autres barres). Elle est attachée et tendue à ses extrémités par des bouts sur la ligne centrale. Des cales (coupées dans une plaque de mousse isolante) permettent d'assurer le parallélisme (mais il manque en fait une liaison, et lorsque la barre est tournée, il faut un peu de souplesse dans la règle).
La connectique est assurée par des connecteurs et un jeu de soudure et de gaine thermo pour relier les masses et les alimentations entre elles. Cela permet d'avoir un seul câble (environ 2m) avec 6 fils (masse, 5V, encodeur en quadrature 1, encodeur en quadrature 2, encodeur pour la référence absolue, potard pour l'angle) partant vers la carte d'acquisition.
.
Le montage n'est pas encore tout à fait étanche...
La précision de la mesure avec les différents jeux mécaniques reste à évaluer. Cela ne devrait pas être très précis, mais suffisamment pour l'application visée.
Des corrections pourront éventuellement être apportées par le logiciel (par exemple lorsque la barre est tournée, cela à un effet sur la mesure de la position). La mesure risque également d'être perturbée en fin de course (on atteint finalement les limites de la plage de mesure linéaire, à cause des mouvements en rotation).
J'espère maintenant pouvoir me ré-attaquer au contrôle en boucle fermée par les moteurs (je l'avais déjà fait l'été dernier, mais seulement avec un moteur et une mesure par un potentiomètre).
Le capteur est fixé à la barre par un bout de sangle, percé pour laisser passer un potentiomètre. Sur l'axe de ce dernier est fixée une planchette en bois (avec des colsons...). Sur cette planchette en bois sont collés deux coulisseaux imprimés en plastique. L'un deux est équipé de 3 fourches infrarouges ce qui permet de mesurer optiquement les graduations sur la règle qui coulisse dans les coulisseaux. Cette règle est fixée parallèlement à la ligne centrale du kite (possible sur le côté seulement sur la barre que j'ai, mais possible devant ou derrière sur d'autres barres). Elle est attachée et tendue à ses extrémités par des bouts sur la ligne centrale. Des cales (coupées dans une plaque de mousse isolante) permettent d'assurer le parallélisme (mais il manque en fait une liaison, et lorsque la barre est tournée, il faut un peu de souplesse dans la règle).
La connectique est assurée par des connecteurs et un jeu de soudure et de gaine thermo pour relier les masses et les alimentations entre elles. Cela permet d'avoir un seul câble (environ 2m) avec 6 fils (masse, 5V, encodeur en quadrature 1, encodeur en quadrature 2, encodeur pour la référence absolue, potard pour l'angle) partant vers la carte d'acquisition.
.
Le montage n'est pas encore tout à fait étanche...
La précision de la mesure avec les différents jeux mécaniques reste à évaluer. Cela ne devrait pas être très précis, mais suffisamment pour l'application visée.
Des corrections pourront éventuellement être apportées par le logiciel (par exemple lorsque la barre est tournée, cela à un effet sur la mesure de la position). La mesure risque également d'être perturbée en fin de course (on atteint finalement les limites de la plage de mesure linéaire, à cause des mouvements en rotation).
| Système d'accroche sur le potentiomètre avec des colsons (récupéré d'un proto précédent) |
| Capteur sur la barre. On voit au dessus du capteur le bloc de mousse permettant d'écarter le bout tendant la règle de la ligne centrale. |
mercredi 5 mars 2014
Open atelier
Suite à des problèmes de chargeur sur mon ordi portable, j'utilise un raspberry pi en remplacement.
J'ai ainsi pu installer arduoscillo et robokite sur le raspberry et tester la connexion avec l'arduino.
Étant quelque peu familier de l'utilisation en ligne de commande, je n'ai pas rencontré de difficulté particulière, sauf pour communiquer avec l'Arduino
La commande suivante permet de recevoir les messages série de l'arduino (en connexion ssh)
screen /dev/ttyACM0 19200
Pour interrompre le défilement des info, il faut ouvrir un deuxième terminal et identifier le numéro du processus (pid) avec la commande
ps -ef
Il est alors possible de tuer le processus avec la commande (où pid est le numéro trouvé précédemment).
kill pid
J'ai ainsi pu tester une pince ampèremétrique (yhdc SCT-013-030, montage pour SCT-013-000, généralités), mais elle n'était pas suffisamment sensible pour le courant testé. De plus, cette pince ne fonctionne qu'en courant alternatif, et ne pourra donc pas me servir sur le projet (ou dans quelques années...).
J'ai discuté avec Jean-Pierre (maître cerf-volant) de ma problématique de trouver une solution pour faire une pince pour accrocher un fil sur un autre fil (un peu comme un tendeur de tente). Il m'a d'abord parlé de l'astuce de récupérer la languette d'ouverture sur une canette métallique (attention au passage du fil pour que ça ne soit pas coupant. Ne marche pas très bien avec des cordages lisses et glissants). Mais cela ne correspondait pas à mon besoin.
Il m'a ensuite parlé du nœud Machard (du nom de Serge, son inventeur français). Ce nœud semble bien répondre à mon problème, sans pièce compliquée. Et moi qui croyait connaître tous les nœuds, je ne connais que les marins, pas ceux d'escalade ! (EDIT : Victor m'a depuis montré un autre nœud également utilisé en escalade, mais plus joli!)
J'ai également retravaillé sur le système de mesure de tension dans les lignes ("tensiomètre" ou "dynamomètre" mais ces noms ont d'autres significations).
J'aimerai obtenir quelque chose proche de ceci.
Pour rappel, j'ai pour l'instant réalisé un circuit électronique avec une jauge de contrainte récupérée sur une balance de voyage et un amplificateur (INA125). J'arrive à récupérer une mesure de l'effort sur mon pc via une carte arduino. Je cherche actuellement à améliorer le support mécanique de manière à pouvoir simplifier la mesure sur une ligne, en venant "pincer" la ligne.
J'ai ainsi pu installer arduoscillo et robokite sur le raspberry et tester la connexion avec l'arduino.
Étant quelque peu familier de l'utilisation en ligne de commande, je n'ai pas rencontré de difficulté particulière, sauf pour communiquer avec l'Arduino
La commande suivante permet de recevoir les messages série de l'arduino (en connexion ssh)
screen /dev/ttyACM0 19200
Pour interrompre le défilement des info, il faut ouvrir un deuxième terminal et identifier le numéro du processus (pid) avec la commande
ps -ef
Il est alors possible de tuer le processus avec la commande (où pid est le numéro trouvé précédemment).
kill pid
J'ai ainsi pu tester une pince ampèremétrique (yhdc SCT-013-030, montage pour SCT-013-000, généralités), mais elle n'était pas suffisamment sensible pour le courant testé. De plus, cette pince ne fonctionne qu'en courant alternatif, et ne pourra donc pas me servir sur le projet (ou dans quelques années...).
J'ai discuté avec Jean-Pierre (maître cerf-volant) de ma problématique de trouver une solution pour faire une pince pour accrocher un fil sur un autre fil (un peu comme un tendeur de tente). Il m'a d'abord parlé de l'astuce de récupérer la languette d'ouverture sur une canette métallique (attention au passage du fil pour que ça ne soit pas coupant. Ne marche pas très bien avec des cordages lisses et glissants). Mais cela ne correspondait pas à mon besoin.
Il m'a ensuite parlé du nœud Machard (du nom de Serge, son inventeur français). Ce nœud semble bien répondre à mon problème, sans pièce compliquée. Et moi qui croyait connaître tous les nœuds, je ne connais que les marins, pas ceux d'escalade ! (EDIT : Victor m'a depuis montré un autre nœud également utilisé en escalade, mais plus joli!)
J'ai également retravaillé sur le système de mesure de tension dans les lignes ("tensiomètre" ou "dynamomètre" mais ces noms ont d'autres significations).
J'aimerai obtenir quelque chose proche de ceci.
Pour rappel, j'ai pour l'instant réalisé un circuit électronique avec une jauge de contrainte récupérée sur une balance de voyage et un amplificateur (INA125). J'arrive à récupérer une mesure de l'effort sur mon pc via une carte arduino. Je cherche actuellement à améliorer le support mécanique de manière à pouvoir simplifier la mesure sur une ligne, en venant "pincer" la ligne.
| 1ère version. La vis permet de modifier de manière continue la position de la poulie et ainsi le rapport de démultiplication |
| Support, jauge de contrainte et poulie |
samedi 1 mars 2014
Encodeur linéaire : fin
J'ai eu quelques déboires avec la règle électronique dont j'ai déjà parlé ici à maintes reprises :
http://robokite.blogspot.fr/2014/02/diy-regle-electronique-ou-encodeur.html
http://robokite.blogspot.fr/2014/02/regle-electronique-cablage-et-programme.html
http://robokite.blogspot.fr/2014/02/regle-electonique.html
http://robokite.blogspot.fr/2014/02/open-atelier-slider.html
http://robokite.blogspot.fr/2014/02/regle-electronique.html
http://robokite.blogspot.fr/2014/01/open-atelier.html
Au niveau du circuit, la règle électronique utilise 3 opto-coupleurs. Ces composants sont constitués chacun d'une diode IR et d'un récepteur. J'ai trouvé un exemple de montage sur monclubélec. La diode est en série avec une résistance qui sert à limiter le courant passant dans la diode. La valeur proposée était de 270ohms. Les données techniques de la diode indique qu'elle peut tenir jusqu'à 60mA et a une chute de tension de 1.2 à 1.6V (à 20mA). Avec une alimentation en 5V, la différence de potentiel au borne de la résistance est donc de 3.8V ce qui donne une intensité (max) de 14mA. Cela semblait suffisant lors de l'utilisation des diodes séparément. Les trois montages des diodes étant identiques, j'ai pensé qu'il était possible de relier les trois circuits entre la résistance et la diode (où le potentiel doit être identique). Cela permettait alors de remplacer les trois résistances en parallèle par une résistance de 270/3=90 ohms. Une inquiétude était qu'en cas de rupture d'une diode, le courant soit supérieur dans les diodes restantes et les endommage également. Mais avec 90 ohms, cela restait bon (40mA sur 60mA) même avec une seule diode.
Cependant à l'usage, j'ai eu des problèmes, les diodes n'étant pas strictement identiques, le courant passait plus dans une des diodes que dans les autres. Le courant n'était alors pas suffisant dans une diode. Si l'interruption du flux infrarouge restait détectable sur les entrées analogiques, les entrées numériques ne voyaient plus la différence. Or elles sont nécessaires pour les "interrupts".
J'ai finalement séparé les trois circuits d'alimentation (et diminué la résistance à 120ohms, pour obtenir 30mA).
Une autre piste était d'améliorer la sensibilité du détecteur. J'ai ainsi changé les résistances de 4.7kOhms par des résistance de 2.5kOhms
http://robokite.blogspot.fr/2014/02/diy-regle-electronique-ou-encodeur.html
http://robokite.blogspot.fr/2014/02/regle-electronique-cablage-et-programme.html
http://robokite.blogspot.fr/2014/02/regle-electonique.html
http://robokite.blogspot.fr/2014/02/open-atelier-slider.html
http://robokite.blogspot.fr/2014/02/regle-electronique.html
http://robokite.blogspot.fr/2014/01/open-atelier.html
Au niveau du circuit, la règle électronique utilise 3 opto-coupleurs. Ces composants sont constitués chacun d'une diode IR et d'un récepteur. J'ai trouvé un exemple de montage sur monclubélec. La diode est en série avec une résistance qui sert à limiter le courant passant dans la diode. La valeur proposée était de 270ohms. Les données techniques de la diode indique qu'elle peut tenir jusqu'à 60mA et a une chute de tension de 1.2 à 1.6V (à 20mA). Avec une alimentation en 5V, la différence de potentiel au borne de la résistance est donc de 3.8V ce qui donne une intensité (max) de 14mA. Cela semblait suffisant lors de l'utilisation des diodes séparément. Les trois montages des diodes étant identiques, j'ai pensé qu'il était possible de relier les trois circuits entre la résistance et la diode (où le potentiel doit être identique). Cela permettait alors de remplacer les trois résistances en parallèle par une résistance de 270/3=90 ohms. Une inquiétude était qu'en cas de rupture d'une diode, le courant soit supérieur dans les diodes restantes et les endommage également. Mais avec 90 ohms, cela restait bon (40mA sur 60mA) même avec une seule diode.
Cependant à l'usage, j'ai eu des problèmes, les diodes n'étant pas strictement identiques, le courant passait plus dans une des diodes que dans les autres. Le courant n'était alors pas suffisant dans une diode. Si l'interruption du flux infrarouge restait détectable sur les entrées analogiques, les entrées numériques ne voyaient plus la différence. Or elles sont nécessaires pour les "interrupts".
J'ai finalement séparé les trois circuits d'alimentation (et diminué la résistance à 120ohms, pour obtenir 30mA).
| Ajout des résistances directement sur le fil... |
| Résistances recouverte de gaine thermo (il aurait mieux fallu en prendre de la transparente) |
| Coulisseau sur règle (doublée) |
| Connectique |
| Circuit (3 résistances de pull up) et carte d'acquisition arduino |
Inscription à :
Articles (Atom)