Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Uppdaterad version 2018-maj-12
Nedan får du instruktioner om hur du bygger en enkel mikro: bitbaserad riktningsindikator för cykelhjälmar (eller liknande). Den använder accelerometrarna som är inbyggda i micro: bit som kontroller.
De tillhandahållna mikro -python -skripten är optimerade för mu, en mikro -python -editor med ett specifikt "läge" för micro: bit. I den senaste versionen kommer den med en seriell plotter och jag ville först först förstå hur man använder den för att visa uppmätta värden (tips: skicka data som dubbletter: skriv ut ((x, y, z)) med dubbla parenteser).
Fyra mönster visas på micro: bitars 5x5 LED -display:
- I viloläge visas ett fint, randomiserat mönster. För närvarande hittar du manus för tre olika mönster, ett "eldfluga", ett "regn" och ett "fallande stjärna" -mönster. Ta en titt och välj den du gillar bäst. Justera gärna parametrarna, för att göra dem mer eller mindre täta eller springa snabbare eller långsammare.
- Sedan finns det "sväng höger" eller "sväng vänster" indikatorer i form av rörliga pilar. De aktiveras genom att luta huvudet åt vänster eller höger genom att trycka på knapparna på micro: bit. I den externa knappversionen av manuset aktiverar du genom att trycka på en av de externa knapparna som är anslutna till stift 0 och 1.
- Om du böjer huvudet bakåt eller om båda knapparna på micro: bit aktiveras samtidigt visas ett "varning" eller "bryt" -mönster.
Denna mönstervisande mikro: bit kan användas som en riktningsindikator t.ex. för cykling, skridskoåkning eller skidåkning. Fixa micro: bit på din hjälm och kontrollera den med huvudets position. Eller fixa det på din cykel, ladda det externa knappskriptet och styr det med två externa omkopplare anslutna till mikro: bit via några kablar.
För dem som arbetar med MakeCode lade jag till ett blockskript i det sista steget, som kan kopieras direkt till micro: bit. Det är mindre snyggt men ger den grundläggande funktionaliteten utan att behöva installera mu.
Kom ihåg:
- Även om detta projekt kan vara till hjälp för din säkerhet, se till att du alltid ger tydliga indikationer på vart du vill köra med händer och armar.
- Konceptet har inte testats utförligt på vägen och var endast avsett som ett exempel på programmering. Använd den på egen risk.
- Använd grundversionen endast under torra väderförhållanden, eftersom micro: bit och batteri eller LiPo -förpackningar är känsliga för fukt. Det finns en beskrivning hur man bygger en inkapslad version längre ner nedan.
Steg 1: Material som används
En mikro: bit. En dator med mu -redigeraren installerad. Batteripaket eller LiPo -paket för mikro: bit. En cykelhjälm. Jag använde en som tidigare hade en LED-bakgrundsbelysning. En bit av 3 mm polypropenpapp, som avståndsstycke mellan micro: bit och hjälm. Dubbelsidig dubbeltape för att fixa micro: bit till distansstycket och detta till hjälmen. tejp, för att fixa micro: bit och batteripaket i hjälmen.
För en inkapslad version: en 59 x 59 x 30 mm klar plastlåda, Modulor, Berlin: 0, 70 Euro Kitronic MI: kraftkort, 5 GBP dubbelhäftande tejp och en bit av PP -plattorna
För den externa switchens version (detaljerna visas inte här): Bygelkablar och två switchar, två vita lysdioder, ett 10 kOhm -motstånd, ett brödbräda. Krokodilklämmor. M3 mässingsskruvar (20 mm), M3 nylonmuttrar; fyra vardera, för stift 0, stift 1, 3V och mark. Placera skruvarna genom hålen i micro: bitens kretskort och fixera med skruvarna. De förenklar att fästa krokodilklämmor.
Steg 2: Installera enheten, installation av skriptet
- Installera mu -redigeraren på din dator.
- Anslut micro: bit till datorn.
- Ladda in önskat skript.
- Flasha skriptet till micro: bit.
- För accelerometer (hjälm) manus, fixa micro: bit och batteripaket till hjälmen. Jag använde en liten bit plastkartong, ett material du kan hitta i din järnaffär, som distansstycke och dubbelsidig kanal tejp på båda sidor för att fixa micro: bit till hjälmen. Fixera sedan micro: bit och batteripaket med gaffatejp på hjälmen.
- För att få vädret att bevisa, ta en titt på ett senare steg.
- Om det behövs justerar du tröskelvärdena x och z enligt dina behov.
När det gäller det knappdrivna skriptet och om du gillar att använda externa knappar, ansluter brädbrädans strömskenor till Gnd- och 3V-portarna på micro: bit. Anslut knapparna till Gnd- och Pin0- och Pin1 -portarna
Steg 3: Micro Python -skripten
Bifogad hittar du mikro -python -skripten för mu och micro: bit.
Det finns fyra skript: ett som styr bildskärmen med hjälp av inbyggda och externa knappar, tre med hjälp av inbyggda accelerometrar för mikro: bit. De har olika slumpmässiga mönstergeneratorer för viloläget.
Det finns ett "eldfluga" -mönster, ett "regn" -mönster och ett "fallande stjärna" -mönster. Firefly/accelerometer -skriptet listas nedan. Det finns också ett skript som har alla tre mönstren och kör dem i en randomiserad ordning, med ett nytt val varje gång en indikator hade aktiverats.
Accelerometervärdena skickas till datorn och kan läsas via seriemonitorn för mu -redigeraren eller visas på serieplottern.
Det är enkelt att ändra parametrar för att justera skripten efter dina krav och preferenser.
'' 'Vinkel/accelerometer eller inbyggda knappar kontrollerad version. 2018-maj-07 Ett enkelt skript som producerar ett "firefly" -mönster i viloläge, vänster eller höger rörliga pilar om m-biten vrids i motsvarande riktning, eller knapparna A eller B trycks in eller ett brytindikator/varningsmönster om båda knapparna trycks ned eller m-biten är böjd bakåt. Kan användas till cykelhjälmens bakgrundsbelysning eller liknande. Bygg för mu micro python-redigeraren av Dr H. https://www.instructables.com/id/A-Microbit-Direction-Indicator-for-Biking-Helmets/ '' 'från mikrobitimport * import random random.seed (3433) # ange ditt lyckonummer de = 100 # set display fördröjningstid i ms ff1 = 100 # set firefly delay time 1 in ms ff2 = 50 # set firefly delay time 2 in ms fn = 3 # set antal firefly seed -punkter thesh_z = 80 # tröskelvärde för bakåt thresh_x = 350 # tröskelvärde för sidled # definiera bilder image_l_1 = Bild ("00900:" "09000:" "97531:" "09000:" "00900") image_l_2 = Bild ("09000:" "90000:" "75319:" "90000:" "09000") image_l_3 = Bild ("90000:" "00009:" "53197:" "00009:" "90000") image_l_4 = Bild ("00009:" "00090: "" 31975: "" 00090: "" 00009 ") image_l_5 = Bild (" 00090: "" 00900: "" 19753: "" 00900: "" 00090 ") image_r_1 = Bild (" 00900: "" 00090: " "13579:" "00090:" "00900") image_r_2 = Bild ("00090:" "00009:" "91357:" "00009:" "00090") image_r_3 = Bild ("00009:" "90000:" "79135: "" 90000: "" 00009 ") image_r_4 = Bild ("90000:" "09000:" "57913:" "09000:" "90000") image_r_5 = Bild ("09000:" "00900:" "35791:" "00900:" "09000") image_z_1 = Image ("90009:" "00000:" "00900:" "00000:" "90009") image_z_2 = Image ("09090:" "90009:" "00000:" "90009:" "09090") # starta programmet medan True: print ((accelerometer.get_x (), accelerometer.get_y (), accelerometer.get_z ())) # som ska användas med seriell bildskärm eller plotter för optimering av tröskelvärden; # dämpa med ' #' om den inte används om ((accelerometer.get_z ()> trösk_z) # huvudet böjt bakåt, justera vid behov eller (knapp_a.is_pressad () och knapp_b.is_pressad ()): # för kontrollsyfte. visa (Image. DIAMOND_SMALL) sleep (de) display.show (Image. DIAMOND) sleep (de) display.show (image_z_2) sleep (de) display.show (image_z_1) sleep (de) display.clear () elif ((accelerometer.get_x () trösk_x) # riktningsindikator höger; för att aktivera böjhuvudet ca 20 grader åt höger eller knapp_b.is_pressad ()): display.show (image_r_1) sleep (de) display.show (image_r_2) sleep (de) display. visa (image_r_3) sleep (de) display.show (image_r_4) sleep (de) display.show (image_r_5) sleep (de) display.clear () else: # 'firefly' mönstergenerator för g i intervall (0, fn): # seed ett givet antal (fn) pixlar x = random.randint (0, 4) # plockar en slumpmässig position y = random.randint (0, 4) v = 9 # seed seed brightness maximum # v = random.randint (0, 9) # valfritt: randomiserad visning av fröns ljusstyrka. Set_pixel (x, y, v) # ställ in eldflugans hastighet sömn (ff1) # display för ff ms # reducerar intensiteten för alla pixlar med ett steg för j inom intervallet (0, 5): # för varje pixel i LED -arrayen för i inom intervallet (0, 5): b = display.get_pixel (i, j) # få aktuell intensitet om (b> 0): f = b - 1 # minska ljusstyrkan med en annan: f = 0 # ställer in 0 som lägsta tillåtna värdevisning. set_pixel (i, j, f) sömn (ff2)
Steg 4: En inkapslad, väderbeständig version
Som nämnts ovan är grundversionen inte väderbeständig. Jag har därför byggt en inkapslad version.
För att driva micro: bit här använde jag ett Kitronic MI: power board. Den drivs av en 3V myntcell och kan fästas på micro: bit med tre bultar och muttrar. Den har också en inbyggd strömbrytare. Alternativt kan du använda ett LiPo -batteri.
Som hus använder jag en 59 x 59 x 30 mm klar plastlåda. En bit av 3 mm plastkartong täckt med dubbelhäftande tejp användes som avståndsstycke. Det krävs som baksida av MI: kraft beror inte ens på muttrarna och håller micro: bit på plats.
Lådan med micro: bit fixeras sedan på hjälmen med en annan plastkartong täckt med dubbelsidig tejp.
Steg 5: Ett MakeCode -skript
För dem som inte vill eller kan installera mu har jag lagt till ett MakeCode -blockskript med liknande funktioner. Överlägset inte så snyggt, men tillräckligt bra för att visa principen.
Du kan bara kopiera filen till din micro: bit och spela.