Python pour Micro Controlers
English Version
sudo apt install picocom sudo usermod -a -G dialout $USER
Se déconnecter, se reconnecter
picocom /dev/ttyACM0 -b9600
Ctrl + D ou appuyer sur le button derrière le micro-usb
La communication entre les 2 cartes se fait en I2C: Inter-Integrated Circuit. Il permet de relier facilement un microprocesseur et différents circuits.
Il existe d’innombrables périphériques exploitant ce bus, il est même implémentable par logiciel dans n’importe quel microcontrôleur. Le poids de l’industrie de l’électronique grand public a permis des prix très bas grâce à ces nombreux composants.
Le système de la PyBoard est écrit pour communiquer en I2C avec:
Les fichiers du dossier pyboard doivent être copié sur la pyboard.
Le fichier mpu6050_receiver.py doit être excécuté sue le PC relié en USB à la pyboard.
Communication entre la PyBoard et le PC en USB
import pyb
usb = pyb.USB_VCP() def send_data(data): global usb print(data) toto = ujson.dumps(data) usb.write(toto + "\n")
from time import sleep import serial import ast def datagram_to_dict(data): """Décode le message. Retourne un dict ou None """ try: dec = data.decode("utf-8") except: print("Décodage UTF-8 impossible") dec = data try: msg = ast.literal_eval(dec) except: print("ast.literal_eval impossible") print("Ajouter ast dans les import") msg = dec if isinstance(msg, dict): return msg else: print("Message reçu: None") return None init = 1 while init: try: print("Connexion à ttyACM0 ....") sleep(1) seri = serial.Serial('/dev/ttyACM0', 9600, timeout=1) print("Connecté à ttyACM0") init = 0 except: print("Connexion impossibble à ttyACM0") while True: rcv = seri.readline() data = datagram_to_dict(rcv)
Les broches analogiques sont: X1 à X8, X11, X12, Y11, Y12
Les broches analogiques mesurent en 3.3V sur 12 bits (0-4095) soit une précision de 0,8 mV = 0.0008 V!
See pyb.Pin and pyb.ADC. from pyb import Pin, ADC adc = ADC(Pin('X19')) adc.read() # read value, 0-4095
from pyb import Pin, DAC dac = DAC(Pin('X5')) dac.write(120) # output between 0 and 255