mercredi 7 août 2013

Encodeurs

Je suis confronté au problème de manque de retour de la position de la barre.
Une solution serait de mettre un capteur directement sur la barre.
L'avantage est d'avoir un retour des consignes envoyées même en pilotage manuel.
Ce capteur pourrait-être un potentiomètre, un capteur optique, ou pourquoi pas un capteur de flexion.

Une solution plus simple est d'avoir un capteur sur l'axe de sortie du réducteur ou sur le moteur.

Les potentiomètres sont en général limités à moins d'un tour.
Les encodeurs optiques de base se trouvent pour une dizaine d'euros. Cependant ils sont plus faits pour servir d'interface homme machine que pour mesurer la vitesse de rotation d'un moteur. Les encodeurs pour des vitesses de rotations élevées coûtent au-delà d'une cinquantaine d'euros.

N'ayant pas besoin d'une très bonne précision, j'ai d'abord réfléchi à bricoler un capteur optique avec une LED et un photorésistor (j'ai ça sous la main).

Une autre idée était d'utiliser un bouton poussoir activé à chaque tour par une came, mais c'est un peu compliqué mécaniquement.
Une autre idée est de mettre un micro sur le moteur. On peut alors soit écouter les bruits mécaniques du moteur, soit détecter la perturbation liée aux pôles électromagnétiques du moteur.

Une difficulté dans le traitement d'un signal audio est la faible amplitude du signal avant la carte audio. Il semblait donc préférable d'utiliser un micro branché sur un pc et de faire les traitements en numérique avec le pc plutôt que de faire directement les traitements avec arduino.

Souhaitant pouvoir transférer le flux audio depuis mon téléphone portable, je me suis penché sur les solutions. J'ai d'abord regardé le flux qui peut-être renvoyé par IP camera. Le flux me paraissait trop retardé (environ 2s?).

J'ai donc cherché une autre solution. J'ai trouvé l'application Broadcastmyself qui peut-être utilisé pour faire une webradio.
Il m'a fallu installé un serveur icecast sur le pc
Les difficultés sont apparues pour écouter le flux dans un navigateur.
J'ai finalement réussi à écouter le flux dans vlc (Media/Open Network Stream puis http://localhost:8000/live.m3u) mais ni dans chrome (pas d'erreur, mais rien) ni dans firefox (erreur car mp3 pas supporté).
Je n'ai malheureusement pas réussi à trouver d'application faisant le streaming du microphone au format ogg (supporté par chrome et firefox)

Tests

Hier et aujourd'hui j'ai pu faire quelques tests avec mon nouveau montage.
J'utilise donc finalement la commande Sabertooth achetée pour environ 70 euros. Cette commande est branchée sur le moteur de visseuse.
Celle-ci est fixée sur une planche en bois. Une mèche de 10 est utilisée pour enrouler un fil dans un sens, l'autre dans l'autre sens. Des roulements à bille ont été rajoutés afin de limiter les efforts s'appliquant sur le moteur.
Les fils sont guidés par deux passages.

Après quelques tests avec le cerf-volant décathlon 2 fils que j'avais, j'ai abandonné. Ce cerf-volant est instable en direction et instable en forme.
J'ai donc réparé le cerf-volant de traction de mes 10 ans (la valve du boudin gonflable était cassée).

J'ai pu refaire des tests aujourd'hui dans un vent trop faible.
J'arrive grossièrement à piloter le cerf-volant. Cependant, les délais semblent un peu trop important

Quelques problèmes:
-difficultés pour faire décoller le cerf-volant seul, car je ne peux pas le lancer ou courir en arrière
-au lancement du cerf-volant, la barre (et la caméra) sont par terre.
-la barre fait facilement un demi-tour complet (droite et gauche se retrouve inversées)
-la coupure en cas de déconnexion d'un fil n'était pas active dans le code (heureusement pas trop de dégâts...)
-le potentiomètre a cassé.
-il est dur de piloter le moteur (et donc la barre) en vitesse, plutôt qu'en position.

Le problème dans les molles pourrait être résolu par un deuxième moteur pour rembobiner les lignes (qui pourrait être commandé par une balance/peson/dynamomètre par exemple).
Le problème de la barre qui traine dans l'herbe peut-être résolu en surélevant l'ensemble du système de pilotage sur un trépied/mat.
Le problème de la barre qui tourne peut-être résolu en rajoutant des élastiques guidant la barre.
Le problème de déconnexion des fils 0V ou 5V du potard a été réglé. Pour tester la déconnexion de la tension du pont diviseur, une solution serait d'inverser régulièrement la tension aux bornes du potard et de faire de la réjection.

Afin de régler le problème du potentiomètre, j'ai fait un programme qui utilise l'inclinaison de mon téléphone mobile pour piloter la vitesse du moteur.

Cela devrait me permettre de lancer le cerf-volant tout seul et de prendre le contrôle tout de suite sous le vent. Une autre idée était d'utiliser une vielle radiocommande de bateau télécommandé.
 

Balances de voyage

 J'ai finalement commandé 3 balances de voyages http://www.hi-tech-discount.fr/Balance-de-voyage-a-crochet-cbiaaabta.asp afin de servir de capteur de force. 3 balances pour avoir la force totale dans 3 directions. Ou bien une pour la ligne arrière droite, une pour la ligne arrière gauche, et une pour les lignes avant.
Je pense qu'une démultiplication est facilement réalisable pour mesurer des efforts plus important (la précision sera de toute manière suffisante).

Je n'ai trouvé qu'un seul exemple sur le net d'une personne ayant hacké un tel appareil :
http://rwsarduino.blogspot.fr/2012/11/electronic-scales.html

lundi 5 août 2013

Circuit de commande MOSFET

Depuis quelques jours j'ai des difficultés sur la commande du MOSFET FQP50N06 à partir d'Arduino.

Ce MOSFET de récupération demande en effet une tension de commande de 10V (pour être dans l'état saturé dans lequel il y a moins de perte et d'échauffement). La commande de l'arduino ne peut-être que de 5V. D'autre part un courant important est nécessaire pour que la transition d'état se fasse rapidement (si la transition est lente, il y a de même échauffement).
La solution propre est d'utilisé un circuit de commande de la porte (gate driver) du MOSFET. Des circuits intégrés existent pour réaliser cette fonction.
Je voulais la réaliser avec un simple transistor, mais j'ai eu du mal à trouver un schéma correct validé par plusieurs sources.

J'ai finalement trouvé http://code.google.com/p/qut-brushless-controller/wiki/mosfetdrive mais je n'arrivais pas à faire marcher ce montage (le moteur tourne tout le temps!)
J'ai finalement multiplié la valeur de la résistance du haut du schéma par 3 de manière à ce que lorsque le transistor joue le rôle d'un interrupteur fermé, le pont diviseur créé par les deux résistances donne une tension inférieure à 4V sur la grille du MOSFET. Lorsque le transistor jour le rôle d'un interrupteur ouvert, la tension monte à 12V, en l'absence de courant pour créer une chute de tension dans la résistance.

La commande fonctionne donc maintenant correctement, et pour pas cher. Je souhaitais coupler cette commande avec un inverseur double pour contrôler le sens de rotation du moteur, malheureusement le relais demande une intensité en entrée qui ne peut pas être donnée directement par Arduino (100mA nécessaire d'après http://www.omron.com/ecb/products/pdf/en-g5v_2.pdf alors que Arduino est limité à 40mA par pin).
La solution est également d'utiliser un transistor NPN. Malheureusement, j'ai cramé le deuxième que j'avais...

Autre difficulté, la modulation de largeur d'impulsion (PWM) n'est toujours pas facile avec le moteur et son réducteur.
Si j'utilise directement le pin de l'Arduino (attention, elles ne le permettent pas toutes, certaines à 500Hz, d'autres à 1000Hz), il y a un sifflement désagréable et le moteur ne tourne pas à basse vitesse. Le moteur démarre cependant bien en augmentant la tension (alors qu'il y avait un décrochage avec le H-Bridge).

J'ai cependant repris la philosophie du PWM maison pour pouvoir commander des vitesses plus faibles. J'ai également rajouté un peu d'aléatoire dans les périodes des cycles afin d'étaler le spectre du bruit (j'ai vu que cela se faisait dans les années 90; même si aujourd'hui la solution est plus souvent de passer dans les ultrasons).

En attendant, de retrouver un transistor, je vais continuer les tests avec le sabertooth.

samedi 3 août 2013

Banc de test

J'ai remis en place un banc de test, en utilisant cette fois une vraie barre de kite.

J'ai fixé deux mousquetons en hauteur. Ces mousquetons jouent le rôle de poulie.
Dans un des mousquetons j'ai passé la ligne arrière droite et une ligne avant. J'ai passé la ligne arrière gauche et l'autre ligne avant dans l'autre mousqueton.
J'ai fixé le point d'accroche sur le harnais à un grosse masse retenue par des sardines de tente.
J'ai attaché sur les lignes un sac étanche rempli d'eau pour faire une masse d'une trentaine de kilo.

Ce banc de test m'a pour l'instant aidé à fabriquer un support pour la camera.
J'ai également recommencé à travailler sur un nouveau système de winch, plus compact.

Variateur

 J'ai reçu ma commande passée sur GoTronic la semaine passée.
J'ai pu testé le circuit Sabertooth, qui a fonctionné sans problème sur le moteur de visseuse.
Cependant ce circuit reste couteux, et j'avais donc également commandé des relais inverseurs afin de pouvoir réutiliser le mosfet présent d'origine sur la visseuse.
J'avais réussi à contrôler le moteur avec le mosfet, mais avec une tension de commande de 12V (et non 5V) sur la grille du mosfet. Il me fallait donc rajouter un transistor pour pouvoir commander le mosfet.

En faisant des recherches sur des astuces pour faire des presses-étoupes pour étanchéifier le tout, je suis tombé sur un site de modélisme naval qui propose le montage que je cherchais :
http://bateaux.trucs.free.fr/tgeneral.html

Ce site est une mine d'astuces.
J'ai notamment été séduit par l'utilisation d'un microprocesseur ATtiny qui devrait pouvoir remplacer facilement l'arduino dans le montage que je fais pour un coût de 1euro environ (contre une trentaine pour l'arduino).

jeudi 1 août 2013

Catamaran + Simulateur

Aujourd'hui j'ai fait un peu de catamaran. Cela m'a permis de réfléchir à l'utilisation combinée voile + kite. La difficulté principale vient de l'étais.
Je vois une solution simple pour un cerf-volant à 2 lignes. Il faut doubler les lignes dans les derniers mètres, un peu comme l'écoute d'un spi asymétrique est doublée.
Pour un cerf-volant à 4 lignes, cela doit pouvoir se faire un peu mais c'est moins clair.

J'ai également travaillé un peu sur le simulateur 2D pour le rendre plus marrant.J'ai rajouté pour cela une image de fond et une image de kite à la place du fond noir et du rectangle blanc.

 
Simulateur (jeu) avec simpleCV

Je pense que je vais essayer de le mettre en javascript pour faire un petit jeu en ligne !