Sommario:
- Passaggio 1: obiettivi
- Passaggio 2: materiali
- Passaggio 3: pre-codifica: collega il tuo Micro:Bit
- Passaggio 4: Passaggio 0: Flusso del codice
- Passaggio 5: Passaggio 1: definizione delle variabili
- Passaggio 6: Passaggio 2: convertire i valori di inclinazione in livelli
- Passaggio 7: Passaggio 3: Compila i livelli di inclinazione
- Passaggio 8: Passaggio 4: scrivere le funzioni LEDPlotList
- Passaggio 9: Passaggio 5: tracciare la matrice LED per ogni caso
- Passaggio 10: Passaggio 6: scrittura delle funzioni di calibrazione
- Passaggio 11: Passaggio 7: funzione di scrittura dello stato
- Passaggio 12: Passaggio 8: mettere tutto insieme, parte 1
- Passaggio 13: Passaggio 9: mettere tutto insieme, parte 2
- Passaggio 14: Passaggio 10: assemblaggio
- Passaggio 15: fonte
Video: Crea una livella elettrica: 15 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Usa questa livella per visualizzare rapidamente e facilmente l'inclinazione di qualsiasi oggetto attaccato!
Creato da Kaitlyn dalla Raffles Institution.
Passaggio 1: obiettivi
Impara a leggere l'inclinazione con l'accelerometro integrato di micro:bit.
Impara a lavorare con il display LED 5x5 di micro:bit!
Passaggio 2: materiali
1 x micro BBC: bit
1 x cavo micro USB
2 batterie AA
1 x doppio pacco batteria AA
Passaggio 3: pre-codifica: collega il tuo Micro:Bit
- Collega il micro:bit BBC al tuo computer utilizzando un cavo micro USB.
- Accedi all'editor javascript per micro:bit su makecode.microbit.org.
Passaggio 4: Passaggio 0: Flusso del codice
Prima di iniziare a scrivere il codice, dobbiamo decidere cosa vogliamo ottenere con il programma e in quale ordine deve essere eseguito ciascun componente.
Per la livella elettrica, i passaggi che seguiremo nel codice per ogni ciclo sono:
- Leggere le letture dell'inclinazione dall'accelerometro.
- Converti le letture dell'inclinazione in livelli di inclinazione da visualizzare sulla matrice LED.
- Verificare la modifica delle letture del livello di inclinazione rispetto al ciclo precedente.
- Crea una serie di coordinate LED per diversi casi di inclinazione e direzioni.
- Traccia le coordinate dei LED su una matrice di LED micro:bit.
Alcune funzioni aggiuntive che dobbiamo includere sono:
- Calibrazione per la posizione di inclinazione iniziale.
- Ritorno alla calibrazione dell'inclinazione predefinita.
Passaggio 5: Passaggio 1: definizione delle variabili
Iniziamo definendo le variabili necessarie come mostrato. Una ripartizione di alcune variabili sono:
- tiltList: Array che memorizza l'estensione dell'inclinazione dai valori 0-4 nell'ordine [Sinistra, Destra, Avanti, Indietro]
- tiltBoundary: limite del primo livello di inclinazione tra 0 (nessuna inclinazione) e 1 (leggera inclinazione)
- prevState: Array che memorizza i valori di inclinazione del micro:bit da un ciclo precedente nello stesso formato di tiltList, utilizzato per verificare un cambiamento di inclinazione tra le iterazioni
- ledPlotList: Traccia gli array di coordinate led nella forma (x, y). Per definire un array, usiamo il tipo number per indicare un array nidificato di variabili di tipo: number.
Passaggio 6: Passaggio 2: convertire i valori di inclinazione in livelli
Poiché la matrice LED 5x5 può visualizzare solo così tante informazioni, i valori di inclinazione effettivi non saranno utili per la visualizzazione.
Invece, una funzione tiltExtent() prende il parametro num, che fa riferimento al valore di tilt dall'accelerometro, e converte questi valori di tilt (num) in livelli di tilt da 0 a 4.
0 indica nessuna inclinazione nella direzione data e 4 indica un'inclinazione molto grande, mentre -1 viene restituito quando si verifica un errore.
In questo caso, tiltBoundary e tiltSensitivity vengono utilizzati come valori limite tra i livelli di inclinazione.
Passaggio 7: Passaggio 3: Compila i livelli di inclinazione
Le due funzioni checkRoll() e checkPitch() scrivono i livelli di inclinazione ottenuti da tiltExtent() in tiltList rispettivamente per gli assi roll (sinistra-destra) e pitch (avanti-indietro).
Prima di utilizzare i valori di tilt, li calibriamo utilizzando un valore azzerato sia per il pitch (zeroPitch) che per il roll (zeroRoll) ottenuto da una funzione di calibrazione scritta in seguito.
Poiché le letture dell'accelerometro sono negative sia per l'inclinazione a sinistra che in avanti, è necessario utilizzare la funzione Math.abs() per ottenere il modulo del valore negativo da assegnare alla funzione tiltExtent() come parametro per queste due direzioni.
Passaggio 8: Passaggio 4: scrivere le funzioni LEDPlotList
Ottenuti i livelli di tilt in tiltList possiamo ora scrivere le funzioni di plottaggio dei led per i diversi casi che possono presentarsi, ovvero
- plotSingle(): inclina solo in una direzione, prendendo come parametro l'estensione dell'inclinazione in una data direzione.
- plotDiagonal(): Inclinazione in due direzioni della stessa grandezza, prendendo come parametro l'estensione dell'inclinazione in entrambe le direzioni.
- plotUnequal(): Inclinazione in due direzioni di diversa grandezza, prendendo come parametro l'estensione dell'inclinazione in ciascuna direzione. Utilizza prima plotDiagonal() e successivamente si aggiunge all'array ledPlotList.
Queste funzioni di tracciamento scrivono un array di coordinate led in ledPlotList da tracciare in seguito.
Passaggio 9: Passaggio 5: tracciare la matrice LED per ogni caso
Utilizzando le funzioni di tracciamento dei tre casi nel passaggio 4, possiamo ora tracciare la matrice LED effettiva per le diverse possibili combinazioni di livelli di inclinazione. Poiché le tre funzioni nel passaggio 4 non discriminano con la direzione, è necessario regolare i valori delle coordinate passati alla matrice LED per tracciare i LED nelle giuste direzioni.
PlotResult() contiene più condizioni if che controllano il tipo di inclinazione e tracciano la matrice LED di conseguenza utilizzando led.plot(x, y). Le possibili combinazioni di tilt sono:
Direzione singola: solo a sinistra o solo a destra
Direzione singola: solo avanti o solo indietro
Due direzioni: Avanti-sinistra o Indietro-sinistra
Due direzioni: Avanti-destra o Indietro-destra
Nota: per l'inclinazione in due direzioni, ogni combinazione può avere la stessa o una diversa grandezza (controllata confrontando maxX e maxY) e quindi tracciata utilizzando plotDiagonal() o plotUnequal() rispettivamente.
Passaggio 10: Passaggio 6: scrittura delle funzioni di calibrazione
Dopo aver completato la maggior parte del codice, ora aggiungiamo le funzioni calibTilt() e resetTilt().
calibTilt() consente agli utenti di tarare l'inclinazione a zero nella posizione corrente del micro:bit
resetTilt() ripristina la calibrazione della scheda al suo stato originale.
Passaggio 11: Passaggio 7: funzione di scrittura dello stato
Aggiungiamo una semplice funzione checkState() per verificare se i livelli di inclinazione sono cambiati da un'iterazione precedente.
Se non ci sono cambiamenti nei livelli di inclinazione da un'iterazione precedente, ad esempio stateChange == 0, possiamo passare direttamente all'iterazione successiva e saltare il tracciamento della matrice LED, riducendo il calcolo necessario.
Passaggio 12: Passaggio 8: mettere tutto insieme, parte 1
Ora possiamo finalmente inserire tutte le funzioni necessarie nel ciclo infinito del micro:bit per eseguirlo ripetutamente.
Per prima cosa, impostiamo i pulsanti A e B sul micro:bit alle funzioni calibTilt() e resetTilt() rispettivamente usando input.onButtonPressed() e tracciamo un segno di spunta sulla matrice LED quando la calibrazione è completata.
Passaggio 13: Passaggio 9: mettere tutto insieme, parte 2
Quindi esegui le funzioni necessarie in base al nostro flusso di codice nel passaggio 0 e verifica un cambiamento di stato (il che significa che c'è un cambiamento nell'inclinazione di micro: bit dall'ultima iterazione).
Se c'è un cambiamento nei livelli di inclinazione, ad esempio stateChange == 1, il codice aggiornerà prevState ai nuovi livelli di inclinazione e imposterà stateChange nuovamente a 0 per l'iterazione successiva e plotterà i livelli di inclinazione aggiornati sulla matrice LED utilizzando PlotResult().
Passaggio 14: Passaggio 10: assemblaggio
Flash il codice completato sul tuo micro:bit.
Attacca saldamente il tuo micro:bit e il pacco batteria a qualsiasi oggetto ed è pronto per l'uso!
Stupendo
Divertiti con la tua livella elettrica! E già che ci sei, perché non provare ad estendere le capacità del sensore di inclinazione o addirittura trasformarlo in un gioco?
Questo articolo è di TINKERCADEMY.
Passaggio 15: fonte
Questo articolo è tratto da:
In caso di domande, è possibile contattare: [email protected].
Consigliato:
Livella digitale basata su Arduino e MPU6050: 3 passaggi
Livella digitale basata su Arduino e MPU6050: benvenuto nel mio primo istruibile! Spero che lo trovi informativo. Non esitate a lasciare un feedback positivo o negativo. Questo progetto è quello di creare un arduino & Livella digitale basata su MPU6050. Mentre il disegno finito e
Livella digitale con laser a linee incrociate: 15 passaggi (con immagini)
Livella digitale con laser a linee incrociate: Ciao a tutti, oggi vi mostrerò come realizzare una livella digitale con laser a linee incrociate integrato opzionale. Circa un anno fa ho creato un multi-tool digitale. Sebbene questo strumento presenti molte modalità diverse, per me la più comune e utile
Livella digitale fai-da-te: 5 passaggi (con immagini)
Livella digitale fai-da-te: in questo progetto daremo un'occhiata più da vicino ai circuiti integrati dell'accelerometro e scopriremo come possiamo usarli con un Arduino. Successivamente combineremo un tale IC con un paio di componenti complementari e un involucro stampato in 3D per creare un digitale
Crea una torcia a LED o una luce notturna Joule Thief riciclando una fotocamera usa e getta Kodak.: 11 passaggi (con immagini)
Crea una torcia LED o una luce notturna Joule Thief riciclando una fotocamera usa e getta Kodak.: Dopo aver visto le informazioni sui driver LED Joule Thief su Internet, ho deciso di provare a realizzarli. Dopo aver ottenuto alcune unità funzionanti, ho iniziato a sperimentare (come faccio di solito) con diverse fonti di parti da oggetti che posso riciclare. Ho scoperto che t
Come modificare una vecchia torcia elettrica in una LED: 4 passaggi
Come modificare la vecchia torcia in una LED: in questo tutorial, mostrerò come modificare questo modello classico di torcia in una nuova torcia a LED. Sostanzialmente sostituendo la vecchia lampadina con un mucchio di LED