Programmatore principiante

Il Beginner Programmer è un kit didattico per muovere i primi passi nell'elettronica e nella programmazione. Permette di collegare facilmente sensori e uscite di controllo tramite il micro:bit e la scheda di espansione MB2 con shield e connettori IDC.

Specificazione

Questo kit include sensori di base come un sensore IR, una fotoresistenza e un sensore di colore, che consentono di distinguere diversi stimoli dall'ambiente. Gli attuatori includono un motore a corrente continua, un display OLED e una striscia LED programmabile "Neopixel", oltre ai classici LED monocromatici. Il kit include anche un pulsante e un potenziometro, offrendo un'ampia gamma di opzioni di interazione.

Informazioni di base

Moduli di collegamento

Tutti i componenti possono essere facilmente collegati con un singolo cavo alla nostra scheda di espansione controllata da micro:bit, rendendo il cablaggio semplice e intuitivo. Il kit è progettato per insegnarti le basi della programmazione in MakeCode e permetterti di controllare ogni componente attraverso passaggi semplici e intuitivi.

Numerazione dei pin

Numero X/Y corrisponde al numero di pin del micro:bit. Useremo questo numero nel programma. Numero Z È solo per chiarezza e vi si fa riferimento nel manuale.

Programmavání

Programmiamo il micro:bit nell'ambiente MakeCode. Questo ambiente contiene funzioni pronte all'uso per il controllo del micro:bit. Oltre alle funzioni predefinite, è possibile aggiungerne di nuove all'ambiente MakeCode aggiungendo una cosiddetta libreria.

 

Per la maggior parte dei blocchi funzionali è necessario selezionare il connettore a cui è collegato il modulo.

biblioteca

In questo tutorial utilizzeremo la nostra libreria Beginner. La libreria è progettata specificamente per questo set e contiene funzioni per controllare tutti i blocchi.

Sulla destra è presente un progetto vuoto con la libreria per principianti già inserita . I programmi per i singoli blocchi si trovano qui sotto.

Tlacitko

funzione

Il pulsante è l'elemento di controllo più semplice. Premendo il pulsante si collega (chiude) un circuito elettrico, proprio come se si collegassero due fili. Questo permette il passaggio di corrente elettrica all'ingresso del micro:bit. Il pulsante può essere utilizzato per controllare tutti gli altri blocchi del pacchetto, come il Neopixel, il motore o le singole luci colorate.

Un pulsante rappresenta un input che ha solo 2 livelli: ON, OFF. Chiamiamo questo input "logico".

biblioteca

Per il pulsante viene preparato un blocco "pulsante Z premuto". Basta selezionare il numero del connettore Z. L'output è un valore logico, ovvero vero/falso. Quindi, se si preme il pulsante, il blocco ottiene il valore vero. La funzione avanzata ha un output numerico 1/0 invece di un output vero/falso.

Programma

Mostreremo che il pulsante funge da elemento di controllo di base. Per le seguenti attività, collegheremo il pulsante al connettore 1.

Attività 1: Illuminazione del display

Nel blocco di ripetizione, controlliamo ancora la condizione per vedere se il pulsante è premuto. In caso affermativo, visualizziamo l'icona sul display. In caso contrario, cancelliamo il display.

Attività 2: Giocare a dadi

In questo esempio, non abbiamo bisogno di usare lo stato di pulsante rilasciato. Dobbiamo solo visualizzare un numero sul display quando il pulsante viene premuto. Per generare il numero, useremo una libreria matematica che include la funzione "numero casuale". Scegliamo lo stesso intervallo numerico di un dado classico.

luce LED

funzione

Un LED è un componente che emette luce di un determinato colore. Oggi è utilizzato quasi ovunque, perché è molto economico, efficiente dal punto di vista energetico e ha una lunga durata. Possiamo controllare un LED sia con un'uscita logica e scrivervi i valori 1 e 0, sia con un'uscita "analogica" e scrivere il valore dell'intensità luminosa. Abbiamo moduli LED pronti nei colori semaforici, ovvero rosso, arancione, verde.

biblioteca

Utilizzando la libreria, possiamo accendere il LED con la funzione "accendi LED" o spegnerlo con la funzione "spegni LED". Inoltre, il LED può essere impostato a una determinata intensità utilizzando il blocco "scrivi un numero sul LED".

Il LED ha anche blocchi avanzati. "Toggle LED" accende il LED se è spento e lo spegne se è acceso. Il blocco "Turn on LED? true/false" accende il LED se gli inseriamo il valore true.

Programma

Colleghiamo il LED al connettore 2.

spia luminosa

Collegheremo un pulsante al connettore 1. Come nel capitolo dedicato al pulsante, utilizzeremo la struttura con la condizione "se x allora A, altrimenti B". Useremo il valore del pulsante nella condizione. Se viene premuto, accenderemo il LED utilizzando il blocco "accendi LED". Non dimentichiamoci di cambiare il numero del connettore. Per spegnere il LED, useremo il blocco "spegni LED".

Impostazioni di intensità

Collegheremo un potenziometro al connettore 1 invece di un pulsante. La struttura del programma è molto semplice. Vogliamo scrivere un numero sul LED che rappresenti l'intensità luminosa. Otterremo questo numero dal blocco "numero dal potenziometro".

Impostazione della frequenza di lampeggio

Per il lampeggio regolare del LED utilizzeremo il blocco "switch LED". Questo si trova nella categoria dei blocchi più avanzati (sotto la libreria c'è un pulsante "more"). Se il LED è acceso, chiamando questa funzione il LED si spegnerà. Al contrario, se il LED è spento e chiamiamo questa funzione, il LED si accenderà. Il passo successivo è impostare la pausa del programma, ovvero utilizzare il blocco "wait x ms". Qui inseriremo il blocco "number from potentiometer". Non dimentichiamo di assegnare i numeri di connettore corretti ai moduli.

Impostazione della frequenza di lampeggio (avanzata)

Se non vogliamo usare il blocco "accendi LED", possiamo programmare questa logica noi stessi usando una condizione. Per determinare se il LED è acceso o spento, dobbiamo memorizzare questo stato in una variabile. Creeremo una variabile con il valore "false". Questo significa che all'inizio del programma non è acceso nulla. Poi, nel ciclo, determineremo se vogliamo accendere o spegnere il LED. Se il LED è acceso, ovvero la variabile "lit" è vera (lit = true), vorremo spegnere il LED usando il blocco "turn LED off". Allo stesso tempo, scriveremo questo cambiamento di stato nella nostra variabile "lit". Quindi imposteremo "lit" a "false". Altrimenti, accenderemo il LED e scriveremo "true" nella variabile.

Infine, impostiamo nuovamente la pausa del programma utilizzando "wait x ms", dove utilizziamo il valore del potenziometro.

Ancora una volta, non dimenticare di impostare i numeri corretti dei connettori ovunque.

Motocicletta

funzione

L'elica è azionata da un motore a corrente continua (DC). Tale motore contiene un magnete, uno statore, che agisce sulla parte mobile del motore, il rotore. Non appena una corrente elettrica inizia a fluire attraverso la bobina del rotore, si crea un campo magnetico. Questo reagisce con il campo magnetico dei magneti dello statore e crea una forza che fa ruotare il rotore. Il motore a corrente continua è controllato da un segnale analogico. A seconda del livello di tensione ai terminali del motore, il motore ruota a una determinata velocità. Possiamo anche utilizzare un potenziometro per regolare la velocità.

biblioteca

I blocchi per il motore sono sostanzialmente gli stessi dei blocchi per il LED. Il motore può essere acceso o spento. Inoltre, la sua velocità può essere impostata su un valore numerico da 0 a 100. Proprio come il LED, il motore può essere commutato con un blocco o acceso in base a un valore logico specificato di vero/falso.

Programma

Collegare il motore al connettore 2.

Commutazione del motore con un pulsante

Colleghiamo un pulsante al connettore 1. Se il pulsante viene premuto, avviamo il motore. Altrimenti, spegniamo il motore.

Regolazione della velocità con potenziometro

Colleghiamo un potenziometro al connettore 1. Anche in questo caso, utilizziamo la stessa struttura del LED. Scriviamo il valore del potenziometro nel blocco di spin del motore.

Sensore di luce

funzione

Questo sensore è in grado di rilevare l'intensità della luce incidente. Grazie a questo, siamo in grado di misurare molte cose. Ad esempio, se è giorno o notte, se la luce nella stanza è accesa, se c'è un ostacolo davanti, e così via.

L'elemento principale del sensore è un fotoresistore . Simile a un potenziometro, si tratta di un tipo speciale di resistore il cui valore di resistenza varia. In questo caso, la resistenza dipende dall'intensità della luce incidente. Ciò a sua volta modifica il valore della corrente che scorre nel circuito e che viene misurata dal micro:bit sul suo pin di ingresso.

Sul lato anteriore del blocco è presente anche un potenziometro . Lo utilizziamo per eseguire la calibrazione. Per le misurazioni al buio, è necessaria una sensibilità diversa rispetto alle misurazioni alla luce.

biblioteca

Nel caso dei sensori " Sensore di luce, sensore IR e sensore UV " utilizziamo gli stessi blocchi. Il loro output è un valore di verità vero/falso.

Nei blocchi avanzati, esiste lo stesso blocco, solo con un'uscita di 1/0.

Programma

Collegare il sensore al connettore 1.

Ventilatore automatico

Colleghiamo il motore al connettore 2. La struttura è di nuovo la stessa di quella utilizzata per azionare il motore tramite un pulsante. Invece del valore proveniente dal pulsante, utilizziamo il valore proveniente dal sensore.

Linea di produzione

Collega un LED rosso al connettore 2 e un LED verde al connettore 3. Se il sensore rileva un ostacolo sul nastro trasportatore, il LED rosso si accende. Altrimenti, si accende il LED verde.

Sensore IR

funzione

Questo sensore è in grado di rilevare la radiazione infrarossa (IR), invisibile all'occhio umano. Questo ci permette di rilevare calore, movimento o la presenza di oggetti che emettono o riflettono luce IR.

L'elemento principale del sensore è costituito da un diodo a infrarossi e un rilevatore . Il diodo emette raggi infrarossi che vengono riflessi dall'oggetto e ritornano al rilevatore. Quando il rilevatore rileva la luce riflessa, il valore del segnale elettrico cambia, e il micro:bit lo elabora sul suo pin di ingresso.

Anche sul sensore è presente un potenziometro , che utilizziamo per impostare il livello di misurazione. Se vogliamo rilevare un oggetto più distante dal sensore, abbiamo bisogno di un'impostazione di sensibilità maggiore.

biblioteca

Nel caso dei sensori " Sensore di luce, sensore IR e sensore UV " utilizziamo gli stessi blocchi. Il loro output è un valore di verità vero/falso.

Nei blocchi avanzati, esiste lo stesso blocco, solo con un'uscita di 1/0.

Programma

Gli esempi di attività sono gli stessi del sensore precedente.

sensore UV

funzione

Questo sensore è in grado di rilevare la radiazione ultravioletta (UV), invisibile all'occhio umano. Questa radiazione proviene, ad esempio, dal sole. Questo ci permette di misurare l'intensità della radiazione UV che colpisce il sensore, il che può essere utile per monitorare la sicurezza solare o rilevare fonti di luce UV.

L'elemento principale del sensore è uno speciale fotorivelatore sensibile alle radiazioni UV. Quando viene colpito dalla luce UV, genera un segnale elettrico. Questo segnale modifica il valore della corrente che scorre nel circuito, e tale variazione viene a sua volta misurata dal micro:bit sul suo pin di ingresso.

Anche sul sensore è presente un potenziometro , che utilizziamo per impostare il livello di misurazione. Se vogliamo rilevare un oggetto più distante dal sensore, abbiamo bisogno di un'impostazione di sensibilità maggiore.

biblioteca

Nel caso dei sensori " Sensore di luce, sensore IR e sensore UV " utilizziamo gli stessi blocchi. Il loro output è un valore di verità vero/falso.

Nei blocchi avanzati, esiste lo stesso blocco, solo con un'uscita di 1/0.

Programma

Gli esempi di attività sono gli stessi del sensore precedente.

Sensore IR

funzione

Questo sensore è in grado di rilevare la radiazione infrarossa (IR), invisibile all'occhio umano. Questo ci permette di rilevare calore, movimento o la presenza di oggetti che emettono o riflettono luce IR.

L'elemento principale del sensore è costituito da un diodo a infrarossi e un rilevatore . Il diodo emette raggi infrarossi che vengono riflessi dall'oggetto e ritornano al rilevatore. Quando il rilevatore rileva la luce riflessa, il valore del segnale elettrico cambia, e il micro:bit lo elabora sul suo pin di ingresso.

Anche sul sensore è presente un potenziometro , che utilizziamo per impostare il livello di misurazione. Se vogliamo rilevare un oggetto più distante dal sensore, abbiamo bisogno di un'impostazione di sensibilità maggiore.

biblioteca

Nel caso dei sensori " Sensore di luce, sensore IR e sensore UV " utilizziamo gli stessi blocchi. Il loro output è un valore di verità vero/falso.

Nei blocchi avanzati, esiste lo stesso blocco, solo con un'uscita di 1/0.

Programma

Gli esempi di attività sono gli stessi del sensore precedente.

Neopixel

funzione

Questo blocco contiene 8 luci (i cosiddetti pixel per noi). Si tratta di LED speciali che possono illuminarsi di qualsiasi colore. Sono abbreviati in RGB, perché uno di questi componenti nasconde al suo interno 3 LED classici, che illuminano di rosso (R – rosso), verde (G – verde) e blu (B – blu). Combinando questi colori, otteniamo qualsiasi colore e qualsiasi livello di luminosità. Alcuni schermi di telefoni cellulari, computer e televisori funzionano secondo questo principio.

Le strisce LED RGB sono oggi molto diffuse e hanno molteplici utilizzi. Possiamo usarle, ad esempio, per visualizzare la velocità di un motore, la rotazione di un potenziometro o il valore di altri sensori.

biblioteca

Per controllare il Neopixel, è necessario creare una variabile all'inizio del programma che contenga tutte le informazioni necessarie, come il numero del connettore. Dopodiché, basterà fare riferimento a questa variabile. Nelle funzioni di base sono presenti blocchi per visualizzare colori, arcobaleno e grafici a barre.

Nelle funzionalità avanzate troverete la possibilità di ridurre la luminosità, ruotare o spostare i pixel (adatto, ad esempio, per ruotare l'arcobaleno visualizzato) o convertire i colori da diversi spazi colore.

Programma

Questo modulo richiede una gestione diversa rispetto a tutti gli altri. Invece di un blocco di avvio, è necessario creare una variabile neo che contenga tutte le informazioni necessarie sul modulo utilizzato.

Inoltre, non è necessario inserire il numero del connettore, ma basta fare riferimento alla variabile neo fornita, ad esempio quando il colore rosso è acceso. Colleghiamo il Neopixel al connettore 2.

Visualizzazione del valore del potenziometro

Colleghiamo il potenziometro al connettore 1. Invece di visualizzare un grafico sul display del micro:bit, possiamo usare Neopixel. Grazie alla funzione "mostra grafico a barre", possiamo visualizzare il valore del potenziometro in modo più chiaro. Anche in questo caso, prima facciamo riferimento all'oggetto "neo", poi inseriamo il valore visualizzato, ovvero "numero dal potenziometro", e nell'ultima cella "da dopo" inseriamo il valore 100 (valore originale), poiché questo è il valore massimo che leggiamo dal potenziometro.

Transizione di colore uniforme (avanzata)

Questo programma modifica in modo fluido la tonalità della luce. Utilizzeremo le funzioni avanzate di Neopixel, ovvero la selezione di un colore nel formato HSL, ovvero semplicemente tonalità, saturazione e luminosità. Per prima cosa, creeremo una variabile tonalità e la imposteremo a 0. Nel ciclo, utilizzeremo il blocco "neo display color" e, al posto del colore preimpostato, inseriremo il blocco "tonalità H saturazione S luminosità L". Inseriremo la nostra variabile nella prima cella che rappresenta la tonalità. Imposteremo la saturazione a 99 (ovvero il valore massimo) e la luminosità a 49 (ovvero il valore medio dell'intervallo). A ogni ciclo del programma, aggiungeremo il valore 1 alla variabile tonalità. All'inizio, dovremo quindi aggiungere una condizione che garantisca che, al raggiungimento del valore massimo di tonalità (360), la variabile venga nuovamente azzerata.

Display OLED

funzione

Questo display è in grado di visualizzare testo o semplici elementi grafici utilizzando singoli punti luce che si illuminano direttamente sullo schermo. Grazie a questo, possiamo visualizzare diverse informazioni come numeri, testi o semplici immagini.

Ogni pixel del display è costituito da un piccolo LED che si illumina in base a un segnale proveniente dal micro:bit, creando l'immagine desiderata sul display.

biblioteca

Per controllare il display OLED, il BME e il sensore di colore, utilizzeremo nuovamente un approccio diverso rispetto ai moduli precedenti. I moduli comunicano tramite il protocollo I2C e utilizzano pin diversi a tale scopo. Pertanto, non è necessario specificare a quale connettore collegarli, ma questa comunicazione deve essere attivata con il blocco di avvio.

Programma

Colleghiamo l'OLED al connettore 4. All'inizio di ogni programma, utilizziamo il blocco di avvio OLED. Se vogliamo stampare testo o numeri in un ciclo, dobbiamo sempre riempire tutte le 8 righe. Per fare ciò, utilizziamo il blocco "OLED disegna x righe vuote".

L'immagine mostra un esempio dell'avvio del modulo BME, ma sembra lo stesso per OLED

Ciao

Per testare la funzione OLED, scriveremo un saluto sul display.

Visualizzazione di un valore numerico

Colleghiamo il potenziometro al connettore 1. In questo programma, per prima cosa stampiamo il testo "potenziometro", poi saltiamo 1 riga, quindi scriviamo il valore numerico del potenziometro e infine saltiamo 5 righe.

Scrivere testo e numeri su 1 riga

Colleghiamo il potenziometro al connettore 1. Per scrivere sia testo che valore numerico sulla stessa riga, utilizzeremo solo il blocco "OLED draw text", in cui inseriremo il blocco "xy connection" dalla libreria Text. Nella colonna x, inseriremo il testo "value:" con uno spazio alla fine, nella colonna y, inseriremo il numero che vogliamo visualizzare. Questa funzione convertirà automaticamente il valore numerico in testo. Il resto del codice è lo stesso dell'esempio precedente.

Stazione meteorologica BME

funzione

Questo sensore è in grado di misurare parametri meteorologici di base come temperatura, umidità e pressione atmosferica. Grazie a questo, possiamo monitorare i cambiamenti meteorologici e realizzare vari progetti, come una stazione meteorologica domestica.

L'elemento principale del sensore è uno speciale chip che contiene sensori per la misurazione di temperatura, umidità e pressione. Ciascuno di questi sensori converte i valori misurati in un segnale elettrico, che il micro:bit elabora sul suo pin di ingresso e converte in valori leggibili che possono essere visualizzati, ad esempio, su un display OLED.

biblioteca

Per controllare il display OLED, il BME e il sensore di colore, utilizzeremo nuovamente un approccio diverso rispetto ai moduli precedenti. I moduli comunicano tramite il protocollo I2C e utilizzano pin diversi a tale scopo. Pertanto, non è necessario specificare a quale connettore collegarli, ma questa comunicazione deve essere attivata con il blocco di avvio.

Programma

Colleghiamo il BME al connettore 3. All'inizio di ogni programma utilizziamo il blocco di avvio del BME.

Visualizzazione dei valori sul display OLED

Colleghiamo il display OLED al connettore 4. Scriviamo semplicemente i valori desiderati su tutte le 8 righe. Per prima cosa, scriviamo il nome della grandezza misurata insieme all'unità di misura e poi il valore numerico.

Sensore di colore

funzione

Questo sensore è in grado di riconoscere i colori e di misurare l'intensità della luce, consentendoci di rilevare diversi colori di oggetti e di creare progetti interattivi come il riconoscimento di codici colore o l'ordinamento di oggetti in base al colore.

L'elemento principale del sensore è uno speciale fotorilevatore che misura l'intensità della luce in diverse parti dello spettro (rosso, verde, blu e infrarosso). Il sensore APDS-9960 valuta questi dati e il micro:bit li elabora sul suo pin di ingresso, consentendoci di determinare il colore che sta rilevando.

biblioteca

Per controllare il display OLED, il BME e il sensore di colore, utilizzeremo nuovamente un approccio diverso rispetto ai moduli precedenti. I moduli comunicano tramite il protocollo I2C e utilizzano pin diversi a tale scopo. Pertanto, non è necessario specificare a quale connettore collegarli, ma questa comunicazione deve essere attivata con il blocco di avvio.

Programma

Colleghiamo il sensore di colore al connettore 3. All'inizio di ogni programma utilizziamo il blocco di avvio COLOR.

Elenco dei componenti di colore su un display OLED

Colleghiamo il display OLED al connettore 4. Oltre al blocco "COLOR start", utilizzeremo anche "COLOR turn on additional LED 3", poiché il sensore è collegato al connettore 3. Il LED aggiuntivo ci permetterà di misurare il colore degli oggetti vicini al sensore. Avvicinando un oggetto rosso al sensore, il valore R (rosso) sarà massimo. La scrittura sul display è spiegata nel capitolo OLED.

Temperatura della luce riflessa

Colleghiamo il Neopixel al connettore 4. Se la luce che colpisce il sensore è calda, avrà una componente rossa più elevata. Se la luce è fredda, la componente blu sarà più elevata. Useremo la stessa logica nel programma per visualizzare la temperatura della luce sul Neopixel. Se il valore del rosso è superiore al valore del blu, il colore rosso sul Neopixel si accenderà. Altrimenti, si accenderà il colore blu.

Galleria