TP2 : Communication Arduino/Raspberry


Mise en situation
Le travail de ce TP se déroule à deux.
Temps alloué : 6h
La programmation se fait directement sur la carte avec gcc
|
Objectif
- Prise en main de la carte
- Utiliser les broches de la GPIO
- Utiliser la liaison série pour la com Arduino/Raspberry
|
Travail demandé
Démonstration au professeur de la progression.
|
Critères d’évaluation
Exécutable opérationnel.
|
Utiliser une Rasberry pour faire clignoter une led.
- La carte a besoin d'un système d'exploitation à installer sur une carte mémoire micro-SD. Création de la carte
- Connecter un écran, un clavier et une souris.
- Alimenter la carte, le système d'exploitation démarre
- Changer de mot de passe pour le login pi, mettre passwd
Comme il n'y a pas assez de hub pour recevoir la carte SD, certains commenceront avec des Raspberry 4 ou utilisez vos portables pour mettre la carte SD dans un adaptateur.
Connexion de la carte au réseau |
- Connecter la carte au réseau en filaire
- Vérifier que la carte reçoit son adresse IP par un serveur DHCP
- Editer le fichier /etc/network/interfaces
- allow-hotplug eth0
- auto eth0
- iface eth0 inet dhcp
- Editer le fichier /etc/apt/apt.conf.d/10proxy
- Acquire::http::Proxy "http://10.129.254.254:3128/";
- Editer le fichier /etc/environment
- export http_proxy="http://10.129.254.254:3128"
Connecter le bureau windows à la carte par VNC |
- Activer SSH. Cliquer sur la framboise, dans préférences choisir "Configuration du Raspberry PI". Dans interfaces, valider SSH et VNC
- Sur la carte, à partir d'une console, taper "ifconfig" pour connaitre l'adresse IP de la carte.
- Sur Windows, lancer
. S'il n'existe pas, télécharger tigerVNC et prendre tigerVCN64-1.13.1
- Réaliser une nouvelle connexion en mettant l'adresse du Raspberry suivi de :1.
exemple : 10.129.22.21:1
Premier programme en C sur Raspberry |
En vous aidant du site
Premier programme réaliser et exécuter votre 1er "bonjour le monde" sur Raspberry.
On utilisera le compilateur gcc avec comme commande simple :
gcc bonjour.c -o bonjour
Programme en C de la GPIO de la Raspberry |
Nous allons utiliser une bibliothèque permettant d'utiliser les même fonction qu'une arduino pour faire clignoter une led
-
- Sur Windows, télécharger le zip WiringPI
- Le dézipper
- Copier sur une clé USB
- Sur Raspberry, dans le répertoire, sur console, lancer ./build
- Suivre l'exemple : Clignoter
- Ecrire votre 1er programme blink pour la GPIO qui va faire clignoter une led
remarque : le code se trouve dans le répertoire exemple compilé avec :
gcc -Wall -o blink blink.c -lwiringPi
- Faire le branchement
- Par la suite, utilisez Geany sur Raspberry et faîtes un makefile (lien sur le partage dans sujet)
Communication entre la Raspberry et une Arduino
Comme vu précédemment, la commande de matériel (Ex : Servo-moteur) n'est pas aisé sur la GPIO. Pour nous asbtraire de ce problème, nous allons utiliser une Arduino pour commander le matériel et on utilisera la Raspberry pour commander et gérer.
La liaison se fera sur une liaison série.
Exemple
La carte arduino gèrera un interrupteur et une led. Dès que l'on commandera la led (attention, une entrée lira l'état de l'IT et commandera alors la led), on le dira à la Raspberry qui totalisera dans un fichier le nombre de fois que l'on a allumé la led.
Problème connexion IHM : Il ce peut que le lancement de startx arrive sur une fenêtre demandant une connexion. Pour éviter cela, suivre la procédure :
- Pour ouvrir une console, appuyer simultanément sur : CTRL + Alt + F1
- chmod 777 /home/pi/.Xautority
- chgrp pi /home/pi/.Xautority
- chown pi /home/pi/.Xautority
Référence de la bibliothèque :

