Ceci est une ancienne révision du document !
Table des matières
Contrôler un Arduino grâce à Qt Creator
Tout ces documents sont sous licence CC BY-NC-SA : Cette licence permet aux autres de remixer, arranger, et adapter votre œuvre à des fins non commerciales tant qu'on vous crédite en citant votre nom et que les nouvelles œuvres sont diffusées selon les mêmes conditions.
Introduction
Pré-requis : Aucun ! Tout est expliqué et détaillé, aucune connaissance particulière n'est nécessaire. C'est réalisable par tout le monde !
Objectif
On va contrôler un servomoteur grâce a une application Qt. La communication se fait par le câble USB
Matériel
- Un Arduino (j'utilise un Arduino Nano 3.0)
- Un PC, s'il n'est pas sous Linux il faudra adapter le code Qt (le mien est sous Ubuntu 12.04.2 desktop (64 bits))
- Un servomoteur
Installation
Il faut installer Qt Creator et compiler ExtSerialPort :
sudo apt-get install -y qtcreator && git clone https://code.google.com/p/qextserialport/ && cd qextserialport && qmake && make && sudo make install
Arduino
On branche l'Arduino sur l'USB après avoir branché le servomoteur :
Rouge : 5V
Marron : GND
Jaune : D9
Démarrer un projet Arduino et compiler/transférer ce code :
#include <Servo.h> Servo srv; int incomingByte = 0; void setup() { Serial.begin(9600); // on defini le baud-rate srv.attach(9); // on attache un servo en D9 } void loop() { if (Serial.available() > 0) { // lecture des bytes arrivant : incomingByte = Serial.read(); srv.write(incomingByte); // on écrit la valeur recue sur le servo //Serial.print(incomingByte); } }
Projet Qt Creator
Ouvrir le projet Qt Creator : double clic sur le .PRO
Branchez l'Arduino si ce n'est pas déjà fait et lancez la commande suivante :
ls /dev/ | grep USB
Le résultat devrait être ttyUSB0 par exemple. Modifier ligne 21 de usb_servo.cpp pour que le périphérique corresponde.
Pour exécuter le programme : Ctrl + R ou clic sur la flèche “lecture” verte en bas à gauche.
Problèmes
Chez moi le programme Qt a parfois du mal a ouvrir le port, débrancher et rebrancher l'Arduino si cela arrive.