Nell’articolo di oggi vedremo un simulatore per utilizzare la board Raspberry Pi Pico: Wokwi.
La domanda sorge spontanea: perché utilizzare un simulatore per lavorare con una scheda?
Non esiste una risposta univoca ma possono esserci diversi motivi, uno dei quali può essere didattico oppure l’utilizzo o la comprensione di alcune componenti che non vogliamo o non possiamo acquistare e vogliamo semplicemente capirne il funzionamento dal punto di vista fisico e su come programmarlo. Magari ad alcuni può tornare anche utile capire se sia difficile o meno utilizzare quel sensore (magari costoso) dal punto di vista circuitale e del codice.
In giro per il web esistono numerosi simulatori ed emulatori per utilizzare schede elettroniche e oggi vedremo in particolare modo il simulatore web wokwi
wokwi è un simulatore online per utilizzare piattaforme Arduino e altre schede elettroniche. Wokwi È un supporto ideale per imparare a programmare con Arduino, creare prototipi dei progetti e condividere i vari progetti realizzati con altri Developer e maker. Inoltre, a differenza di altri simulatori, si basa su AVR8js, un’implementazione JavaScript dell’architettura AVR a 8 bit.
Potremmo quindi simulare progetti e codici utilizzando Micropython su Raspberry Pi Pico.
È possibile utilizzare diverse periferiche come sensori di temperatura e umidità, sensori PIR, sensori di luce e altro ancora.
In questo progetto utilezzremo un Pi Pico collegato un display a sette segmenti.
Scriveremo un codice per il conteggio in esadecimale di un numero (quindi visualizzeremo 0-9 e A-F).
Vediamo cosa ci serve per il progetto:
Scriviamo questo codice nella sezione apposita
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
from machine import Pin from utime import sleep # A # --- # F | G | B # --- # E | | C # --- # D pins = [ Pin(2, Pin.OUT), # A Pin(3, Pin.OUT), # B Pin(4, Pin.OUT), # C Pin(5, Pin.OUT), # D Pin(6, Pin.OUT), # E Pin(8, Pin.OUT), # F Pin(7, Pin.OUT), # G Pin(0, Pin.OUT) # DP (not connected) ] # Common anode 7 segment digits = [ [0, 0, 0, 0, 0, 0, 1, 1], # 0 [1, 0, 0, 1, 1, 1, 1, 1], # 1 [0, 0, 1, 0, 0, 1, 0, 1], # 2 [0, 0, 0, 0, 1, 1, 0, 1], # 3 [1, 0, 0, 1, 1, 0, 0, 1], # 4 [0, 1, 0, 0, 1, 0, 0, 1], # 5 [0, 1, 0, 0, 0, 0, 0, 1], # 6 [0, 0, 0, 1, 1, 1, 1, 1], # 7 [0, 0, 0, 0, 0, 0, 0, 1], # 8 [0, 0, 0, 1, 1, 0, 0, 1], # 9 [0, 0, 0, 1, 0, 0, 0, 1], # a [1, 1, 0, 0, 0, 0, 0, 1], # b [0, 1, 1, 0, 0, 0, 1, 1], # C [1, 0, 0, 0, 0, 1, 0, 1], # d [0, 1, 1, 0, 0, 0, 0, 1], # E [0, 1, 1, 1, 0, 0, 0, 1], # F ] def reset(): for pin in pins: pin.value(1) reset() switch = Pin(11, Pin.IN) while True: if switch.value() == 1: for i in range(len(digits)): if switch.value() == 0: break; for j in range(len(pins) - 1): pins[j].value(digits[i][j]) sleep(0.5) else: for i in range(len(digits) - 1, -1, -1): if switch.value() == 1: break; for j in range(len(pins)): pins[j].value(digits[i][j]) sleep(0.5) |
Premiamo play ed ecco il risultato:
Iscriviti ai nostri gruppi Telegram
Link utili