https://www.arduino.cc/
http://fritzing.org/home/
Attention
Les commandes sont données avec aptitude comme gestionnaire de paquet (idem que apt ou apt-get
L'exemple d'installation est donné pour du 64bit (AMD64) et pour la dernière version d'Arduino disponible (à ce jour la 1.8.8)
A adapter à vos besoins.
1/ Ajouter votre utilsateur aux groupes tty et dialout
1.1/ Ajouter votre utilsateur aux groupes tty et dialout
Code : Tout sélectionner
$ sudo addgroup $USER dialout
$ sudo addgroup $USER tty
1.2/ Vérification de la configuration
Pour vérifier que ces commandes soient bien prises en compte :
Code : Tout sélectionner
$ groups
ragnarok tty uucp dialout cdrom floppy sudo audio dip video plugdev netdev
Et l'Arduino va communiquer via ce device :
Exemple pour une Arduino UNO R3
Code : Tout sélectionner
ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 janv. 17 20:22 /dev/ttyACM0
Mais ce device doit appartenir au groupe dialout.
Et cette commande, également carte branchée, doit faire apparaître votre carte
Code : Tout sélectionner
$ lsusb | grep Arduino
Bus 001 Device 003: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
Il existe sur le marché des forks de cartes d'Arduino ...
Pour un fork d'une carte UNO R3, la configuration est identique mais la carte va communiquer via un autre device comme ttyUSB0 ou 1, 2, 3...
Exemple pour une ATMEGA328P
Code : Tout sélectionner
ls -l /dev/ttyUSB*
crw-rw----+ 1 root dialout 188, 0 janv. 18 21:51 /dev/ttyUSB0
2/ Installer l'IDE d'Arduino
2.1/ Installer Arduino depuis le dépôt officiel de votre distribution
Disponible dans les dépôts, cette version est fonctionnelle mais ce n'est pas la plus à jour.
Code : Tout sélectionner
$ aptitude show arduino
Paquet : arduino
Version : 2:1.0.5+dfsg2-4.1
État: non installé
Priorité : optionnel
Section : electronics
Responsable : Scott Howard <showard@debian.org>
Architecture : all
Taille décompressée : 1 657 k
Dépend: default-jre | java6-runtime, libjna-java, librxtx-java (>= 2.2pre2-3),
arduino-core (= 2:1.0.5+dfsg2-4.1)
Recommande: extra-xdg-menus, policykit-1
Description : EDI et bibliothèques pour carte d'expérimentation AVR
Arduino est une plate-forme libre pour prototypages électroniques, basée sur du
matériel et logiciel flexibles et faciles d'utilisation. Elle est destinée aux
artistes, concepteurs, passionnés et toute personne intéressée par la création
d'objets ou d'environnements interactifs.
Ce paquet installera l'environnement de développement intégré qui permet
d'écrire des programmes, de vérifier le code, de le compiler et de le
transférer sur la carte de développement Arduino. Des bibliothèques et des
exemples de code seront également installés.
Site : http://www.arduino.cc
Étiquettes: field::electronics, role::program
Code : Tout sélectionner
sudo aptitude install arduino
2.2/ Installer la dernière version de l'IDE d'Arduino
Si vous désirez bénéficier de la dernière version de l'IDE d'Arduino. Il faudra réaliser une installation manuelle.
Récupérer et installer la dernière version d'Arduino
Code : Tout sélectionner
$ wget https://www.arduino.cc/download.php?f=/arduino-nightly-linux64.tar.xz
$ tar xvf download.php\?f\=%2Farduino-nightly-linux64.tar.xz
$ mv arduino-nightly/ ~/arduino-1.8.8
cd ~/arduino-1.8.8
./install.sh
3/ Installer Fritzing
3.2 Qu'est-ce que Fritzing ?
Fritzing est un logiciel libre de conception de circuit imprimé qui permet de concevoir de façon entièrement graphique le circuit et d'en imprimer le typon.
Il permettra, entre autres, de dessiner vos branchements en la breadboard et la carte Arduino. Il génère également des vues schématiques et des circuits imprimés (permet également leur commande...).
Il peut également servir d'IDE pour programmer vos cartes Arduino.
Code : Tout sélectionner
$ aptitude show fritzing
Paquet : fritzing
Version : 0.9.3b+dfsg-9
État: installé
Automatiquement installé: non
Priorité : optionnel
Section : electronics
Responsable : Enrique Hernández Bello <ehbello@gmail.com>
Architecture : amd64
Taille décompressée : 8 558 k
Dépend: libc6 (>= 2.14), libgcc1 (>= 1:3.0), libgit2-27 (>= 0.26.0), libgl1,
libqt5concurrent5 (>= 5.0.2), libqt5core5a (>= 5.11.0~rc1), libqt5gui5
(>= 5.3.0), libqt5network5 (>= 5.0.2), libqt5printsupport5 (>= 5.0.2),
libqt5serialport5 (>= 5.6.0), libqt5sql5 (>= 5.0.2), libqt5svg5 (>=
5.6.0~beta), libqt5widgets5 (>= 5.11.0~rc1), libqt5xml5 (>= 5.0.2),
libstdc++6 (>= 5.2), zlib1g (>= 1:1.1.4), fritzing-data (=
0.9.3b+dfsg-9), libqt5sql5-sqlite, fritzing-parts
Description : Easy-to-use electronic design software
Fritzing is an open source project designed to help one transition from a
prototype to a finished project. Aimed at users who want to produce or document
circuits and experiments, one starts by building a physical prototype, then
recreating it with Fritzing’s graphical editor. From there one can generate a
schematic, PCB artwork, and PCB production files.
Site : http://fritzing.org
Étiquettes: field::electronics, implemented-in::c++, interface::graphical,
interface::x11, role::program, scope::application, uitoolkit::qt,
x11::application
Code : Tout sélectionner
$ sudo aptitude install fritzing
Pour se faire une idée, ça donne ce genre de chose :
3.3 Configurer Fritzing comme IDE Arduino
Lancer Fritzing, puis Fichier, Préférences
Indiquer comme Location l'endroit dossier contenant le programme Arduino.
4. Exemples
Très simple un écran LCD, un capteur de température TMP36, un switch.
Réalisation d'un thermomètre. Pour économiser l'énergie, l'écran ne s'affiche que si on appuie sur le switch.
(pas obligé d'utiliser une pile. On peut utiliser l'alimenter en 5V via la prise USB du PC. Dans ce cas brancher : 5V de la carte au + de la breadboard et la masse au - de la breadbord.)
Montage :
Et le code associé :
Code : Tout sélectionner
#include <LiquidCrystal.h>
// Décl des pins
const int sensorPin = A0;
const int switchPin = 13 ;
int previousTmpSensorVal = 0 ;
float voltage = 0.0;
float temperatureC = 0.0;
int switchState = 0 ;
// Constantes du LCD
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
pinMode(13, INPUT);
lcd.begin(16,2);
lcd.print("Affichage");
lcd.setCursor(0,1);
lcd.print("Temperature");
delay(1000);
// Reinitialisation LCD
lcd.clear();
}
void loop()
{
// Lecture de la valeur du capteur
int tmpSensorVal = analogRead(sensorPin);
// Lecture de l'interrupteur
switchState = digitalRead(switchPin);
lcd.setCursor(15,1);
lcd.print(switchState);
// Valeurx Fixes du LCD
lcd.setCursor(8,0);
lcd.print("V:");
lcd.setCursor(0,1);
lcd.print("Temp.:");
lcd.setCursor(12,1);
lcd.print("C");
// Si changement capteur, on (re)calcule la temperature
if (tmpSensorVal != previousTmpSensorVal ) {
// Calcul du volatge et conversion en degré Celsius
voltage = tmpSensorVal * 5.0;
voltage /= 1024.0;
temperatureC = (voltage - 0.5) * 100 ;
previousTmpSensorVal = tmpSensorVal ;
}
// Affichage sur demande (appui switch)
if (switchState == 1) {
// Affichage LCD
lcd.display();
lcd.setCursor(0,0);
lcd.print(tmpSensorVal);
lcd.setCursor(10,0);
lcd.print(voltage);
lcd.setCursor(7,1);
lcd.print(temperatureC);
delay(10000);
} else { // On éteint le LCD
lcd.noDisplay();
}
delay(500);
}