Home » 3615 my life, Electronique

Hack & Robotique

31 mai 2011 1 603 vues 5 commentaires
tags : , ,
Download PDF

Comme vous ne le savez peut-être pas, je suis en vacances longue durée et assigné à résidence. Les beaux-parents étant de la partie, j’occupe comme je peux mon temps libre.

Ça faisait un moment que je voulais me pencher sérieusement sur une petite carte que j’avais dans mes tiroirs depuis un moment : arduino.

Et puis, un camarade a eu la bonne idée de laisser son AR.Drone en pension chez moi, donc j’ai un peu joué avec.

Bon, faire clignoter des leds, c’est marrant, mais ça lasse vite et puis je suis plutôt du genre à faire ça avec un NE555, un PIC comme celui qui est embarqué sur les arduino, c’est un peu overkill.

Hacker l’AR.Drone qui n’a qu’un port USB peu accessible, c’était faisable mais je ne voulais pas casser le joujou qui coûte quand même une couille. Je pourrais tenter de monter un truc qui vole de A à Z, mais j’en connais qui s’y sont déjà cassé le nez et le porte-monnaie.

J’ai donc cherché un projet pas trop casse noix, mais un peu fun quand même, qui coûte pas trop cher en composants de base et qui puisse m’occuper quelques temps.

Bingo : avant d’envisager un truc qui vole, je vais déjà faire un truc qui roule.

La base du projet sera donc un châssis RP5 (le « tank ») avec deux moteurs et des chenilles en plastique souple. Avec une arduino dédiée au projet, contrôleur de moteurs PWN et quelques autres trucs que je vous détaillerai plus tard, j’en ai eu pour en gros 200$. On peut s’en sortir pour 100$ en n’achetant pas de fioritures.

Ça a l’air grand comme ça, mais en vrai, ça mesure environ 15x20x10 cm.

Mais laissez moi vous parler un peu de l’arduino, vous qui n’êtes pas nécessairement informaticien, encore moins électronicien ou programmeur. La grosse bestiole noire avec plein de pattes que vous voyez sur la petite carte en haut de l’article est un PIC (acronyme ayant eu tellement de significations que je ne retiendrai que l’originelle : « Programmable Integrated Circuit »). Ce n’est donc ni plus ni moins qu’un microprocesseur avec relativement peu de capacités mais qui a l’avantage d’être facile à programmer dans un langage de barbare prénommé assembleur.

Comme les barbares sont, malgré ce qu’on pourrait croire, rares à notre époque, les gens du projet arduino on eu une idée pas idiote qui consiste à proposer un langage de programmation proche du C et un compilateur compatible avec ces petits PIC et de proposer une carte embarquant toute l’électronique nécessaire pour faire fonctionner l’engin avec un simple port USB. Plug & play, en somme.

Si vous avez bien regardé la carte, vous avez vu qu’il y avait de quoi y brancher une alimentation et un port USB… Et c’est à peu près tout ce qu’il y a de commun avec les engins que vous avez pu voir jusqu’à présent. Le reste se fait via les deux rangées de connecteurs noirs que vous voyez en haut et en bas de la carte.

Que trouve-t-on dans ces connecteurs ?

  • La masse (ou ground, GND, … la référence 0 de l’électricité, en somme)
  • +3.3 volts (pour certains engins qui aiment bien cette tension)
  • +5 volts (pour la majorité des choses qu’on voudrait brancher)
  • La tension d’entrée de l’alimentation, qui peut être entre +5v et +20v (pratique pour alimenter des choses sans passer par le régulateur de l’arduino)
  • Des broches d’entrées / sortie numérique pouvant, au choix, envoyer 0 ou 5 volts ou bien recevoir 0 ou 5 volts
  • Des broches d’entrées / sortie numérique PWM pouvant, en plus, envoyer/recevoir toute la gamme entre 0 et 5 volts
  • Des broches d’entrées / sortie analogiques qui peuvent faire la même chose
  • Quelques autres choses étranges

Et là, vous ne voyez toujours pas à quoi ça peut bien servir et je ne peux pas vous en blâmer. Comme je le disais plus haut, ça peut servir à faire clignoter des leds : vous en branchez une, par exemple entre la broche de sortie 5 et la masse, vous écrivez le petit programme suivant, vous l’envoyez sur l’arduino, et paf, ça s’allume.

void setup() {
pinMode(5, OUTPUT);
}

void loop(){
digitalWrite(5, HIGH);
}

Evidemment, vu comme ça, ça n’a absolument aucun intérêt. Branchez à présent une photorésistance sur un port analogique, par exemple le port 2, et complétez le code par :

void setup() {
pinMode(5, OUTPUT);
}

void loop(){
if(analogRead(2) > 500) { digitalWrite(5, LOW); }
else { digitalWrite(5, HIGH); }

}

En français dans le texte, s’il fait nuit, allume la lampe, si il fait jour, éteins la. Vous entrevoyez déjà plus les possibilités. Oh, bien sûr, il ne s’agit que d’une led, mais on peut y brancher une vraie lampe par l’intermédiaire d’un petit module. Et ce sont ces petits modules qui font la force de la plateforme.

Pour en revenir à mon petit projet, j’ai donc mis un de ces petits modules sur l’arduino pour pouvoir piloter les moteurs de mon tank. Le principe est simple, une instruction du type digitalWrite (broche, vitesse) permet de faire tourner le moteur plus ou moins vite. Manque de pot pour vous, j’ai grillé le module en question en l’alimentant à l’envers et ne peux donc pas vous faire un long discours dessus, tant que je n’aurai pas reçu de quoi le réparer :)

Enfin, l’engin a tout de même roulé une demi-journée, tout droit, ou en tournant toujours du même côté.

Dans le prochain article, je vous expliquerai comment, pour 15 euro de plus, je l’ai fait se promener tout seul dans la maison sans qu’il ne touche jamais un mur (et je vous mettrai les premières photos).

5 Comments »

  • jerome said:

    Yes ! excellent ! Je savais plus comment flinguer mes 8 heures de sommeil.

    Un jour on aura des caissons qui ralentissent le temps en trafiquant localement la gravité : à nous les journées de 32 heures ;D

    Plus sérieusement c’est un loisir hyper-chronophage et assez cheros … En plus ça nécessite des connaissances relativement costaudes ( électronique, programmation en C, pas-trembler-des-mains) bref un truc de g33x…

    J’espère filer la morsure à mon fils pour qu’on s’éclate ensemble ;)

  • Bruno (author) said:

    Oh ben tu sais, je soude du CMS avec un fer à souder industriel sur du veroboard … Même Pas Peur ! :)

  • Ivan said:

    Bonjour,

    un PIC sur l’Arduino ?? Hérétique ! C’est un AVR d’Atmel, et non un PIC de Microchip. Ralala, c’est-y pas malheureux de lire ça dans un si bon blog :o).

    Bonne continuation,

    Ivan.

  • Bruno (author) said:

    Ah ben non de dieu, y’en a UN qui suit quoi !!!

    (c’est ça, je me rattrape aux branches :))

  • BitcoinFrance said:

    vidz ! :)

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.


4 + un =