Différences entre les versions de « RaspberryPi »
(12 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Image:Raspberry_Pi_Logo.svg.png|thumb| | ← [[Accueil]] ← [[Microcontroleurs et Nano-Ordinateurs]] | ||
[[Image:Raspberry_Pi_Logo.svg.png|thumb|right]]<center>Le Raspberry Pi</center> | |||
[[Category:Microcontroleurs]] | |||
= VoLAB = | = VoLAB = | ||
Ligne 17 : | Ligne 17 : | ||
= Introduction : = | = Introduction : = | ||
Nous allons ici vous | Nous allons ici vous présenter seulement les informations réellement utiles que nous avons trouvées ou expérimentées lors de nos recherches. | ||
Ce document ne sera certainement pas un document exhaustif. Il est simplement le reflet de nos expériences. Ce document est donc à la croisée d'un pense-bête et d'un journal de manip. | |||
[[Image:ArgonPiCase.jpg|thumb|right]]<center>Exemple de boîtier de Raspberry Pi</center> | |||
= UART : = | = UART : = | ||
== Comment avoir | == Comment avoir plusieurs UART (ports séries) sur un seul Raspberry Pi : == | ||
Vous le savez certainement, le Raspberry Pi dispose sur ses GPIO d'un UART qui est accessible sur les broches physiques 8 et 10 | Vous le savez certainement, le Raspberry Pi dispose sur ses GPIO d'un UART qui est accessible sur les broches physiques 8 et 10 | ||
Ligne 46 : | Ligne 48 : | ||
|} | |} | ||
Cela peut suffire dans la plupart des cas. Cependant, il peut arriver que vous ayez besoin de port série supplémentaire. Si votre projet est strictement | Cela peut suffire dans la plupart des cas. Cependant, il peut arriver que vous ayez besoin de port série supplémentaire. Si votre projet est strictement confiné aux dimensions du Raspberry Pi, nous n'avons pas de solution pour vous. | ||
Si au contraire vous | Si au contraire vous disposez de tout l’espace situé devant les ports USB, alors vous allez pouvoir vous amuser. | ||
Vous devez vous procurez un [http://www.banggood.com/Wholesale-USB-To-TTL-COM-Converter-Module-buildin-In-CP2102-New-p-27989.html adaptateur usb-TTL] que vous trouverez sur internet pour 2 ou 3 euros. | Vous devez vous procurez un [http://www.banggood.com/Wholesale-USB-To-TTL-COM-Converter-Module-buildin-In-CP2102-New-p-27989.html adaptateur usb-TTL] que vous trouverez sur internet pour 2 ou 3 euros. | ||
Avant de commencer, voici un petit rappel sur la correspondance des noms "Windows" et les noms "Linux" : | |||
Ligne 64 : | Ligne 66 : | ||
=== | === Connaître la liste des ports séries utilisés :=== | ||
:Il y a deux | :Il y a deux façons simples de connaître la liste des ports séries utiliés : | ||
::ls /dev/tty* | ::ls /dev/tty* | ||
<br /> | <br /> | ||
:La commande retourne généralement plus de 50 tty. Cependant, les tty associés | :La commande retourne généralement plus de 50 tty. Cependant, les tty associés aux ports USB disposent d'une nomenclature différente. Ils contiennent habituellement USB ou ACM (Abstract Control Model) | ||
:La seconde façon, est | :La seconde façon, est d’interroger le journal sur toutes les entrées "tty" | ||
::dmesg | grep tty | ::dmesg | grep tty | ||
<br /> | <br /> | ||
: Cette seconde | : Cette seconde méthode peut paraitre plus complexe à interpréter, mais elle nous renseigne directement sur le matériel et sur le port utilisé. | ||
<br /> | <br /> | ||
=== Rappel : Libérer l'UART pour l'utiliser depuis le GPIO<br/>=== | === Rappel : Libérer l'UART pour l'utiliser depuis le GPIO<br/>=== | ||
Par défaut, l'UART | Par défaut, l'UART est réservé au debug et n'est accessible qu'en mode console LINUX, vous devez donc le désactiver dans l'outil de configuration.<br/> | ||
* Intérroger le journal sur les | * Intérroger le journal sur les derniers événements de la liaison série pour vérifier que l'opération n'a pas déjà été effectuer<br /> | ||
::dmesg | grep tty<br /><br /> | ::dmesg | grep tty<br /><br /> | ||
:Si l'opération n'a pas encore été | :Si l'opération n'a pas encore été effectuée, le résultat obtenu doit être :<br/> | ||
::[ 0.002072] console [tty1] enabled<br/> | ::[ 0.002072] console [tty1] enabled<br/> | ||
::[ 0.195363] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 83, base_baud = 0) is a PL011 rev2<br/> | ::[ 0.195363] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 83, base_baud = 0) is a PL011 rev2<br/> | ||
Ligne 143 : | Ligne 145 : | ||
:Nous somme donc assuré que notre adaptateur a bien été pris en compte et que le système lui a effectivement attaché un port série. Il ne reste plus qu'a utiliser notre nouveau port série | :Nous somme donc assuré que notre adaptateur a bien été pris en compte et que le système lui a effectivement attaché un port série. Il ne reste plus qu'a utiliser notre nouveau port série | ||
[[Image:branchementUsbTTL.png]]<br /> | [[Image:branchementUsbTTL.png|centre]]<br /> | ||
Pour pouvoir tester notre communication série, nous avons placé un cavalier entre les broches Rx et Tx de l'adaptateur. Nous avons ensuite lancer un petit script en Python3 pour vérifier le bon fonctionnement du couple envoie / réception : | Pour pouvoir tester notre communication série, nous avons placé un cavalier entre les broches Rx et Tx de l'adaptateur. Nous avons ensuite lancer un petit script en Python3 pour vérifier le bon fonctionnement du couple envoie / réception : | ||
<br /> | <br /> | ||
Ligne 152 : | Ligne 154 : | ||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
# Pour executer | # Pour executer ce script, lancer la commande : | ||
# python serialWrite.py | # python serialWrite.py | ||
# Ce script envoie en | # Ce script envoie en continu la chaine de caractères : | ||
# "Write counter:" suivie de la variable "counter" | # "Write counter:" suivie de la variable "counter" | ||
# cette variable est | # cette variable est incrémenté de 1 à chaque tour | ||
# de boucle | # de boucle | ||
# La chaine transmise est | # La chaine transmise est reçue et affichée dans la foulée | ||
import time | import time | ||
Ligne 183 : | Ligne 185 : | ||
print(x) | print(x) | ||
</nowiki> | </nowiki> | ||
On voit par cette méthode qu'il est très facile d'ajouter un port série au RaspBerry Pi(2). Sur un Rpi2, on peut ainsi avoir 2 voir 3 ports COM supplémentaires. On se garde un port USB pour un petit dongle WIFI. On pourrait même aller encore plus loin en y ajoutant un petit hub USB... | |||
= Fichiers sources = | = Fichiers sources = |
Version actuelle datée du 30 mars 2022 à 21:48
← Accueil ← Microcontroleurs et Nano-Ordinateurs
VoLAB
Association VoRoBoTics
Date : 31/08/2015
Auteur : Poltergeist42
Relecteur :
Thème: Nano-Ordinateurs
Projet : Cook Book RPi
Introduction :
Nous allons ici vous présenter seulement les informations réellement utiles que nous avons trouvées ou expérimentées lors de nos recherches.
Ce document ne sera certainement pas un document exhaustif. Il est simplement le reflet de nos expériences. Ce document est donc à la croisée d'un pense-bête et d'un journal de manip.
UART :
Comment avoir plusieurs UART (ports séries) sur un seul Raspberry Pi :
Vous le savez certainement, le Raspberry Pi dispose sur ses GPIO d'un UART qui est accessible sur les broches physiques 8 et 10
Cela peut suffire dans la plupart des cas. Cependant, il peut arriver que vous ayez besoin de port série supplémentaire. Si votre projet est strictement confiné aux dimensions du Raspberry Pi, nous n'avons pas de solution pour vous.
Si au contraire vous disposez de tout l’espace situé devant les ports USB, alors vous allez pouvoir vous amuser.
Vous devez vous procurez un adaptateur usb-TTL que vous trouverez sur internet pour 2 ou 3 euros.
Avant de commencer, voici un petit rappel sur la correspondance des noms "Windows" et les noms "Linux" :
COM1 -> /dev/ttyS0
COM2 -> /dev/ttyS1
COM3 -> /dev/ttyS2
COM4 -> /dev/ttyS3
Connaître la liste des ports séries utilisés :
- Il y a deux façons simples de connaître la liste des ports séries utiliés :
- ls /dev/tty*
- La commande retourne généralement plus de 50 tty. Cependant, les tty associés aux ports USB disposent d'une nomenclature différente. Ils contiennent habituellement USB ou ACM (Abstract Control Model)
- La seconde façon, est d’interroger le journal sur toutes les entrées "tty"
- dmesg | grep tty
- Cette seconde méthode peut paraitre plus complexe à interpréter, mais elle nous renseigne directement sur le matériel et sur le port utilisé.
Rappel : Libérer l'UART pour l'utiliser depuis le GPIO
Par défaut, l'UART est réservé au debug et n'est accessible qu'en mode console LINUX, vous devez donc le désactiver dans l'outil de configuration.
- Intérroger le journal sur les derniers événements de la liaison série pour vérifier que l'opération n'a pas déjà été effectuer
- dmesg | grep tty
- dmesg | grep tty
- Si l'opération n'a pas encore été effectuée, le résultat obtenu doit être :
- [ 0.002072] console [tty1] enabled
- [ 0.195363] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 83, base_baud = 0) is a PL011 rev2
- [ 0.695429] console [ttyAMA0] enabled
- [ 0.002072] console [tty1] enabled
- configurer l'UART avec l'outil de configuration du Rpi
- sudo raspi-config
- sudo raspi-config
- se déplacer dans les menu selon la séquence suivante
- [ 8 ] --> [ A8] --> [ Non ]
- [ 8 ] --> [ A8] --> [ Non ]
- Le quatrième écran vous informe que Serial est maintenant désactivé
- [ Ok ] --> [ Finish ]
- [ Ok ] --> [ Finish ]
- Redémarer
- sudo reboot
- sudo reboot
- Vérifier dans le journal que l'opération a bien été prise en compte
- demsg | grep tty
- demsg | grep tty
- Ce qui doit vous donner le résultat suivant :
- [ 0.002051] console [tty1] enabled
- [ 0.195175] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 83, base_baud = 0) is a PL011 rev2
- [ 0.002051] console [tty1] enabled
- On constate que la dernière ligne à disparue, le mode debug sur la sortie UART est donc bien désactivée.
Utilisation de l’adaptateur USB-TTL
La première chose à faire est bien évidement de connecter l’adaptateur dans l'un des ports USB disponible.
- Connaitre le port de l'adaptateur
- Avant de s'inquiéter du port utiliser par l'adaptateur, il faut s'assurer qu'il a bien été pris en compte par le système au moment du branchement :
- lsusb
- Vous devriez obtenir un résultat proche de ceci :
- Bus 001 Device 005: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
- la commande suivante :
- ls /dev/tty*
- Doit à présent s'être enrichie d'une étiquette supplémentaire à la toute fin du tableau, ressemblant à :
- /dev/ttyUSB0
- On peut donc deviné que le composant CP210x communique sur le port /dev/ttyUSB0. Pour le vérifier on interroge le journal sur les éléments tty :
- dmesg | grep tty
- la dernière entrée dans le journal est alors :
- [ 4708.499632] usb 1-1.4: cp210x converter now attached to ttyUSB0
- Nous somme donc assuré que notre adaptateur a bien été pris en compte et que le système lui a effectivement attaché un port série. Il ne reste plus qu'a utiliser notre nouveau port série
Pour pouvoir tester notre communication série, nous avons placé un cavalier entre les broches Rx et Tx de l'adaptateur. Nous avons ensuite lancer un petit script en Python3 pour vérifier le bon fonctionnement du couple envoie / réception :
code :
#!/usr/bin/env python # -*- coding: utf-8 -*- # Pour executer ce script, lancer la commande : # python serialWrite.py # Ce script envoie en continu la chaine de caractères : # "Write counter:" suivie de la variable "counter" # cette variable est incrémenté de 1 à chaque tour # de boucle # La chaine transmise est reçue et affichée dans la foulée import time import serial ser = serial.Serial( port='/dev/ttyUSB0', baudrate = 9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1 ) counter=0 while 1: ser.write('Write counter: %d \n'%(counter)) print("test d'envoie ok") time.sleep(1) counter += 1 x=ser.readline() print(x)
On voit par cette méthode qu'il est très facile d'ajouter un port série au RaspBerry Pi(2). Sur un Rpi2, on peut ainsi avoir 2 voir 3 ports COM supplémentaires. On se garde un port USB pour un petit dongle WIFI. On pourrait même aller encore plus loin en y ajoutant un petit hub USB...
Fichiers sources
Licence
Ce document est mise à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.
Paternité 'by' :L'œuvre peut être librement utilisée, à la condition de l'attribuer à l'auteur en citant son nom.
Note aux auteurs de documents du VoLAB, Vous avez la possibilité de changer de licence. Mais ce serait bien de rester libre et ouvert. Encore une fois ceci est une recommandation et pas une obligation.
Bibliographie
Webographie
- La page Wikipedia consacré au Raspberry Pi :
Rédaction en langue française
Partant du constat de terrain qu'une énorme masse d'information concernant les sujets qui nous intéressent comme entre autres l'impression 3D n'étaient disponibles que dans la langue de Shakespeare et que de nombreuses personnes dans notre entourage ne maîtrisaient pas la dite langue et soucieux de diffuser encore plus l'information, nous avons pris le parti, au VoLAB, de rédiger nos documents de préférence en langue française.
VoLAB
Un mot sur le VoLAB. VoLAB est un fablab implanté à environ 30km au nord-ouest de Paris dans la commune de Vauréal dans l'agglomération de Cergy Pontoise. Il est animé par l'association VoRoBoTics.
Site internet www.vorobotics.com