Inhoudsopgave:

Een Micro:bit richtingaanwijzer voor fietshelmen - Ajarnpa
Een Micro:bit richtingaanwijzer voor fietshelmen - Ajarnpa

Video: Een Micro:bit richtingaanwijzer voor fietshelmen - Ajarnpa

Video: Een Micro:bit richtingaanwijzer voor fietshelmen - Ajarnpa
Video: Weg van 't school Micro:bit richtingaanwijzers 2024, November
Anonim
Een Micro:bit richtingaanwijzer voor fietshelmen
Een Micro:bit richtingaanwijzer voor fietshelmen
Een Micro:bit richtingaanwijzer voor fietshelmen
Een Micro:bit richtingaanwijzer voor fietshelmen
Een Micro:bit richtingaanwijzer voor fietshelmen
Een Micro:bit richtingaanwijzer voor fietshelmen

Bijgewerkte versie 2018-mei-12

Hieronder vindt u instructies voor het bouwen van een eenvoudige micro:bit-gebaseerde richtingaanwijzer voor fietshelmen (of vergelijkbaar). Het gebruikt de versnellingsmeters die in de micro:bit zijn ingebouwd als bedieningselementen.

De meegeleverde micropython-scripts zijn geoptimaliseerd voor mu, een micropython-editor met een specifieke "modus" voor de micro:bit. In de nieuwste versie wordt het geleverd met een seriële plotter en ik wilde aanvankelijk alleen begrijpen hoe ik het moest gebruiken om meetwaarden weer te geven (hint: stuur gegevens als tupels: print ((x, y, z)), met dubbele haakjes).

Op het 5x5 LED-display van de micro:bit worden vier patronen weergegeven:

  • In de rusttoestand wordt een mooi, willekeurig patroon weergegeven. Momenteel vind je scripts voor drie verschillende patronen, een 'firefly', een 'rain' en een 'falling star' patroon. Kijk en kies degene die je het leukst vindt. Voel je vrij om de parameters aan te passen, om ze meer of minder dicht te maken of sneller of langzamer te laten lopen.
  • Dan zijn er "rechtsaf" of "linksaf"-indicatoren in de vorm van bewegende pijlen. Ze worden geactiveerd door je hoofd naar links of rechts te buigen, door op de knoppen op de micro:bit te drukken. Activeer in de externe knopversie van het script door op een van de externe knoppen te drukken die zijn aangesloten op pinnen 0 en 1.
  • Als je je hoofd naar achteren buigt, of beide knoppen op de micro:bit tegelijkertijd worden geactiveerd, wordt er een "alert" of "break" patroon weergegeven.

Deze micro:bit die een patroon weergeeft, kan worden gebruikt als een richtingaanwijzer, b.v. om te fietsen, skaten of skiën. Bevestig de micro:bit op je helm en bedien hem met de positie van je hoofd. Of bevestig het op je fiets, laad het externe knopscript en bedien het met twee externe schakelaars die via enkele kabels aan de micro:bit zijn bevestigd.

Voor degenen die met MakeCode werken, heb ik in de laatste stap een blokscript toegevoegd, dat rechtstreeks naar de micro:bit kan worden gekopieerd. Het is minder luxe, maar geeft de basisfunctionaliteit zonder de noodzaak om mu te installeren.

Houd in gedachten:

  • Hoewel dit project nuttig kan zijn voor uw veiligheid, moet u ervoor zorgen dat u altijd duidelijk aangeeft waar u wilt rijden met uw handen en armen.
  • Het concept is niet uitgebreid getest op de weg en was alleen bedoeld als programmeervoorbeeld. Gebruik het op eigen risico.
  • Gebruik de basisversie alleen onder droge weersomstandigheden, omdat de micro:bit en de batterij of LiPo-packs gevoelig zijn voor vocht. Hieronder wordt beschreven hoe u een ingekapselde versie kunt bouwen.

Stap 1: Gebruikte materialen

Een micro:bit. Een computer met de mu-editor geïnstalleerd. Batterij of LiPo-pack voor de micro:bit. Een fietshelm. Ik gebruikte er een die vroeger een LED-achtergrondverlichting had. Een stuk polypropyleen karton van 3 mm, als afstandsstuk tussen micro:bit en helm. Dubbelzijdige ducttape om de micro:bit aan het afstandsstuk te bevestigen en dit aan de helm. Duct tape, om de micro:bit en het batterijpakket in de helm te bevestigen.

Voor een ingekapselde versie: een doorzichtige plastic doos van 59 x 59 x 30 mm, Modulor, Berlijn: 0, 70 Euro Kitronic MI: power board, 5 GBP dubbelzijdige ducttape en een stuk van de PP-platen

Voor de versie met externe schakelaars (details worden hier niet getoond): jumperkabels en twee schakelaars, twee witte LED's, een weerstand van 10 kOhm, een breadboard. Krokodillenklemmen. M3 messing schroeven (20 mm), M3 nylon moeren; vier elk, voor pin 0, pin 1, 3V en aarde. Plaats schroeven door de gaten in de PCB van de micro:bit en zet ze vast met de schroeven. Ze vereenvoudigen het bevestigen van krokodillenklemmen.

Stap 2: Het apparaat instellen, het script installeren

Het apparaat instellen, het script installeren
Het apparaat instellen, het script installeren
Het apparaat instellen, het script installeren
Het apparaat instellen, het script installeren
  • Installeer de mu-editor op uw computer.
  • Sluit de micro:bit aan op de computer.
  • Laad het gewenste script.
  • Flash het script naar de micro:bit.
  • In het geval van de accelerometer (helm) scripts, bevestig de micro:bit en het batterijpakket aan je helm. Ik gebruikte een klein stukje plastic karton, een materiaal dat je in je ijzerhandel kunt vinden, als afstandsstuk en dubbelzijdig kanaal tape aan beide kanten om de micro:bit aan de helm te bevestigen. Bevestig vervolgens de micro:bit en het batterijpakket met ducttape op je helm.
  • Om het weer te laten bewijzen, kijk eens naar een latere stap.
  • Pas indien nodig de x- en z-drempelwaarden aan uw behoeften aan.

In het geval van het door een knop aangedreven script en als je graag externe knoppen gebruikt, sluit je de voedingsrails van het breadboard aan op de Gnd- en 3V-poorten van de micro:bit. Sluit de knoppen aan op Gnd en de Pin0- en Pin1-poorten

Stap 3: De Micro Python-scripts

Bijgevoegd vind je de micro python scripts voor mu en de micro:bit.

Er zijn vier scripts: een die het display bestuurt met behulp van de ingebouwde en externe knoppen, drie met behulp van de ingebouwde versnellingsmeters van de micro:bit. Ze hebben verschillende generatoren voor willekeurige patronen voor de rusttoestand.

Er is een 'vuurvlieg'-patroon, een 'regen'-patroon en een 'vallende ster'-patroon (matrix-stijl). Het firefly/accelerometer-script staat hieronder vermeld. Er is ook een script dat alle drie de patronen heeft en ze in een willekeurige volgorde uitvoert, met een nieuwe keuze telkens wanneer een indicator werd geactiveerd.

De accelerometerwaarden worden naar de computer gestuurd en kunnen via de seriële monitor van de mu-editor worden uitgelezen of op de seriële plotter worden weergegeven.

Het is gemakkelijk om parameters te wijzigen om de scripts aan te passen aan uw vereisten en voorkeuren.

'''Hoek/versnellingsmeter of ingebouwde knoppen gecontroleerde versie. 2018-mei-07 Een eenvoudig script dat een "vuurvlieg"-patroon produceert in rusttoestand, pijlen naar links of rechts bewegend als de m-bit in de overeenkomstige richting wordt gedraaid, of knoppen A of B worden ingedrukt of een pauze-indicator / waarschuwingspatroon als beide knoppen worden ingedrukt of als de m-bit naar achteren wordt gebogen. Kan worden gebruikt voor achtergrondverlichting van een fietshelm of iets dergelijks. Bouw voor de mu micro python-editor door Dr. H. https://www.instructables.com/id/A-Microbit-Direction-Indicator-for-Biking-Helmets/ ''' van microbit import * import random random.seed(3433) # voer je geluksgetal in de = 100 # stelt weergavevertragingstijd in ms in ff1 = 100 # stelt vuurvliegvertragingstijd 1 in ms in ff2 = 50 # stelt vuurvliegvertragingstijd in 2 in ms fn = 3 # stelt aantal vuurvliegzaadpunten in thresh_z = 80 # drempelwaarde voor achteruit thresh_x = 350 # drempelwaarde voor zijwaarts # beelden definiëren image_l_1 = Image("00900:" "09000:" "97531:" "09000:" "00900") image_l_2 = Image("09000:" "90000:" "75319:" "90000:" "09000") image_l_3 = Afbeelding("90000:" "00009:" "53197:" "00009:" "90000") image_l_4 = Afbeelding("00009:" "00090:" "31975:" "00090:" "00009") image_l_5 = Afbeelding("00090:" "00900:" "19753:" "00900:" "00090") image_r_1 = Afbeelding("00900:" "00090:" "13579:" "00090:" "00900") image_r_2 = Afbeelding("00090:" "00009:" "91357:" "00009:" "00090") image_r_3 = Afbeelding("00009:" "90000:" "79135:" "90000:" "00009") image_r_4 = Afbeelding("90000:" "09000:" "57913:" "09000:" "90000") image_r_5 = Afbeelding("09000:" "00900:" "35791:" "00900:" "09000") image_z_1 = Image("90009:" "00000:" "00900:" "00000:" "90009") image_z_2 = Image("09090:" "90009:" "00000:" "90009:" "09090") # start het programma while True: print((accelerometer.get_x(), accelerometer.get_y(), accelerometer.get_z())) # te gebruiken met seriële monitor of plotter voor drempelwaarde-optimalisatie; # dempen met '#' indien niet gebruikt als ((accelerometer.get_z() > thresh_z) # hoofd naar achteren gebogen, indien nodig aanpassen of (button_a.is_pressed() en button_b.is_pressed())): # voor controledoeleinden. show(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() thresh_x) # richtingaanwijzer rechts; om buigkop ongeveer 20 graden naar rechts of button_b.is_pressed() te activeren): display.show(image_r_1) sleep(de) display.show(image_r_2) sleep(de) display. show(image_r_3) sleep(de) display.show(image_r_4) sleep(de) display.show(image_r_5) sleep(de) display.clear() else: # 'firefly' patroongenerator voor g in bereik (0, fn): # seed een bepaald aantal (fn) pixels x = random.randint(0, 4) # kiest een willekeurige positie y = random.randint(0, 4) v = 9 # seed helderheid maximum # v = random.randint(0, 9) # optioneel: gerandomiseerde zaadhelderheid display.set_pixel (x, y, v) # set vuurvliegsnelheid slaap (ff1) # weergave voor ff ms # vermindert de intensiteit van alle pixels met één stap voor j binnen bereik (0, 5): # voor elke pixel van de LED-array voor i binnen bereik (0, 5): b = display.get_pixel(i, j) # haal de huidige intensiteit op als (b > 0): f = b - 1 # verminder de helderheid met een ander: f = 0 # stelt 0 in als laagste toegestane waarde display.set_pixel(i, j, f) sleep(ff2)

Stap 4: Een ingekapselde, weerbestendige versie

Een ingekapselde, weerbestendige versie
Een ingekapselde, weerbestendige versie
Een ingekapselde, weerbestendige versie
Een ingekapselde, weerbestendige versie
Een ingekapselde, weerbestendige versie
Een ingekapselde, weerbestendige versie
Een ingekapselde, weerbestendige versie
Een ingekapselde, weerbestendige versie

Zoals hierboven vermeld, is de basisversie niet weerbestendig. Ik heb daarom een ingekapselde versie gebouwd.

Om de micro:bit hier van stroom te voorzien heb ik een Kitronic MI:power board gebruikt. Het wordt aangedreven door een 3V-knoopcel en kan met drie bouten en moeren aan de micro:bit worden bevestigd. Het heeft ook een ingebouwde stroomschakelaar. Als alternatief kunt u een LiPo-batterij gebruiken.

Als behuizing gebruik ik een doorzichtige plastic doos van 59 x 59 x 30 mm. Een stuk plastic karton van 3 mm bedekt met dubbelzijdige ducttape werd gebruikt als afstandsstuk. Het is nodig omdat de achterkant van de MI:power niet eens te wijten is aan de moeren en de micro:bit op zijn plaats houdt.

De doos met de micro:bit wordt vervolgens aan de helm bevestigd door een ander stuk plastic karton dat is bedekt met dubbelzijdig plakband.

Stap 5: Een MakeCode-script

Voor degenen die mu niet willen of kunnen installeren, heb ik een MakeCode-blokscript toegevoegd met vergelijkbare functionaliteiten. Verreweg niet zo fancy, maar goed genoeg om het principe te laten zien.

U kunt het bestand gewoon naar uw micro:bit kopiëren en afspelen.

Aanbevolen: