Arduino IDE

nico83

PILOTE PRO
Messages
491
Réactions
121
Points
68
C'est quoi ARDUINO? Une petite carte électronique programmable et un logiciel multi-plateforme, qui puisse être accessible à  tous dans le but de créer facilement des systèmes électroniques. Ou comment cinq amis (Massimo Banzi, David Cuartielles, Tom Ig, Gianluca Martino, David Mellis et Nicholas Zambetti) ont conçu la petite carte électronique qui a bouleversé le monde du DIY (Do It Yourself) et dont le nom est emprunte au Bar di Re Arduino , un pub de la ville dIvrée, située en Italie du Nord.

Télécharger la dernière version de SKETCH sur le site dArduino et décompresser le pour obtenir un dossier, il suffit de lancer l'application pour utiliser le logiciel.

Pourquoi ARDUINO?

  • Logiciel Freeware.
  • Cartes d'interface à  prix coûtant ou montée en shields.
  • Nombreuses cartes diverses pour encore plus de fonctionnalités.
  • Possibilité de connecter des entrées, sorties, afficheurs 7 segments, moteurs, servos, potentiomètre et plus.
  • Une compatibilité sous toutes les plateformes, à  savoir Windows, Linux et Mas OS..
  • Une communauté ultra développée! Des milliers de présentations de projets, de propositions de programmes et de bibliothèques.
  • Une liberté quasi absolue grâce à  un logiciel gratuit et open source, développé en Java, avec une simplicité dutilisation déconcertante et des cartes électroniques dont les schémas sont en libre circulation sur internet.

Que faire avec une ARDUINO?

Apprendre à  programmer puis à  utiliser des composants électroniques. Au final, créer des systèmes électroniques plus ou moins complexes.
  • Contrôler des appareils dom'estiques,
  • Donner une œintelligence à  un robot,
  • Réaliser des jeux de lumières,
  • Permettre à  un ordinateur de communiquer avec une carte électronique et différents capteurs,
  • Télécommander un appareil mobile (modélisme) etc...

Pré-requis pour ARDUINO

  • Un carte d'interface Arduino ou d'une autre marque.
  • Des composants électronique de base.
  • Le programme Arduino Software (IDE) ou autres pour éditer du code, le compiler, et transférer le firmware et le programme au travers de la liaison série. C'est lui qui traduit un langage (la source) en un autre (la cible), généralement dans le but de créer un programme exécutable le plus souvent un langage dassemblage ou un langage machine.

Les autres cartes

Le nom Arduino ne doit être employé que pour les cartes officielles. Vous ne pouvez pas fabriquer votre propre carte sur le modèle Arduino et lui assigner le nom Arduino.
Les fabricants qui utilisent les mêmes schémas que la Arduino vendent en leurs noms propres.

  • Les officielles sont fabriquées en Italie par le fabricant officiel Smart Projects
  • Les compatibles ne sont pas fabriqués par Smart Projects, mais sont totalement compatibles avec les Arduino officielles.
  • Les autres sont fabriquées par diverse entreprise et commercialisées sous un nom différent (Freeduino, Seeduino, Femtoduino, ).

Les autres programmes

  • ArduBlock permet de disposer d'un outil visuel où des blocs sassemblent pour représenter le fonctionnement d'un programme. (Plus d'informations Ardublock)
  • Arduino CMake est un logiciel qui permet de créer un système de construction unique, de générer le système de construction qui correspond à  vos besoins, en utilisant les outils que vous aimez. Il peut générer tout type de système de construction, à  partir de simples Makefiles, pour achever les projets pour Eclipse, Visual Studio, XCode...(Plus d'informations CMake)
  • Bitlash permet de définir de nouvelles fonctions, de les stocker dans la mémoire EEPROM et de contrôler les broches du port I/O avec quelques commandes simples tapés sur le port série.
  • KDevelop permet de créer très facilement un projet logiciel. Il prend en charge une multitude de langages de programmation tels que C, C++, Java, Pascal, PHP, Perl, Python, Ruby(Plus d'informations KDevelop)
  • Processing est un logiciel en lien avec Arduino qui permet entre autre de créer des interfaces graphiques avec un langage de programmation très similaire à  celui dArduino.
  • Visual Studio est un ensemble complet doutils de développement qui utilise le même environnement de développement intégré (IDE), pour partager des outils et faciliter la création de solutions faisant appel à  plusieurs langages. (Plus d'informations Visual Studio)

Les librairies indispensables

La nombre et la diversité des librairies disponibles pour le système Arduino est tout simplement impressionnant.
Les librairies étant open source comme tout le reste, vous pouvez tout modifier à  votre guise et créer au besoin vos propres librairies.

  • La librairie Serial pour les communications séries entre la Arduino et l'ordinateur/d'autres composants.
  • La librairie LCD pour l'utilisation et le contrôle d'un afficheur LCD alpha-numérique standard.
  • La librairie Servo pour contrôler les servomoteurs.
  • La librairie Stepper pour contrôler les moteurs pas à  pas.
  • La librairie Keypad pour l'utilisation des claviers dordinateur.
  • La librairie Ethernet pour se connecter à  Internet en utilisant le module Arduino Ethernet
  • La librairie EEPROM pour lire et écrire dans la mémoire EEPROM non volatile.
  • La librairie SD pour utiliser une carte mémoire SD (utiliser des fichiers, stocker des données)
  • La librairie Wire/I2C pour envoyer et recevoir des données sur un réseau de modules ou capteurs.
  • La librairie SPI pour communication série avec des modules externes supportant le protocole SPI
  • La librairie Firmata pour communiquer avec des applications sur l'ordinateur utilisant un protocole série standard.

Plus d'informations dans la librairie Arduino


Bon j'ai reçu la carte "réplique" arduino uno, mais impossible de commander le servo avec un potard.
Je télécharge bien le driver, il senregistre bien mais après je n'y arrive plus.
Fais chier de rien comprendre à  l'informatique
 
Salut, est ce que tu pourrais poster une photo de ton montage, déjà  pour voir à  quoi ressemble la carte, et pour voir si les branchements sont bons. Sinon la carte est reconnu par le PC comme un joystick?

Il y aura surement de la programmation à  faire derrière, la carte est livré avec un soft? Tu comptes lié ta carte arduino comment avec FSX?
 
En fait simple, juste que je suis une quiche en informatique, donc pour moi c'est compliqué :D
Pour la liaison avec FSX, en fait vu que le potard commande le servo, je me serai servi du potard des volet. Et le servo aurai commandai l'aiguille de la gauge. Dans la théorie c'est simple.
Pour la pratique!!!!!!!!!!!!!!!!!!!!!!
Je télécharge bien le lien du DRIVER. Je linstalle, il me dit qu'il est bien installé, mais après quand je branche ma carte j'ai rien.
Même pas une fenêtre de prog qui souvre. Je le cherche de partout et je trouve rien.
Donc du coup je peux rien faire avec.
En même temps je sais même pas à  quoi sert un driver
 
Le driver ou pilote c'est un logiciel qui permet à  ton Pc de reconnaître un matériel et de l'utiliser ; comme quand tu fait ta mise à  jour pour ta carte graphique.
 
ok je comprend. Bon alors le driver reconnait bien la carte. Car dans la rubrique périph il la trouve. Mais je comprend pas pourquoi rien ne souvre, même pas un programme.
Normalement quand je mets le tel ou la caméra ou autre periph, j'ai toujours une fenêtre de démariage qui souvre pour lancer le prog.
 
Bah ils tont pas livrer un cd d'installation avec ta carte sinon sur le site internet du fabricant tu devrais avoir un programme. Tu dis avoir acheter une réplique donne nous plus d'information comme ça on va chercher avec toi.
 
Quand je regarde sur le net, les gars qui programme une carte Arduino le fond grâce à  une fenêtre spéciale pour la carte ou il peuvent rentrer leurs valeurs.
Après je me dit que j'aurai du mettre 15€ de plus et avoir une vraie Arduino au moins je n'aurai peut être pas eu de surprises.
 
Ta carte utilise la meme programmation que larduino de base, il y a que le driver qui change ;)
15112709000816200213784400.jpg


Déja pour commencer bien vérifier que ton câblage est fait comme sur la vidéo
https://www.youtube.com/watch?v=2A_Ux9rJBD0

Sur le potar la broche du milieu est relié sur une entré "analog in" de la carte Arduino et les 2 autres sur +5V et GND
Sur le servo le câble marron sur le GND, le câble rouge sur le +5V et le dernier sur une des sorties "digital"

Le logiciel de programmation

Un exemple de code que j'ai écrit pour toi :cool: :
Code:
/*
 Controler la position d'un servomoteur avec un potentiomètre 
par Silverstar pour Nico83
*/

#include <Servo.h>

int potpin = 3;  // le pin analogue pour utiliser le potentiomètre dans mon exemple le numéro 3
int servpin = 7;  // le pin digital pour utiliser le servo dans mon exemple le numéro 7
int val = 0;  // la variable à  partir duquel on va lire la valeur de mon potentiomètre

void setup() 
{
  pinMode(potpin, INPUT);  // le pin 3 de mon potentiomètre est configurer comme une entrée
  servpin.attach(7);
}

void loop() {
  val = map(analogRead(potpin), 0, 1023, 0, 180);  // lire la valeur du potentiomètre (valeur entre 0 et 1023)
  servpin.write(val);
delay(30);  // temps en ms avant que le servo se déplace lorsque je tourne mon potentiomètre
}

Edit : j'ai éditer mon ancien code celui ci est plus propre.

Dans mon exemple ton potar a une plage de 0 à  1700, mais peut être que le tien ça sera différent mais c'est lesprit. Avec FSUIPC tu pourra lire cette valeur.

Ensuite il te faudra FSUIPC pour que ton potar soit reconnu comme un périphérique dentrée. Puis tu affecteras les memes valeurs des exemples de position que je t'ai donné au dessus, ensuite le cheminement est simple :

FSX est relié à  FSUIPC qui est lui même rélié à  ton potar via larduino.
Ton servo est uniquement relié a ton potar via la programmation faite avec ton arduino.
Ton potar à  deux fonctions une virtuel et une physique.
Il communique avec le servo physique via larduino et communique en meme temps avec FSuipc pour FSX.

Tu tournes ton potar entre la valeur 350 et 450 ton servo va allé sur la position 5

Au pire si tu as des soucis de programmation je pourrais t'aider :D
 
Silver tu est extraordinateurn'aire :D :D

Bon j'ai téléchargé le prog de Arduino.
J'ai bien la fenêtre de prog, j'ai rentré ton prog.
Je "téléverse" le prog, les diodes clignotes, il me dit que le programme prend x octets.
Après je comprend pas pourquoi le potard est branché comme ca. Il me semble que le + et le - son inversé??

Je pense que j'ai manqué un épisode ou alors ma carte vaut rien. Mais vu que je suis pas bon en prog je penche plutôt pour une erreur de moi.
 
Attends faut faire les choses méthodiquement, pas à  pas et bien comprendre ce que tu fais. Pour l'instant oublie la programmation et concentre toi sur le cablage de ton potar et ton servo sur Larduino.

Il faut que tu te fixe un numéro dentrée analogique et une sortie digital, et de t'y tenir. Dans mon exemple j'ai pris 3 et 7 mais sur ta photo les câbles ne sont pas branché!!!

Chose à  faire habituellement le bleu pour GND le rouge pour +5v comme ca tu mélange pas les couleurs.
Sur ta photo tu as fait linverse mais bon c'est plus mnémotechnique. Par contre Le marron du potard n'est pas branché!!!

Ensuite le jaune du servo n'est pas branché non plus,on dirait qu'il est sur le 9?

Cet après-midi je me commande une arduino tu ma donner envie de faire des tutoriels et du codage
 
SILVER, tu me rend fou :D

JY suis arrivéééééééééééééééééééééééééé :p :p :p

Mais mon servo na pas assez de course. Fais chier, tjs un truc. Pourtant je suis à  fond avec le potard.
https://youtu.be/bv5fr8S1oqw
 
J'ai pris un code sur le net dans un forum commet débuter avec arduino. Quand je rentre le tiens il se passe rien. je comprend pas.
 
C'est normale mon code est a titre dexemple c'étais en gros pour te montrer à  quoi ça ressemble pour que tu puisses le faire toi même. Peux tu coller le code que tu as pris sur le forum que je regarde.
 
Par contre sur la vidéo on te vois pas bouger le potar, du coup pour faire bouger ton servo en continu comme sur la vidéo tu a déplacer ton potar de la butée mini à  butée maxi?
 
Oui de mini a maxi. J'ai regardé les gauges des simu, elles ont un petit servo comme moi, mais il y a des pignons. Donc je vais faire les mêmes démultiplication que la manette des flaps.

/* Servomoteur avec un potentiomètre */

#include <Servo.h>

#define PIN_POTAR A0
#define PIN_SERVO_1 2

//Création d'un objet servo pour le controler
Servo servo_1;

int val = 0; //Variable qui stock la position du servo

void setup() {
//On attache la pin
servo_1.attach(PIN_SERVO_1);

}

void loop() {
//On met à  l'échelle la valeur de potentiomètre (0-1023)
//par rapport à  l'échelle du servo (0-180)
val = map(analogRead(PIN_POTAR), 0, 1023, 0, 180);
servo_1.write(val);

delay(100);

}
 
Ouaiss c'est bon pour faire une tite explication vite fait, j'aime bien la programmation

/* Servomoteur avec un potentiomètre */ Titre de ton programme

#include <Servo.h> Ca permet dinclure la librairie Servo dans ton programme (c'est obligatoire)

#define PIN_POTAR A0 Ca défini ton potar sur le pin A0 mais si tu mets 0 ca passe A3 ca peut etre aussi 3, le A est facultatif, aussi tu peux lécrire Int Pinpot = 0, faut juste garder le meme nom quand tu fais ton code
#define PIN_SERVO_1 2 Ca défini ton servo sur le pin 2, aussi tu peux lécrire Int Servpot = 2

//Création d'un objet servo pour le controler
Servo servo_1; Tu peux le nommer aussi Servo monservo_1; ou Servo monservo_2; si tu as 2 servo par exemple ;

int val = 0; //Variable qui stock la position du servo C'est la valeur minimale du servo

void setup() { Permet de configurer les entrées et le sorties
//On attache la pin
servo_1.attach(PIN_SERVO_1); Ca peut aussi sécrire servo_1.attach(2); puisque (PIN_SERVO_1)=pin 2;

}

void loop() { Permet de programmer les interactions
//On met à  l'échelle la valeur de potentiomètre (0-1023) Ca correspond a la valeur numérique du potar par rapport à  la tension 0V et 5V donc 1023=5V
//par rapport à  l'échelle du servo (0-180) Ca correspond à  l'angle en degré du potar tu peux mettre 360 ou plus suivant ton potar
val = map(analogRead(PIN_POTAR), 0, 1023, 0, 180); ca permet de calibrer des valeurs pour le servo de 0 à  180°
analogRead(PIN_POTAR), c'est la valeur à  convertir pour la changer de gamme
0, c'est la valeur minimale de la gamme à  convertir
1023, c'est la valeur maximale de la gamme à  convertir
0, c'est la valeur minimale de la gamme vers laquelle est convertie la valeur initiale
180 c'est la valeur maximale de la gamme vers laquelle est convertie la valeur initiale
servo_1.write(val); Ca positionne le servo suivant la valeur du potentiomètre


delay(100); temps en ms avant que le servo se déplace lorsque tu tourne le potar

}

bon j'ai commander ma Arduino, on va bientot samuser car on peut faire pas mal de trucs avec cette carte.
 
nico83 a dit:
J'ai pris un code sur le net dans un forum commet débuter avec arduino. Quand je rentre le tiens il se passe rien. je comprend pas.

J'ai éditer mon code du début des fois que ça porte a confusion et puis comme ça on peut progresser et échanger sur nos découvertes. J'ai vu qu'on pouvait faire pas mal de choses avec la programmation du servo, et aussi d'autres trucs genre clignotement de led, allumage et tempo extinction, du 7 segments, du DC motor ect.. bref quand je recois mon arduino je vais regarder comment ca se passe avec P3D/FSX.
 
Ha oui je pense que pour des gars comme vous qui touchent les programmes c'est du bonheur, pour moi c'est juste lenfer :p

Bref, voila ma démultiplication, ca ira j'ai testé. Reste plus qua mettre le servo dans le TQ.

Et ce soir mode repos, suis HS :( :( :(

 
tu métonnes ébullition de ton cerveau aujourd'hui... allez repose toi bon week end.
 
Vous ouvrez une autre piste là  aussi, merci !! La carte clone arduino à  moins de 8€ ... c'est séduisant !
Je vais suivre ce fil avec attention

Bon we
 
Hello,

J'ai enfin reçu ma carte Arduino et j'ai décider dans une premier montage de me faire un testeur de led simple mais aussi pour les PCB dopencockpit. Et oui certaines leds opencockpits peuvent être hors service ou bien tout simplement connaitre la couleur de la led. Certaines diodes sont jaunes donc facile mais d'autres sont blanches mais diffusent du bleu voir d'autre couleur, bref un prix bas, pas de soudure et un énorme potentiel la Arduino va mêtre très utile.

Ce qu'il faut :

Une résistance de 270 Ohms (2 résistances si vous utilisez une Led)
Le logiciel Sketch Arduino
Un arduino Uno ou autre carte de même base
Un cable USB A mâle/B mâle
Une BreadBoard sans soudure (plaque d'essai)
15120711384816200213814175.jpg

Des fils pour plaque d'essai (je me suis fait un cable 2 en 1 pour led et PCB)
15120711385116200213814176.jpg

Une led ou un PCB Opencockpit

C'est parti :cool:

On connecte sur la Arduino 2 cables (Rouge +5V et bleu GND)
15120711475816200213814185.jpg


On connecte les extrémités sur la plaque d'essai (Rouge +5V et bleu GND)
15120711480216200213814186.jpg


PCB J1 rouge sur le + de la plaque, pour les Leds c'est différent je montre plus bas...
15120711475516200213814184.jpg


PCB GND noir (choix couleur) sur le pin numérique de la Arduino dans mon cas le 8 (choix pin)
15120711475116200213814183.jpg


Pour connecter une Led il faut impérativement intercaler une résistance entre la borne + ou - de la Led (dans mon cas ce sera entre la borne +)
15120812073316200213814202.jpg

15120812073616200213814203.jpg


Maintenant on passe à  l'interrupteur dans mon cas, 3 positions (désolé le reste est sur mon OVH). 3 cables (1 pour le pin numérique 4 (choix), un pour la masse avec une résistance Pull-up, et un pour le +5V) Si vous utiliser un bouton poussoir avec 2 bornes penser à  intercaler une résistance entre la masse et le pin afin de limiter les perturbations électrostatique de vos mains par exemple en placant une résistance Pull-up.
15120812183616200213814208.jpg


Celui pour la masse avec Pull up
15120812195416200213814213.jpg


Celui pour le pin 4 de lArduino
15120812222316200213814216.jpg


Celui du +5V
15120812222116200213814215.jpg


Ca doit ressembler à  cela une fois fini
15120812254116200213814220.jpg


Maintenant on passe sur Sketch on rentre ce code et on téléverse
Code:
/* Controler lallumage d'une led avec un bouton par Silverstar
 *  
 */
const int bouton = 4;
const int led = 8;
int etat;
 
void setup ()
{
  pinMode(bouton,INPUT);
  pinMode(led,OUTPUT);
  etat = HIGH;
}
 
void loop ()
{
  etat = digitalRead(bouton);
  if (etat == HIGH)
  {
  digitalWrite(led,HIGH);
  }
  else
  {
    digitalWrite(led,LOW);
  }
}

15120812305916200213814221.jpg

15120812310216200213814222.jpg

15120812310516200213814223.jpg
 
Salut Nico , je viens de finir mon tuto pour le testeur de Led. J'avoue c'est tout frais encore voici un code à  tester que j'ai trouver sur le net par contre tu mets le poussoir sur le pin A0 et celui du potar sur 2.

Code:
#include <Servo.h>
 
const byte SERVO_A_ANGLE_MIN = 0;
const byte SERVO_A_ANGLE_MAX = 1;
const byte SERVO_EN_MOUVEMENT_VERS_ANGLE_MAX = 2;
const byte SERVO_EN_MOUVEMENT_VERS_ANGLE_MIN = 3;
 
const int angleMin = 1250;
const int angleMax = 1750;
 
Servo monServo;
int vitesse = 0;
int angle = angleMin;
byte etatServo = SERVO_A_ANGLE_MIN;
 
const int pinBouton = 0; /* le bouton est connecté à  la broche A0 */
 
const boolean PRESSE = true;
const boolean RELACHE = false;
 
boolean etatBouton = RELACHE;
 
const byte AUCUN_EVENEMENT = 0;
const byte EVENEMENT_PRESSE = 1;
const byte EVENEMENT_RELACHE = 2;
 
/*
 * fonctions de gestion du poussoir
 */
boolean lirePoussoir()
{
    boolean resultat = RELACHE;
    if (analogRead(pinBouton) > 512) {
        resultat = PRESSE;
    }
    return resultat;
}
 
byte lireEvenement()
{
    byte evenement;
    boolean nouvelEtat = lirePoussoir();
    if (nouvelEtat == etatBouton)
        evenement = AUCUN_EVENEMENT;
    if (nouvelEtat == PRESSE && etatBouton == RELACHE)
        evenement = EVENEMENT_PRESSE;
    if (nouvelEtat == RELACHE && etatBouton == PRESSE)
        evenement = EVENEMENT_RELACHE;
    etatBouton = nouvelEtat;
    return evenement;
}
 
/*
 * La fonction setup() est exécutée 1 fois
 * au démarrage du programme
 */
void setup()
{
  monServo.attach(2);
}
 
/*
 * La fonction loop() est exécutée
 * répétitivement
 */
void loop()
{
    /* actualisation de l'angle du servo */
    monServo.writeMicroseconds(angle);
  
    angle = angle + vitesse;
  
    if (angle > angleMax) {
        angle = angleMax;
        vitesse = 0;
        etatServo = SERVO_A_ANGLE_MAX;
    }
    else if (angle < angleMin) {
        angle = angleMin;
        vitesse = 0;
        etatServo = SERVO_A_ANGLE_MIN;
    }
 
    /* lecture de la commande de l'utilisateur */
    byte evenement = lireEvenement();
  
    if (evenement == EVENEMENT_PRESSE) {
        switch (etatServo) {
            case SERVO_A_ANGLE_MIN:
            case SERVO_EN_MOUVEMENT_VERS_ANGLE_MIN:
                vitesse =  1;
                etatServo = SERVO_EN_MOUVEMENT_VERS_ANGLE_MAX;
                break;
            case SERVO_A_ANGLE_MAX:
            case SERVO_EN_MOUVEMENT_VERS_ANGLE_MAX:
                vitesse = -1;
                etatServo = SERVO_EN_MOUVEMENT_VERS_ANGLE_MIN;
                break;
        } 
    }
 
    delay(3);
}
 
Ah ah

Il te faut une Arduino pour ça ?
mettre l'interrupteur en série avec la résistance et la led aurais suffit :D
Mais je te comprends, les solutions les plus simples sont pas les plus faciles à  appliquer
Enfin, il fallait bien faire tes premiers pas dans le monde Arduino !

DREAMBOX
 
dreambox a dit:
Ah ah

Il te faut une Arduino pour ça ?
mettre l'interrupteur en série avec la résistance et la led aurais suffit :D
Mais je te comprends, les solutions les plus simples sont pas les plus faciles à  appliquer
Enfin, il fallait bien faire tes premiers pas dans le monde Arduino !

DREAMBOX

Oui je sais mais il fallait bien faire un montage et une Programmation simple pour tester Arduino, c'est tout nouveau pour moi.

mameloose a dit:
jolie tuto t'as fait plein de photo ca explique bien ;)

Merci Greg!!
 
Sympa bon tuto, bien commenter. Après c'est sûr une pile un bouton et on fait un testeur mais Je trouve ça bien pour apprendre l'électronique et la programmation. Jpense les lycéens qui font des Bep électrotechnique y doivent avoir ce type dexercice.
 
Retour
Haut