Come usare MicroPython Board Primo Script

Premessa:

Come promesso in questo articolo parleremo della MicroPython e delle sue grandi funzionalità. Questa scheda permette di eseguire degli script python, procedura molto simile a quella di arduino, ma avendo a disposizione un cortex M4 da 168MHz.

LISTA PRODOTTI:

ComeUsareMicroPythonBoard

Caratteristische principali micropython:

  • STM32F405RG microcontrollore
  • CPU 168 MHz Cortex M4
  • Flash ROM 1024KiB e 192KiB RAM
  • Connettore Micro USB per l’alimentazione e la comunicazione seriale
  • Micro SD card slot, supporto schede SD di capacità standard e ad alta
  • Accelerometro a 3 assi (MMA7660)
  • Orologio in tempo reale con batteria di backup opzionale
  • 24 GPIO a sinistra e destra e 5 GPIO su riga in basso, oltre a LED e attivare GPIO disponibili su riga in basso
  • 3x 12-bit convertitori analogico digitali, disponibile su 16 pin, 4 con analogica schermatura a terra
  • 2x 12-bit digitale-analogico (DAC) convertitori, disponibili sui pin X5 e X6
  • 4 LED (rosso, verde, giallo e blu)
  • 1 reset e 1 interruttore utente
  • On-board regolatore di 3.3V di tensione LDO, in grado di fornire fino a 300 mA, ingresso gamma di tensione 3,6 V a 10 V
  • DFU bootloader in ROM per un facile aggiornamento del firmware

Come possiamo notare dalle caratteristiche offre moltissime soluzioni con DAC e RTC già di bordo e per ultimo ma non meno importante un accelerometro 3 assi. La Pyboard può essere alimentata tramite cavo micro USB.

CollegamentoPyBoardCavo

Quando la pyboard è collegata al PC si accende il LED verde dovrebbe accendersi per mezzo secondo o meno, e quando si spegne significa che il processo di avvio è stato completato. A questo punto la micropython dovrebbe essere riconosciuta come dispositivo dal vostro PC in windows come porta COM e per chi usa Linux come mount /dev/sdb1. In window si avvierà un autoplay e aprirà il dispositivo di massa dove troverete al suo interno 4 file:

  • il boot.py dove si trovano varie opzioni di configurazioni della pyboard e il file contiene:
# boot.py -- run on boot-up
# can run arbitrary Python, but best to keep it minimal

import pyb
#pyb.main('main.py') # main script to run after this one
#pyb.usb_mode('CDC+MSC') # act as a serial and a storage device
#pyb.usb_mode('CDC+HID') # act as a serial device and a mouse
  • il main.py che contiene gli script automatici quindi il nostro programma
# main.py -- put your code here!
  • il file README.txt che contiene informazioni riguardanti la micropython
This is a Micro Python board

You can get started right away by writing your Python code in 'main.py'.

For a serial prompt:
 - Windows: you need to go to 'Device manager', right click on the unknown device,
   then update the driver software, using the 'pybcdc.inf' file found on this drive.
   Then use a terminal program like Hyperterminal or putty.
 - Mac OS X: use the command: screen /dev/tty.usbmodem*
 - Linux: use the command: screen /dev/ttyACM0
  • e il pybcdc.inf dove troviamo  i driver di windows utili per usare la seriale
; Windows USB CDC ACM Setup File
; Based on INF files which were:
;     Copyright (c) 2000 Microsoft Corporation
;     Copyright (C) 2007 Microchip Technology Inc.
; Likely to be covered by the MLPL as found at:
;    <http://msdn.microsoft.com/en-us/cc300389.aspx#MLPL>.

[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%MFGNAME%
LayoutFile=layout.inf
DriverVer=03/11/2010,5.1.2600.3

[Manufacturer]
%MFGNAME%=DeviceList, NTamd64

[DestinationDirs]
DefaultDestDir=12

;---------------------------------------------------------------------
; Windows 2000/XP/Server2003/Vista/Server2008/7 - 32bit Sections

[DriverInstall.nt]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.nt
AddReg=DriverInstall.nt.AddReg

[DriverCopyFiles.nt]
usbser.sys,,,0x20

[DriverInstall.nt.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[DriverInstall.nt.Services]
AddService=usbser, 0x00000002, DriverService.nt

[DriverService.nt]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys

;---------------------------------------------------------------------
;  Windows XP/Server2003/Vista/Server2008/7 - 64bit Sections

[DriverInstall.NTamd64]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.NTamd64
AddReg=DriverInstall.NTamd64.AddReg

[DriverCopyFiles.NTamd64]
usbser.sys,,,0x20

[DriverInstall.NTamd64.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[DriverInstall.NTamd64.Services]
AddService=usbser, 0x00000002, DriverService.NTamd64

[DriverService.NTamd64]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys

;---------------------------------------------------------------------
;  Vendor and Product ID Definitions

[SourceDisksFiles]
[SourceDisksNames]
[DeviceList]
%DESCRIPTION%=DriverInstall, USB\VID_f055&PID_9800&MI_00, USB\VID_f055&PID_9800&MI_01

[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall, USB\VID_f055&PID_9800&MI_00, USB\VID_f055&PID_9800&MI_01

;---------------------------------------------------------------------
;  String Definitions

[Strings]
MFGFILENAME="pybcdc"
MFGNAME="Micro Python"
DESCRIPTION="Pyboard USB Comm Port"
SERVICE="USB Serial Driver"

Una volta che abbiamo conosciuto come è composta la sua struttura e visto le caratteristiche dei file non ci resta capire il suo banalissimo funzionamento. Come abbiamo già citato il file main.py contiene il nostro programma, molto simile a ciò che accade con arduino quando andiamo a scrivere il nostro file con estensione .ino, apriamolo con un editor di testo e andiamo a caricare il nostro primo sketch, ci limiteremo ad accendere il solito LED 🙂 .

scrittura main.py

# Main.py - mettere qui il codice!
import  pyb 
pyb . LED ( 4 ) . on ()

Salvate il file e “smontate” la micropython. In windows di norma trovate nella barra dello start, vicino alla data, il pulsante espelli periferica. Successivamente una volta smontata bisognerà premere il tasto reset (RST) sulla micro python. Ora se tutto è andato bene con due righe di codice vedrete il LED BLU accendersi.

IMPORTANTE:

Per rientrare nella modalità di scrittura e quindi poter ricaricare gli script bisognerà tenere premuto il tasto USR sulla micropython e piggiare per breve tempo il tasto reset (RST) tenendo sempre premuto il tasto USR fino alla accensione del led arancione e rilasciare nuovamente il tasto USR. Si resetterà e riaprirà nuovamente la pagina dove poter modificare nuovamente il main.py.

PORTA SERIALE IN TEMPO REALE

REPL stands for Read Evaluate Print Loop permette di utilizzare la porta seriale in tempo reale ed eseguire il vostro programma riga per riga come se fosse un IDE python. In windows useremo tramite la porta COM il programma putty.exe e in linux tramite qualsiasi screen seriale (screen /dev/ttyACM0). Vi consigliamo di Seguire questa guida per installare i driver su windows per riuscire ad utilizzarlo NOTA BENE: senza eseguire la guida driver windows non riuscirete ad utilizzare la seriale della micropython. Se andato tutto per il verso giusto ora con putty dovreste riuscire ad aprire tramite serial e la porta COM che è stata assegnata ad entrare nella modalità “tempo reale” ed eseguire i vostri script.

Vediamo un esempio:

>>> print("hello pyboard!")
hello pyboard!

>>> pyb.LED(1).on()
>>> pyb.LED(2).on()

Se avete sbagliato potete resettare con il comando CTRL + D dal terminale e riscrivere il vostro script.

Nella prossima guida vedremo come realizzare un mouse con accelerometro 3 assi con la micropython.

Buon progetto.