• STATISTIQUES
  • Il y a eu un total de 2 membres et 12867 visiteurs sur le site dans les dernières 24h pour un total de 12 869 personnes!


    Membres: 2 433
    Discussions: 3 585
    Messages: 32 832
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking
    [FR] Infomirmo
    Challenge présenté sous la forme de 6 niveaux de difficultés diverses et variées avec chacun plusieurs chall...
    Challenges
    [FR] Microcontest
    Cryptographie: 7, Mathématiques: 8, Image Son Vidéo: 5, Intelligence artificielle: 3, Réseau: 2, Divers: 7, Phy...
    Challenges
    [FR] Newbie Contest
    Crackme: 35, Cryptographie: 49, Hacking: 27, Javascript/Java: 17, Logique: 31, Programmation: 23, Stéganographie: 53
    Challenges
    [FR] dcode
    dcode.fr est le site indispensable pour décoder des messages, tricher aux jeux de lettres, résoudre des énigmes...
    Outils / Add-on
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges
    [EN] Exploit-db
    Une base de données d'exploits triés par genre (GHDB, Remote, Local, Web, DOS, ShellCode) à ...
    Vulnérabilités

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 5 (1 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Arduino] Les bases
22-11-2012, 23h43 (Modification du message : 01-12-2012, 14h18 par Swissky.)
Message : #1
Swissky Absent
Bon membre
*



Messages : 523
Sujets : 32
Points: 96
Inscription : Apr 2012
[Arduino] Les bases
Les bases de l'Arduino

[Image: Arduino_Uno_logo.png]

1 - Définition
L'arduino est un circuit imprimé contenant un microcontroleur , généralement un ATmega. Il est utilisé dans de nombreux projets à bas cout :
  • Pilotage d'un robot
  • Domotique
  • etc
Maintenant que l'on connait son fonctionnement théorique voyons un peu les différents type d'arduino :
  • Arduino UNO Rev3
  • Arduino BT (bluetooth)
  • Arduino Leonardo
  • Arduino Mega 2560 Rev3
  • etc
Ils répondents à des demandes différentes, par exemple l''Arduino BT est une platine Arduino avec bluetooth intégré, concrètement cela pourrait servir pour controler un robot à distance. Il est souvent recommandé d'utiliser un Arduino Uno lorsque l'on est débutant aussi je me baserais sur celui-ci pour la suite de ce tutoriel, si vous souhaitez en achetez un , il est au prix de 20€ sur Evola, à quoi ressemble cette bête? :

[Image: Arduino_UNO_CMS_1.JPG]


2 - IDE
Il faut ensuite connecter notre arduino à notre ordinateur afin de le programmer, pour cela on utilise un cable usb type B :
[Image: cable-usb-noir-1m-type-b.jpg]
Faites attention, il faut généralement l'acheter en plus de l'arduino.


Une fois votre arduino connecté, il vous faut l'IDE, il est compatible MAC OSX/ GNU Linux / Microsoft Windows (XP, Vista, 7). L'IDE est intégré par défaut dans Backtrack depuis la version 5.
Vous devez utiliser le langage arduino qui est un dérivé du C, concrètement il y a très peu de différence. Vous trouverez les dernières mises à jours de l'IDE sur http://arduino.cc/en/Main/Software . En fouillant un peu dans les onglets de l'IDE vous trouverez les différents exemples de programmes, on va donc commencer à coder Wink
Et si vous ne programmez pas en C, vous pouvez utiliser un NetDuino (Arduino fonctionnant avec le .NET sous Visual Studio, plus de renseignement sur le site officiel : http://netduino.com/ ).

3 - Premier programme
En programmation , on a l'habitude de faire un Hello World, mais ce n'est pas possible sur un arduino (sauf si vous avez acheté un écran Tongue). Aussi le code de base consiste à faire clignoter une LED, que vous pouvez acheter sur Snootlab il y a des pack de 10 LED pour 1€50 :
Code PHP :
/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */
 
// On peut connecter une LED sur le Pin 13 dans la plupart des platines Arduino
int led 13;

void setup() {                
  
// On initialise une sortie, c'est à dire que l'on veut communiquer sur le PIN défini, ici LED
  
pinMode(ledOUTPUT);     
}

// Boucle Principale, équivalent du main() en C
void loop() {
  
digitalWrite(ledHIGH);   // Allume la LED
  
delay(1000);               // Attend une seconde, équivalent de sleep sur d'autre langage
  
digitalWrite(ledLOW);    // Eteins la LED
  
delay(1000);               // Attends encore une seconde afin de simuler un clignotement car nous sommes dans une boucle


Dans le code on met la LED sur le PIN 13 ,un PIN est un endroit permettant l'entrée ou la sortie d'un flux, par exemple pour controler un moteur et le faire tourner dans le sens des aiguilles d'une montre ou en sens inverse.
Les pins sont tout simplement les portes d'entrée et de sortie du microcontroleur. Ce sont les connexions du microcontroleur vers des capteurs ou des shields. Le microcontroleur communique avec d'autres circuits, et normalement il les commande. Lorsqu'on programme le microcontroleur, on ouvre ou on ferme ces portes; on écoute un signal ou on envoie un signal.
Pour configurer un PIN on utilise la fonction pinMode(numéro du PIN, Entrée ou Sortie) , ici on allume la LED c'est donc une sortie , contrairement à la réception de valeurs à partir d'un capteur comme un capteur de lumière.
Voici où il se trouve sur l'arduino :
[Image: ExampleCircuit_bb.png]
Image et code source provenant http://arduino.cc/en/Tutorial/Blink.
Une fois le programme terminé, on l'upload dans l'arduino en cliquant sur le triangle :
[Image: UploadButton.png]

3 - Les shields
Les shields sont des extensions pour les arduinos , ils sont très simple à utiliser, en effet , il suffit juste de les emboiter sur l'arduino :

[Image: arduino-webserver-e1278012929887.jpg?w=470&h=313]

Je ne vais pas détailler tous les shields, il en existe pour un peu toutes les finalités, je vous présenterais seulement les plus connus. Il faudra vous référer à la documentation, aux exemples et aux tutoriaux sur le net , si vous utilisez un shield.

a) Le Motor Shield / MotoDuino
[Image: shield_ard_motor_1.jpg]
Un must, il sert principalement à gérer des moteurs, qu'ils soient à courant continu , servomoteur et autres.

b) Ethernet Shield
[Image: Arduino_Ethernet_Shield_R3_1.jpg]
Tout simplement le shield incontournable si vous souhaitez faire une connexion entre un arduino et un site, par exemple envoyer des valeurs récupérées par un capteurs de chaleurs .

c) GPRS Shield
[Image: GPRS_Shield_1.jpg]
Ce shield permet de communiquer par SMS, Voix, Data et Fax.


4 - Bonus
Voici une petite liste de site où vous pourrez acheter des composants :
http://www.cooking-hacks.com/
http://snootlab.com/
http://www.evola.fr/
J'ai déjà testé les deux derniers, commande reçue en moins d'une semaine.
Voici un petit PDF récapitulant certains points : http://dl.dropbox.com/u/53604363/prez_arduino.pdf (de Skyduino)

Merci à Evolax pour ces précisions.
+1 (6) -1 (0) Répondre
23-11-2012, 00h22 (Modification du message : 23-11-2012, 00h26 par Shirobi.)
Message : #2
Shirobi Hors ligne
Bannis



Messages : 207
Sujets : 19
Points: 17
Inscription : Oct 2012
RE: [Arduino] Les bases
Moi je fini d'abbord mon apprentissage C, comme c'est dérivé ca devrait être plus facile plus tard...

Ca à l'air très interessant j'ai jamais vu|essayé ce genre de chose, j'espère que ca me plaira Wink .


En tout cas, merci pour ton petit thread
+1 (0) -1 (0) Répondre
23-11-2012, 18h05
Message : #3
spin Hors ligne
Contributeur
*****



Messages : 325
Sujets : 15
Points: 38
Inscription : Nov 2011
RE: [Arduino] Les bases
Bonsoir, merci bien de te dévouer à la rédaction d'un tutoriel à ce sujet.

Je trouve que tu vas un peu trop vite, à la section 3. Tu balances le code en parlant de PIN, mais qu'est-ce qu'un PIN d'abord ? Les gens qui se lancent vraiment dans la programmation sur µC -- ceux qui connaissent uniquement la programmation sur PC -- ne sont pas censés connaître ces notions propres aux µC. Il faut donc aller plus lentement sur cette partie, je pense. J'ai compris cette section uniquement parce-que j'ai déjà eu à programmer sur µC une fois dans ma vie, personnellement.

J'ai la même remarque à faire sur la section des shields. Sauf que là, je ne sais vraiment pas ce que c'est, et en lisant le tutoriel je n'ai pas appris ce que c'était. Qu'est-ce donc un shield ? Là encore, il faudrait y aller plus doucement.

J'ai l'impression que le tutoriel s'adresse aux gens déjà familier en programmation sur µC et qui souhaitent se mettre à Arduino. Or, il me semble, que ton tutoriel se veut accessible à tout programmeur, non ?

Autre petite remarque, pourquoi ne pas traduire les commentaires des codes d'exemple ?

Je te souhaite bonne continuation dans la rédaction Wink
+1 (0) -1 (0) Répondre
23-11-2012, 18h57
Message : #4
Swissky Absent
Bon membre
*



Messages : 523
Sujets : 32
Points: 96
Inscription : Apr 2012
RE: [Arduino] Les bases
Merci pour ton retour, j'ai édité 2/3 trucs pour essayer d'expliquer ce qu'est un PIN et un shield, j'ai aussi commenté le code en français Wink
+1 (0) -1 (0) Répondre
23-11-2012, 23h36
Message : #5
Wabouz Hors ligne
Membre actif
*



Messages : 96
Sujets : 8
Points: 16
Inscription : Nov 2012
RE: [Arduino] Les bases
Personnellement, je conseil aussi le mbed (http://mbed.org/) qui est peut-être un peu plus cher (40-50€) mais plus puissant. L'une des principales différences vient aussi du fait que le compilateur est en ligne. Pas besoin d'IDE ni rien, on se connecte sur le site on fait notre programme et on le charge sur le µC. ( Je parle en connaissance du mbed NXP LPC1768:
http://mbed.org/handbook/mbed-Microcontrollers)
+1 (0) -1 (0) Répondre
23-11-2012, 23h43
Message : #6
Swissky Absent
Bon membre
*



Messages : 523
Sujets : 32
Points: 96
Inscription : Apr 2012
RE: [Arduino] Les bases
N'hésite pas à nous présenter le mbed, je ne connais pas du tout et ne doit surement pas être le seul, un thread sur les bases du mbed serait super apprécié Smile
+1 (0) -1 (0) Répondre
23-11-2012, 23h44
Message : #7
Wabouz Hors ligne
Membre actif
*



Messages : 96
Sujets : 8
Points: 16
Inscription : Nov 2012
RE: [Arduino] Les bases
Okay mais pour l'instant je suis un peu occupé avec mes bacs blancs etc, je m'y met dès que j'ai un moment Smile
+1 (0) -1 (0) Répondre
24-11-2012, 16h32
Message : #8
EpicOut Hors ligne
Membre actif
*



Messages : 121
Sujets : 10
Points: 23
Inscription : Feb 2012
RE: [Arduino] Les bases
Au poil ton topic, thx.
Plein de mouches peuvent rentrer en boucle close.
[Image: vQs9wRu.png]
+1 (0) -1 (0) Répondre
24-11-2012, 16h35
Message : #9
ark Hors ligne
Psyckomodo!
*****



Messages : 1,033
Sujets : 48
Points: 317
Inscription : Sep 2011
RE: [Arduino] Les bases
Sympathique, il va vraiment falloir que j'en achète un un de ces jours !
+1 (0) -1 (0) Répondre
01-12-2012, 12h45
Message : #10
evolax Hors ligne
Open Hackware
*



Messages : 10
Sujets : 1
Points: 0
Inscription : Nov 2012
RE: [Arduino] Les bases
J'aime bien ce petit tutoriel d'intro sur Arduino car il est concis et se lit très vite et bien.
Je crois pas qu'il faille trop l'étoffer, mais ensuite faire d'autres topics.
Tu peux ajouter 2 ou 3 petits trucs sur le concept:

L'intérêt d'Arduino c'est sa facilité d'utilisation: même une personne ne connaissant rien à l'électronique peut réaliser un projet. Aucune soudure n'est nécessaire, aucun composant à ajouter (souvent). Tout est déjà monté pour vous.

Arduino c'est aussi un langage (off: je passe le débat sur "c'est pas un vrai langage") Open Source: les codes sont ouverts et modifiables. Des exemples de codes et des librairies sont disponibles en nombre énorme.

Open hardware: les schémas sont disponibles, utilisables et modifiables.

En bref, hackez en toute légalité, c'est fait pour ça! (off: il y a des limites mais peu contraignantes pour en faire un projet commercial).
+1 (0) -1 (0) Répondre
01-12-2012, 13h53
Message : #11
evolax Hors ligne
Open Hackware
*



Messages : 10
Sujets : 1
Points: 0
Inscription : Nov 2012
RE: [Arduino] Les bases
Aide sur les pins:
Les pins sont tout simplement les portes d'entrée et de sortie du microcontroleur. Ce sont les connexions du microcontroleur vers des capteurs ou des shields. Le microcontroleur communique avec d'autres circuits, et normalement il les commande. Lorsqu'on programme le microcontroleur, on ouvre ou on ferme ces portes; on écoute un signal ou on envoie un signal.


Il y a deux grandes catégories de signaux:

- Numérique : un signal binaire, 0 ou 1. En électronique cela se traduit par du courant ou pas de courant. Les pins numériques sont identifiables avec un D (pour digital)

- Analogique : le signal n'est plus binaire mais varie selon la tension du courant. Par exemple 0 Volt pourra être associé à la valeur 0 et 5V à la valeur 1000. Un courant de 2.5V vaudra donc 2500. C'est dans le programme que l'on définit la valeur que l'on souhaite donner au signal reçu. Les pins analogiques sont identifiables par un A.


Il y a aussi différents protocoles de communication:

Série ou UART : pins 1 et 2 (hardware) - il est possible d'émuler d'autres liaisons série avec la librairie SoftwareSerial. C'est le plus simple à utiliser pour échanger quantités de données avec un capteur disposant d'une liaison série (Rx, Tx).

SPI : pins 10, 11, 12, 13 - il permet de controler plusieurs capteurs en même temps, indépendamment des uns des autres (par exemple controler plusieurs leds, une à une) en paramétrant une horloge (la première seconde, on communique avec le capteur 1, la deuxième seconde avec le capteur 2 etc.). C'est un bus de données simple mais qui ne permet que la communication entre un maitre (Arduino) et plusieurs esclaves (capteurs).

I2C (TWI - 2fils):A4, A5 - Permet la communication avec plusieurs capteurs ou d'autres microcontroleurs. Chacun ayant une "adresse" pour communiquer. Il peut donc y avoir plusieurs maitres pour plusieurs esclaves. Beaucoup plus compliqué, pas conseillé aux débutants.
+1 (0) -1 (0) Répondre
01-12-2012, 14h20 (Modification du message : 01-12-2012, 14h20 par Swissky.)
Message : #12
Swissky Absent
Bon membre
*



Messages : 523
Sujets : 32
Points: 96
Inscription : Apr 2012
RE: [Arduino] Les bases
Merci j'ai ajouté ta petite définition sur les PINs Smile
Par contre je pense que l'on pourrait faire un tutoriel à part entière sur les signaux et les protocoles de communications.
Et puis le langage Arduino , c'est du C avec 2/3 bizarreries Smile
+1 (0) -1 (0) Répondre
01-12-2012, 19h33
Message : #13
spin Hors ligne
Contributeur
*****



Messages : 325
Sujets : 15
Points: 38
Inscription : Nov 2011
RE: [Arduino] Les bases
Je viens de lire la version corrigée d'après les remarques, et c'est mieux Smile
Je pense aussi qu'il faut un tutoriel consacré aux signaux et aux protocoles de communication, mais peut-être alors qu'il serait judicieux de le faire en tant qu'introduction au tutoriel Arduino. Parce-que ce que dit evolax me semble assez pertinent pour ceux qui veulent commencer avec Arduino en ne connaissant rien à la programmation sur micro.
+1 (0) -1 (0) Répondre
01-01-2013, 17h32
Message : #14
WizOut Hors ligne
Black Slave Coder
*



Messages : 111
Sujets : 13
Points: 14
Inscription : Apr 2012
RE: [Arduino] Les bases
Ah merci du tutoriel Whisky ; ) Je vais surement m'en acheter un , ça à l'air très intéressant , sur le site du zero, ils ont déjà commencé leur cours sur Arduino en section sciences Wink
"Il existe deux choses infinies : l'univers et la bêtise humaine" Einstein.
PHP/MySQL (POO & PDO) : OK
HTML5/CSS3 : OK
JAVA : En cours
+1 (0) -1 (0) Répondre
06-01-2013, 13h46
Message : #15
Ettorhake Hors ligne
Newbie
*



Messages : 11
Sujets : 1
Points: 1
Inscription : Dec 2012
RE: [Arduino] Les bases
Je connaissais mais sans jamais m'y attarder, mais maintenant que j'ai des bases en C , je bave rien qu'en pensants aux possibilités infinies Smile, je crois que je vais passer le pas et commander les bases pour bidouiller ! , merci
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Domotique en Arduino/Raspberry badTasTe 16 4,053 10-01-2014, 01h19
Dernier message: badTasTe
  ARDUINO/Raspberry : les inventions notfound 3 1,330 26-03-2013, 22h13
Dernier message: -Mat-
  Arduino : buzzer et photorésistances! Dobry 1 982 12-03-2013, 17h14
Dernier message: Swissky
  Arduino : Faites briller des LEDs Dobry 3 1,506 14-12-2012, 17h39
Dernier message: Dobry
  Arduino : cartes électroniques Open Source artis 5 1,562 24-08-2011, 03h13
Dernier message: datareaver

Atteindre :


Utilisateur(s) parcourant ce sujet : 6 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut