Arduino (ou clones) et electronique DIY

bzhmaddog

Dieu créateur
08 Mar 2013
944
769
158
48
Shanghai / Pudong
www.break.com
J'ouvre ce Topic au cas ou il y ait d'autres amateurs de bidouillage d’électronique sur ce forum.
Il y a par exemple Dui ni shuo de dui qui construit son 'air filter'.

Perso je commence plus simple : Mon fils a reçu un circuit 24 pour son anniversaire et j'ai eu l’idée d'essayer contrôler la vitesse des voitures via Bluetooth (Android/Iphone) en passant par un Arduino.

J'en suis encore a la phase d'apprentissage (je faisais de l’électronique quand j’étais jeune mais j'ai presque tout oublie donc je posterais mon projet (ou l’évolution) quand j'aurais quelque chose de concret.

Si vous avez vos projets n’hésitez pas a partager (idées / photos/ Liens taobao pour les composants).
 
Dernière édition:
Project Circuit 24 > 2.0

Le projet peut se séparer en trois sous projets :
1 - Communication entre le Smartphone et l'Arduino via Bluetooth pour l'envoi de commande de vitesse
2 - Contrôle de la vitesse des moteur via un H-Bridge (la manette originale étant juste une résistance variable)
3 - (Non électronique) App Android/iOS/PC pour contrôler la vitesse.
Basiquement il s'agit d'envoyer une valeur entre 0 et 255 a l'Arduino.
Edit : http://www.instructables.com/id/Simple-RC-car-for-beginners-Android-control-over-/
Je devrais pouvoir utiliser cette app android pour mes besoins

Les composants nécessaires sont (liste non exhaustive) :
- 1 Arduino (pour l'instant je teste avec un UNO mais je pense que d'autres board plus simples peuvent faire l'affaire).
- 1 Une extension Bluetooth (pour le moment je pars sur un HC-05 qui peut être utilise en mode slave).
Problème a résoudre : Est-ce que le HC-05 peut être lier a deux maitres en même temps ? ou dois-je utiliser deux modules (1 par voiture)
- 1 H-bridge pour controler la vitesse/sens du moteur (j'ai trouve un shield qui semble convenir)
http://detail.tmall.com/item.htm?id=20084497603&spm=a1z09.2.9.22.w1ejIw&_u=nu6i75pf96b

PI: Le circuit fonctionne en 6V 900mA.

Pour le moment j’attends de recevoir les quelques composants nécessaires (HC-05 / L293D) Et je continue de chercher des infos sur le net.
 
Dernière édition:
Cool !
Si je comprends bien, tu fais une voiture telecommandee en bluetooth, c'est ca?

J'ai deja fait un truc vaguement similaire pour mon robot arduino. En plus du mode automatique, il possede un mode telecommande mais pas a base de bluetooth, ca marche en infrarouge (moins pratique donc, faut viser). Je peux le controler dans toutes les directions.

Va egalement falloir que tu puisses diriger le vehicule. Pour ca tu as plusieurs solutions mais utiliser un servo et un systeme de tringlerie me semble etre le plus simple et probablement le mieux. Pas de sens de rotation a envoyer, juste un signal numerique compris entre 0 et 180, 90 etant le point milieu. Le servo se demerde ensuite pour atteindre la position indiquee et y reste jusqu'a nouvel ordre.

J'ai pas la reponse a ta question au sujet des modes maitre/esclave du module par contre, desole j'ai encore jamais essaye le bluetooth pour le moment. Je suis ton post avec interet cela dit vu que c'est un truc que je compte integrer sur mon purificateur.

A quoi est ce que ton chassis ressemble pour le moment?
 
Dernière édition:
Le post a l'air très intéressant même si j'ai pas trop de temps pour m'y intéresser. Je vais suivre de loin ce que vous faites ;)
 
Circuit 24, que de nostalgie. Vivement quelques années de plus, que mon fils puisse me servir d'excuse pour en acheter un :)
Topic sympa, je suis une quiche en électronique mais j'attends avec impatience de voir le résultat de tout çà.
 
Cool !
Si je comprends bien, tu fais une voiture telecommandee en bluetooth, c'est ca?

J'ai deja fait un truc vaguement similaire pour mon robot arduino. En plus du mode automatique, il possede un mode telecommande mais pas a base de bluetooth, ca marche en infrarouge (moins pratique donc, faut viser). Je peux le controler dans toutes les directions.

Va egalement falloir que tu puisses diriger le vehicule. Pour ca tu as plusieurs solutions mais utiliser un servo et un systeme de tringlerie me semble etre le plus simple et probablement le mieux. Pas de sens de rotation a envoyer, juste un signal numerique compris entre 0 et 180, 90 etant le point milieu. Le servo se demerde ensuite pour atteindre la position indiquee et y reste jusqu'a nouvel ordre.

J'ai pas la reponse a ta question au sujet des modes maitre/esclave du module par contre, desole j'ai encore jamais essaye le bluetooth pour le moment. Je suis ton post avec interet cela dit vu que c'est un truc que je compte integrer sur mon purificateur.

A quoi est ce que ton chassis ressemble pour le moment?
Non ca n'est pas une voiture de type RC. mais une voiture qui roule sur une piste electrique (on appelait çà un circuit 24 quand j’étais gamin).
http://item.taobao.com/item.htm?spm=a1z09.5.0.0.yKrCxF&id=18367172432

Il y a une petite poignée avec des résistances et plus on appui fort, plus la voiture va vite (resistance plus faible donc ampérage plus élevé.

U = R * I > I = U / R > U étant constant donc si R diminue I augmente
ce qui donne P = U * I donc si I augmente P augmente donc le moteur va plus vite.
C'est ce qui me reste de mes cours sur les courants continus du lycée (j’espère que je ne me plante pas).
 
Dernière édition:
Non ca n'est pas une voiture de type RC. mais une voiture qui roule sur une piste electrique (on appelait çà un circuit 24 quand j’étais gamin).
http://item.taobao.com/item.htm?spm=a1z09.5.0.0.yKrCxF&id=18367172432

Il y a une petite poignée avec des résistances et plus on appui fort, plus la voiture va vite.

Aahh, ok je vois.... Je savais pas que ca s'appelait comme ca, je croyais que tu parlais d'un circuit imprime Arduino like qui s'appelait circuit 24...

A Reims on avait un super magasin specialise la dedans, avec plusieurs pistes et des decors, c'etait vraiment genial. D'ailleurs, a la reflexion il me semble bien que le nom du magasin c'etait... circuit 24 :D

Ces bagnoles sont assez petites, du coup, je te conseille de prendre un arduino nano, voire plus petit. Le nano a plus ou moins les memes specs que le Uno, il prend moins de place et coute moins cher, donc que du bonus.

Pour le Hbridge, quel est le voltage du circuit et la puissance maxi necessaire au fonctionnement du moteur?
 
Aahh, ok je vois.... Je savais pas que ca s'appelait comme ca, je croyais que tu parlais d'un circuit imprime Arduino like qui s'appelait circuit 24...

A Reims on avait un super magasin specialise la dedans, avec plusieurs pistes et des decors, c'etait vraiment genial. D'ailleurs, a la reflexion il me semble bien que le nom du magasin c'etait... circuit 24 :D

Ces bagnoles sont assez petites, du coup, je te conseille de prendre un arduino nano, voire plus petit. Le nano a plus ou moins les memes specs que le Uno, il prend moins de place et coute moins cher, donc que du bonus.

Pour le Hbridge, quel est le voltage du circuit et la puissance maxi necessaire au fonctionnement du moteur?

Oui j'ai commande des nano aussi. Mais l'avantage du UNO c'est que les Shields se branchent par dessus facilement.
Le transfo AC/DC qui alimente le circuit fournis du 6V/900mA donc si P = U*I on obtient 6 * 0.9 = 5.4W mais sachant qu'il y a deux voitures a faire rouler il doit falloir diviser la puissance Max par 2 soit 2.7W Max par voiture.

Le shield que j'ai commande est certainement un overkill pour mon application mais une fois que j'aurais quelque chose qui marche je ferais un montage statique sur une plaque a trou
 
Oui j'ai commande des nano aussi. Mais l'avantage du UNO c'est que les Shields se branchent par dessus facilement.
Le transfo AC/DC qui alimente le circuit fournis du 6V/900mA donc si P = U*I on obtient 6 * 0.9 = 5.4W mais sachant qu'il y a deux voitures a faire rouler il doit falloir diviser la puissance Max par 2 soit 2.7W Max par voiture.

Le shield que j'ai commande est certainement un overkill pour mon application mais une fois que j'aurais quelque chose qui marche je ferais un montage statique sur une plaque a trou

Disons que les shield ca prend beaucoup de place, mais ouai, c'est plus simple au debut.

T'as des ponts en H plus petits qui existent, un peu la flemme de rechercher les noms la tout de suite mais tu trouveras sans souci :)

Tu risques d'avoir un probleme avec l'alimentation de ton arduino cela dit. Ton circuit fonctionne en 6 volts. 6 volts c'est la limite basse pour que l'Arduino fonctionne... 7 volts c'est le minimum recommande. En dessous, ton arduino risque de s'eteindre, de planter ou de saccader, bref il y a de fortes chances que tu aies des problemes, vu qu'a chaque fois que les moteurs vont s'allumer ils feront chuter la tension.
A ta place je remplacerais donc le chargeur actuel par un chargeur d'au moins 7 volts, voire huit.

...Mais a la reflexion d'ailleurs, un systeme d'alimentation independant pour l'arduino serait nettement mieux, pour ne pas dire indispensable. Le risque etant que si tu l'alimentes avec les balais de la voiture, au moindre faux contact entre les balais et la piste l'Arduino va s'eteindre. Or ca lui prend environ 5 secondes pour se rallumer, donc ca sera inutilisable. Donc rajouter une pile 9V au montage... C'est un camion qu'il va falloir, pas une voiture :D.
 
Disons que les shield ca prend beaucoup de place, mais ouai, c'est plus simple au debut.

T'as des ponts en H plus petits qui existent, un peu la flemme de rechercher les noms la tout de suite mais tu trouveras sans souci :)

Tu risques d'avoir un probleme avec l'alimentation de ton arduino cela dit. Ton circuit fonctionne en 6 volts. 6 volts c'est la limite basse pour que l'Arduino fonctionne... 7 volts c'est le minimum recommande. En dessous, ton arduino risque de s'eteindre, de planter ou de saccader, bref il y a de fortes chances que tu aies des problemes, vu qu'a chaque fois que les moteurs vont s'allumer ils feront chuter la tension.
A ta place je remplacerais donc le chargeur actuel par un chargeur d'au moins 7 volts, voire huit.

...Mais a la reflexion d'ailleurs, un systeme d'alimentation independant pour l'arduino serait nettement mieux, pour ne pas dire indispensable. Le risque etant que si tu l'alimentes avec les balais de la voiture, au moindre faux contact entre les balais et la piste l'Arduino va s'eteindre. Or ca lui prend environ 5 secondes pour se rallumer, donc ca sera inutilisable. Donc rajouter une pile 9V au montage... C'est un camion qu'il va falloir, pas une voiture :D.
C'est exactement ce que je pensais faire. L'arduino aura sa propre alimentation 9V. J'aime autant que le circuit puisse continuer a fonctionner normalement sans l'arduino donc je vais faire un minimum de bidouille dessus.

Pour les ponts en H le L293D (utilise sur le shield) fera très bien l'affaire
Lien retiré
 
Dernière édition:
Du coup je ne suis pas certain de bien comprendre, ce que souhaite bzhmaddog, c'est le cas numéro 2 ou numéro 3 ? le 3 vu la taille des voitures ca me parait utopique non ?
Voir la pièce jointe 62224


Ah ben oui, t'as raison...
Je suis super con en fait, je pensais au cas 3 mais c'est debile, c'est forcement le cas 2
Pas besoin d'embarquer l'Arduino dans la bagnole, la variation de puissance se fait au niveau de la piste, pas de la voiture....
 
Ah ben oui, t'as raison...
Je suis super con en fait, je pensais au cas 3 mais c'est debile, c'est forcement le cas 2
Pas besoin d'embarquer l'Arduino dans la bagnole, la variation de puissance se fait au niveau de la piste, pas de la voiture....
Oui c'est le numéro 2 au quel je pense. Car la voiture est juste un moteur qui tourne plus ou moins vite
 
Update/WIP : Bon j'ai le contrôle du moteur DC qui fonctionne (Arduino nano + l293d)

J'ai réussi à réutiliser la connectique d'origine du circuit (juste eu à inverser la polarité dans le boitier).

Dès que j'ai un moment je fait un schéma propre avec Fritzing.

Petite Vidéo (VPN requis)

Schéma du montage actuel:
circuit24_bb.png

Code:
#define ENABLE 9 // Mapped to pin 1 of the L293D (EN1)
#define DIRB 4 // Mapped to pin 2 of the L293D (IN1)
#define DIRA 5 // Mapped ti pin 7 of the L293D (OUT2)

#define MIN_PWM 30 // Minimun power
#define NORMAL_DELAY 100 // The default delay

int i = 80; // start at 80 otherwise the motor does start without help
int sens = 1; // accelerate
int d = NORMAL_DELAY; // delqy between acceleration/deceleration

void setup() {

  // Debugging
  //  Serial.begin(9600);

  // Set pin direction
  pinMode(ENABLE,OUTPUT);
  pinMode(DIRA,OUTPUT);
  pinMode(DIRB,OUTPUT);

  digitalWrite(ENABLE,HIGH); //enable on

//  Set the motor to turn anticlockwise
//  digitalWrite(DIRA,HIGH);
//  digitalWrite(DIRB,LOW);

  // Set the motor to turn clockwise
  digitalWrite(DIRA,LOW);
  digitalWrite(DIRB,HIGH);

  // start the rotation
  analogWrite(ENABLE,i);
}

// Main loop
void loop() {

  i = i + 5 * sens; // Increase speed

  d = NORMAL_DELAY; // reset delay

  // if maximum PWM value is reached then slow down
  if (i > 255) {
  sens = -1;
  i = 255;
//  d = 1000;
//  analogWrite(ENABLE,i); // Set the speed
  } else if (i < MIN_PWM) { // if slowest speed reached then accelerate
  sens = 1;
  i = MIN_PWM;
  d = 1000;
  analogWrite(ENABLE,i); // Set the speed
  }

  delay(d); // wait a little before changing speed again

  analogWrite(ENABLE,i); // Set the speed

  //Serial.println(i); // Debug current PWM
}
 

Fichiers joints

  • pwm_cut.jpg
    pwm_cut.jpg
    273,9 KB · Vues: 10
Dernière édition:
Update/WIP : j'ai le control du moteur DC qui fonctionne (arduino nano + l293d)

Cool, bien joue.
Par contre je pige pas trop comment ca marche pour le moment avec ta photo.

Normalement, si je me souviens bien, tu dois faire l'acquisition du signal de la resistance de ta gachette via les ports analog de l'arduino, puis retourner un signal PWM a ton module L293D + un sens de rotation.
Or je vois que deux fils qui arrivent de la gachette, dont un qui va directement au moteur.

A priori j'aurais tendance a dire que les deux devraient aller a l'arduino: un a la masse et l'autre vers le port analog de ton choix, apres avoir mis une resistance de protection.

Ensuite des fils partant des ports numeriques activent le L293d avec la modulation de frequence, celui ci envoie alors la puissance au moteur selon l'instruction donnee.

Au niveau du code: mappage du ports analogique d'abord puis conversion du signal vers les ports numeriques.

Bref, y a un truc qui m'echappe.
 
Sinon je me suis commandé ça aussi pour voir ce que ça donne : Lien retiré
Il y a peu être moyen de faire quelque chose de sympa
 
Cool, bien joue.
Par contre je pige pas trop comment ca marche pour le moment avec ta photo.

Normalement, si je me souviens bien, tu dois faire l'acquisition du signal de la resistance de ta gachette via les ports analog de l'arduino, puis retourner un signal PWM a ton module L293D + un sens de rotation.
Or je vois que deux fils qui arrivent de la gachette, dont un qui va directement au moteur.

A priori j'aurais tendance a dire que les deux devraient aller a l'arduino: un a la masse et l'autre vers le port analog de ton choix, apres avoir mis une resistance de protection.

Ensuite des fils partant des ports numeriques activent le L293d avec la modulation de frequence, celui ci envoie alors la puissance au moteur selon l'instruction donnee.

Au niveau du code: mappage du ports analogique d'abord puis conversion du signal vers les ports numeriques.

Bref, y a un truc qui m'echappe.
C'est parce que le câble n'est plus utilisé pour la manette. Il ya maintenant 1 fil pour alimenter le L293D en +6V et le retour en sortie du L293D. Ce qui est intéressant c'est que ça reste compatible avec la manette (il y a juste une inverstion du sens de rotation du moteur).

Pour l'instant il n'y a pas d'input c'est le programme qui varie la vitesse dans une boucle)

Avec un Schéma tout sera plus clair (cf le Schéma dans la post au dessus).
 

Fichiers joints

  • IMG_20150203_173501_AO_HDR.jpg
    IMG_20150203_173501_AO_HDR.jpg
    1,6 Mo · Vues: 10
  • IMG_20150203_180155_AO_HDR.jpg
    IMG_20150203_180155_AO_HDR.jpg
    1,9 Mo · Vues: 5
Dernière édition:
J'ai une question pour un autre projet auquel je pense
IMG_20150204_095220_AO_HDR.jpg
Est il possible de savoir quel voltage est suppose sortir de cette batterie ? Ça vient d'un mini hélicoptère que je veux réutiliser sur un montage lego. Le chargeur est une simple prise USB (donc 5V).
Puis-je en déduire que la tension acceptée par le circuit varie entre 0~5V. Ca serait logique car la plus part des CI fonctionnent en 5V (a part ceux qui fonctionnent en 3.3V)
 
C'est parce que le câble n'est plus utilisé pour la manette. Il ya maintenant 1 fil pour alimenter le L293D en +6V et le retour en sortie du L293D. Ce qui est intéressant c'est que ça reste compatible avec la manette (il y a juste une inverstion du sens de rotation du moteur).

Pour l'instant il n'y a pas d'input c'est le programme qui varie la vitesse dans une boucle)

Avec un Schéma tout sera plus clair (cf le Schéma dans la post au dessus).

Ok, je comprends mieux maintenant avec le schema et le code :)

Je croyais que le bidule noir etait la manette en fait.
Te reste plus qu'a faire l'acquisition du signal, ce qui est plutot facile a faire maintenant, tu as fait le plus dur (enfin si on excepte la partie bluetooth qui viendra apres)

J'ai une question pour un autre projet auquel je pense
Voir la pièce jointe 62759
Est il possible de savoir quel voltage est suppose sortir de cette batterie ?

Oui, avec un multimetre.
Branche une resistance (par exemple une de 10K) sur la batterie puis mesure le voltage, ca te donnera une idee.

Ça vient d'un mini hélicoptère que je veux réutiliser sur un montage lego. Le chargeur est une simple prise USB (donc 5V).
Puis-je en déduire que la tension acceptée par le circuit varie entre 0~5V.

Par le circuit, probablement, mais ca ne veut pas necessairement dire que la batterie elle meme soit en 5V. Il peut y avoir des convertisseurs donc la batterie peut avoir un voltage different. Le mieux c'est de mesurer pour en etre sur. D'autant plus que ca m'a l'air d'etre une batterie lithium donc vaut mieux pas se planter (ca crame assez violemment en cas d'erreur).


Ca serait logique car la plus part des CI fonctionnent en 5V (a part ceux qui fonctionnent en 3.3V)

J'imagine que le voltage de la batterie correspond plutot au voltage des moteurs de ton helico qu'au voltage du circuit de controle. A voir.
 
Oui, avec un multimetre.
Branche une resistance (par exemple une de 10K) sur la batterie puis mesure le voltage, ca te donnera une idee.
2.18V la batterie est morte en fait donc pas possible d'avoir la valeur a pleine charge

J'imagine que le voltage de la batterie correspond plutot au voltage des moteurs de ton helico qu'au voltage du circuit de controle. A voir.
Malheureusement aucun marquage sur les moteurs (ils sont minuscules).

Il y a une Reference sur le PCB (HY-B-016RI-2c) je vais essayer de trouver des info sur internet.

Edit: Sur taobao les batteries de 150mAh ont l'air d’être de 3.7V (avec une tension de charge a 4.2V)
 
Dernière édition: