Taula de continguts:
- Pas 1: objectius
- Pas 2: materials
- Pas 3: Pre codificació: connecteu el vostre micro: Bit
- Pas 4: Pas 0: flux de codi
- Pas 5: pas 1: definició de variables
- Pas 6: Pas 2: convertiu els valors d'inclinació a nivells
- Pas 7: Pas 3: Compileu els nivells d’inclinació
- Pas 8: pas 4: escriviu funcions LEDPlotList
- Pas 9: pas 5: dibuixeu la matriu LED per a cada cas
- Pas 10: pas 6: escriure funcions de calibratge
- Pas 11: Pas 7: Escriure la funció d'estat
- Pas 12: pas 8: unir-ho tot, part 1
- Pas 13: pas 9: unir-ho tot, part 2
- Pas 14: Pas 10: Muntatge
- Pas 15: font
Vídeo: Creeu un nivell d’esperit elèctric: 15 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:16
Utilitzeu aquest nivell espiritual per mostrar de forma ràpida i senzilla la inclinació de qualsevol objecte adjunt.
Creat per Kaitlyn de Raffles Institution.
Pas 1: objectius
Apreneu a llegir la inclinació amb l’acceleròmetre incorporat de micro: bit.
Apreneu a treballar amb la pantalla LED 5x5 de micro: bit.
Pas 2: materials
1 x micro: bit de BBC
1 x cable micro USB
2 piles AA
1 x doble bateria AA
Pas 3: Pre codificació: connecteu el vostre micro: Bit
- Connecteu el bit micro: BBC a l'ordinador mitjançant un cable micro USB.
- Accediu a l’editor javascript del micro: bit a makecode.microbit.org.
Pas 4: Pas 0: flux de codi
Abans de començar a escriure el codi, hem de decidir què volem aconseguir amb el programa i en quin ordre s’ha d’executar cada component.
Per al nivell espiritual elèctric, els passos que farem en el codi de cada bucle són:
- Llegiu les lectures d’inclinació des de l’acceleròmetre.
- Convertiu les lectures d’inclinació en nivells d’inclinació que es mostraran a la matriu de LED.
- Comproveu si hi ha canvis en les lectures del nivell d’inclinació del bucle anterior.
- Creeu un conjunt de coordenades LED per a diferents casos i direccions d’inclinació.
- Dibuixeu les coordenades de LED a la matriu LED de micro: bits.
Algunes de les funcions addicionals que hem d’incloure són:
- Calibratge per a la posició inicial d’inclinació.
- Tornant al calibratge d'inclinació per defecte.
Pas 5: pas 1: definició de variables
Comencem definint les variables necessàries tal com es mostra. Un desglossament d'algunes variables són:
- tiltList: matriu que emmagatzema l’extensió de la inclinació dels valors 0-4 en l’ordre [esquerra, dreta, endavant, enrere]
- tiltBoundary: límit del primer nivell d’inclinació entre 0 (sense inclinació) i 1 (inclinació lleugera)
- prevState: Matriu que emmagatzema els valors d’inclinació del micro: bit d’un bucle anterior en el mateix format que tiltList, que s’utilitza per comprovar si hi ha un canvi d’inclinació entre les iteracions
- ledPlotList: Traceu matrius de coordenades led en la forma (x, y). Per definir una matriu, fem servir el número de tipus per indicar una matriu imbricada de variables de tipus: nombre.
Pas 6: Pas 2: convertiu els valors d'inclinació a nivells
Com que la matriu LED 5x5 només pot mostrar tanta informació, els valors d’inclinació reals no seran útils per a la visualització.
En canvi, una funció tiltExtent () pren el paràmetre num, que fa referència al valor d’inclinació de l’acceleròmetre i converteix aquests valors d’inclinació (num) en nivells d’inclinació de 0 a 4.
0 indica cap inclinació en la direcció indicada i 4 indica una inclinació molt gran, mentre que -1 es torna quan hi ha un error.
Aquí, tiltBoundary i tiltSensitivity s’utilitzen com a valors límit entre els nivells d’inclinació.
Pas 7: Pas 3: Compileu els nivells d’inclinació
Les dues funcions checkRoll () i checkPitch () escriuen els nivells d’inclinació obtinguts de tiltExtent () a tiltList per als eixos de desplaçament (esquerra-dreta) i de pitch (endavant-enrere) respectivament.
Abans d’utilitzar els valors d’inclinació, els calibrem utilitzant un valor a zero tant per al to (zeroPitch) com per al roll (zeroRoll) obtinguts d’una funció de calibratge escrita més tard.
Com que les lectures de l’acceleròmetre són negatives tant per a la inclinació esquerra com per a la directa, hem d’utilitzar la funció Math.abs () per obtenir el mòdul del valor negatiu que es donarà a la funció tiltExtent () com a paràmetre per a aquestes dues direccions.
Pas 8: pas 4: escriviu funcions LEDPlotList
Després d’haver obtingut els nivells d’inclinació a tiltList, ara podem escriure les funcions de traçat de leds per als diferents casos que puguin sorgir, és a dir,
- plotSingle (): Inclina només en una sola direcció, prenent com a paràmetre l’extensió de la inclinació en una direcció determinada.
- plotDiagonal (): Inclina en dues direccions de la mateixa magnitud, prenent l’extensió de la inclinació en qualsevol direcció com a paràmetre.
- plotUnequal (): Inclina en dues direccions de magnituds diferents, prenent com a paràmetre la extensió de la inclinació en cada direcció. Utilitza primer plotDiagonal () i després s’afegeix a la matriu ledPlotList.
Aquestes funcions de traçat escriuen una matriu de coordenades de led a ledPlotList que es representaran més endavant.
Pas 9: pas 5: dibuixeu la matriu LED per a cada cas
Utilitzant les funcions de traçat dels tres casos del pas 4, ara podem traçar la matriu LED real per a les diferents combinacions possibles de nivells d’inclinació. Com que les tres funcions del pas 4 no discriminen amb la direcció, hem d’ajustar els valors de coordenades passats a la matriu de LED per representar els LED en les direccions correctes.
PlotResult () conté múltiples si hi ha condicions que comproven el tipus d’inclinació i representen la matriu LED en conseqüència mitjançant led.plot (x, y). Les possibles combinacions d’inclinació són:
Direcció única: només a l’esquerra o només a la dreta
Direcció única: només cap endavant o només cap enrere
Dues direccions: endavant-esquerra o endarrere-esquerra
Dues direccions: Endavant-dreta o Endarrere-dreta
Nota: Per a la inclinació en dues direccions, cada combinació pot tenir la mateixa o diferent magnitud (comprovada comparant maxX i maxY) i, per tant, traçada mitjançant plotDiagonal () o plotUnequal () respectivament.
Pas 10: pas 6: escriure funcions de calibratge
Un cop completat el gruix del codi, ara afegim les funcions calibTilt () i resetTilt ().
calibTilt () permet als usuaris tarar la inclinació a zero a la posició actual del micro: bit
resetTilt () restableix el calibratge de la placa al seu estat original.
Pas 11: Pas 7: Escriure la funció d'estat
Afegim una funció simple checkState () per comprovar si els nivells d’inclinació han canviat respecte a una iteració anterior.
Si no hi ha canvis en els nivells d’inclinació d’una iteració anterior, és a dir, stateChange == 0, podem passar directament a la següent iteració i ometre el traçat de la matriu LED, reduint el càlcul necessari.
Pas 12: pas 8: unir-ho tot, part 1
Ara, finalment, podem col·locar totes les funcions necessàries al bucle infinit del micro: bit per executar-lo repetidament.
En primer lloc, establim els botons A i B al micro: bit a les funcions calibTilt () i resetTilt () respectivament mitjançant input.onButtonPressed (), i dibuixem una marca a la matriu LED quan es completa el calibratge.
Pas 13: pas 9: unir-ho tot, part 2
A continuació, executeu les funcions necessàries segons el nostre flux de codi al pas 0 i comproveu si hi ha un canvi d'estat (és a dir, hi ha un canvi en la inclinació del micro: bit des de l'última iteració).
Si hi ha un canvi en els nivells d’inclinació, és a dir, stateChange == 1, el codi actualitzarà prevState als nous nivells d’inclinació i tornarà a establir stateChange a 0 per a la següent iteració i traçarà els nivells d’inclinació actualitzats a la matriu LED mitjançant PlotResult ().
Pas 14: Pas 10: Muntatge
Feu clic al codi completat al vostre micro: bit.
Connecteu el micro: bit i la bateria de manera segura a qualsevol objecte i ja està a punt per utilitzar-lo.
Increïble
Diverteix-te amb el teu nivell espiritual elèctric! I mentre hi esteu, per què no intenteu ampliar les capacitats del sensor d’inclinació o fins i tot convertir-lo en un joc?
Aquest article és de TINKERCADEMY.
Pas 15: font
Aquest article prové de:
Si teniu cap pregunta, podeu contactar amb : [email protected].
Recomanat:
Detector de nivell d'aigua: 7 passos
Detector de nivell d’aigua: el sensor d’ultrasons funciona sobre els mateixos principis que un sistema de radar. Un sensor d'ultrasons pot convertir l'energia elèctrica en ones acústiques i viceversa. El famós sensor d’ultrasons HC SR04 genera ones ultrasòniques a una freqüència de 40 kHz
Sensor de nivell del col·lector d'aigua alimentat per bateria: 7 passos (amb imatges)
Sensor de nivell del col·lector d’aigua alimentat per piles: la nostra casa té un dipòsit d’aigua alimentat per la pluja que cau al terrat i s’utilitza per al vàter, la rentadora i les plantes del reg. Durant els darrers tres anys, els estius van ser molt secs, de manera que vam vigilar el nivell de l’aigua al dipòsit. S
Indicador de nivell d'aigua mitjançant Arduino a TinkerCad: 3 passos
Indicador de nivell d’aigua mitjançant Arduino a TinkerCad: aquest article tracta d’un controlador de nivell d’aigua completament funcional que utilitza Arduino. El circuit mostra el nivell d’aigua del dipòsit i engega el motor quan el nivell de l’aigua baixa per sota d’un nivell predeterminat. El circuit commuta automàticament
Nivell d’esperit digital basat en Arduino i MPU6050: 3 passos
Nivell d’esperit digital basat en Arduino i MPU6050: Benvingut al meu primer instructiu. Espero que el trobeu informatiu. Si us plau, no dubteu a deixar comentaris si són positius o negatius. Aquest projecte és fer un arduino & Nivell espiritual digital basat en MPU6050. Mentre que el disseny acabat i
Nivell d'esperit digital de bricolatge: 5 passos (amb imatges)
Nivell d’esperit digital de bricolatge: en aquest projecte analitzarem de prop els circuits integrats de l’acceleròmetre i descobrirem com podem utilitzar-los amb un Arduino. Posteriorment combinarem aquest CI amb un parell de components complementaris i un recinte imprès en 3D per crear un digital