Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Version mise à jour 2018-mai-12
Vous trouverez ci-dessous des instructions sur la façon de créer un indicateur directionnel simple basé sur un micro: bit pour les casques de vélo (ou similaire). Il utilise les accéléromètres intégrés au micro:bit comme contrôles.
Les scripts micro python fournis sont optimisés pour mu, un éditeur micro python avec un "mode" spécifique pour le micro:bit. Dans sa dernière version, il est livré avec un traceur série et je voulais au départ comprendre comment l'utiliser pour afficher les valeurs mesurées (indice: envoyer les données sous forme de tuples: print((x, y, z)), en utilisant des doubles crochets).
Quatre motifs sont affichés sur l'écran LED 5x5 du micro:bit:
- Au repos, un joli motif aléatoire est affiché. Actuellement, vous trouvez des scripts pour trois motifs différents, un motif 'luciole', un motif 'pluie' et un motif 'étoile filante'. Jetez un œil et choisissez celui que vous préférez. N'hésitez pas à ajuster les paramètres, pour les rendre plus ou moins denses ou courir plus vite ou plus lentement.
- Ensuite, il y a des indicateurs "tourner à droite" ou "tourner à gauche" sous forme de flèches mobiles. Ils s'activent en penchant la tête à gauche ou à droite, en appuyant sur les boutons du micro:bit. Dans la version bouton externe du script, activez en appuyant sur l'un des boutons externes connectés aux broches 0 et 1.
- Si vous penchez la tête en arrière ou si les deux boutons du micro:bit sont activés en même temps, un motif « alerte » ou « rupture » s'affiche.
Ce micro:bit d'affichage de motif peut être utilisé comme indicateur directionnel, par ex. pour faire du vélo, du patin ou du ski. Fixez le micro:bit sur votre casque et contrôlez-le avec la position de votre tête. Ou fixez-le sur votre vélo, chargez le script du bouton externe et contrôlez-le avec deux commutateurs externes attachés au micro:bit via des câbles.
Pour ceux qui travaillent avec MakeCode, j'ai ajouté un script de bloc à la dernière étape, qui peut être copié directement dans le micro:bit. C'est moins sophistiqué mais donne les fonctionnalités de base sans avoir besoin d'installer mu.
S'il vous plaît gardez en tête:
- Bien que ce projet puisse être utile pour votre sécurité, assurez-vous de toujours indiquer clairement où vous souhaitez conduire en utilisant vos mains et vos bras.
- Le concept n'a pas été testé intensivement sur la route et a été conçu comme un exemple de programmation seulement. Utilisez-le à vos risques et périls.
- Utilisez la version de base uniquement par temps sec, car le micro:bit et la batterie ou les packs LiPo sont sensibles à l'humidité. Vous trouverez ci-dessous une description de la façon de créer une version encapsulée.
Étape 1: Matériaux utilisés
Un micro:bit. Un ordinateur avec l'éditeur mu installé. Un pack batterie ou un pack LiPo pour le micro:bit. Un casque de vélo. J'en ai utilisé un qui avait un rétro-éclairage LED. Un morceau de carton polypropylène de 3 mm, comme pièce d'écartement entre le micro:bit et le casque. Du ruban adhésif double face pour fixer le micro:bit à la pièce d'écartement et ce au casque. Conduit ruban adhésif, pour fixer le micro:bit et la batterie dans le casque.
Pour une version encapsulée: une boîte en plastique transparent 59 x 59 x 30 mm, Modulor, Berlin: 0, 70 Euro Kitronic MI:carte d'alimentation, 5 GBP du ruban adhésif double face et un morceau des plaques PP
Pour la version à interrupteurs externes (détails non affichés ici): Câbles de démarrage et deux interrupteurs, deux LED blanches, une résistance de 10 kOhm, une maquette. Pinces crocodiles. Vis en laiton M3 (20 mm), écrous en nylon M3; quatre chacun, pour la broche 0, la broche 1, 3V et la masse. Placez les vis dans les trous du PCB du micro:bit et fixez-les avec les vis. Ils simplifient la fixation des pinces crocodiles.
Étape 2: Configuration de l'appareil, installation du script
- Installez l'éditeur mu sur votre ordinateur.
- Connectez le micro:bit à l'ordinateur.
- Chargez le script souhaité.
- Flashez le script sur le micro:bit.
- Dans le cas des scripts accéléromètre (casque), fixez le micro:bit et la batterie à votre casque. J'ai utilisé un petit morceau de carton plastique, un matériau que vous pouvez trouver dans votre quincaillerie, comme pièce d'écartement et conduit double face du ruban adhésif des deux côtés pour fixer le micro:bit au casque. Fixez ensuite le micro:bit et la batterie avec du ruban adhésif sur votre casque.
- Pour le prouver, jetez un œil à une étape ultérieure.
- Si nécessaire, ajustez les valeurs de seuil x et z en fonction de vos besoins.
Dans le cas du script piloté par boutons et si vous souhaitez utiliser des boutons externes, connectez les rails d'alimentation de la maquette aux ports Gnd et 3V du micro:bit. Connectez les boutons à Gnd et aux ports Pin0 et Pin1
Étape 3: Les scripts Micro Python
Vous trouverez ci-joint les scripts micro python pour mu et le micro:bit.
Il existe quatre scripts: un qui contrôle l'affichage à l'aide des boutons intégrés et externes, trois à l'aide des accéléromètres intégrés du micro:bit. Ils ont différents générateurs de motifs aléatoires pour l'état de repos.
Il existe un motif « luciole », un motif « pluie » et un motif « étoile filante » (style matrice). Le script luciole/accéléromètre est répertorié ci-dessous. Il existe également un script qui contient les trois modèles et les exécute dans un ordre aléatoire, avec un nouveau choix à chaque fois qu'un indicateur a été activé.
Les valeurs de l'accéléromètre sont envoyées à l'ordinateur et peuvent être lues via le moniteur série de l'éditeur mu ou affichées sur le traceur série.
Il est facile de modifier les paramètres pour ajuster les scripts à vos besoins et préférences.
Version contrôlée par '''Angle/accéléromètre ou boutons intégrés. 2018-mai-07 Un script simple qui produit un motif "luciole" à l'état de repos, des flèches mobiles vers la gauche ou la droite si le bit m est tordu dans la direction correspondante, ou si les boutons A ou B sont enfoncés ou un indicateur de rupture/un motif d'alerte si les deux boutons sont enfoncés ou si le m-bit est plié vers l'arrière. Peut être utilisé pour un rétro-éclairage de casque de vélo ou similaire. Construit pour l'éditeur mu micro python par le Dr H. https://www.instructables.com/id/A-Microbit-Direction-Indicator-for-Biking-Helmets/ ''' de microbit import * import random.seed(3433) # entrez votre numéro porte-bonheur de = 100 # définit le temps de retard d'affichage en ms ff1 = 100 # définit le temps de retard des lucioles 1 en ms ff2 = 50 # définit le temps de retard des lucioles 2 en ms fn = 3 # définit le nombre de points de départ des lucioles thresh_z = 80 # valeur seuil pour l'arrière thresh_x = 350 # valeur seuil pour le côté # définition des images image_l_1 = Image("00900:" "09000:" "97531:" "09000:" "00900") image_l_2 = Image("09000:" "90000:" "75319:" "90000:" "09000") image_l_3 = Image("90000:" "00009:" "53197:" "00009:" "90000") image_l_4 = Image("00009:" "00090):" "31975:" "00090:" "00009") image_l_5 = Image("00090:" "00900:" "19753:" "00900:" "00090") image_r_1 = Image("00900:" "00090:" "13579:" "00090:" "00900") image_r_2 = Image("00090:" "00009:" "91357:" "00009:" "00090") image_r_3 = Image("00009:" "90000:" "79135:" "90000:" "00009") image_r_4 = Image("90000:" "09000:" "57913:" "09000:" "90000") image_r_5 = Image("09000:" "00900:" "35791:" "00900:" "09000") image_z_1 = Image("90009:" "00000:" "00900:" "00000:" "90009") image_z_2 = Image("09090:" "90009:" "00000:" "90009:" "09090") # démarrer le programme while True: print((accelerometer.get_x(), accelerometer.get_y(), accelerometer.get_z())) # à utiliser avec un moniteur ou un traceur série pour l'optimisation de la valeur seuil; # mute avec '#' si non utilisé si ((accelerometer.get_z() > thresh_z) # tête penchée en arrière, ajustez si nécessaire ou (button_a.is_pressed() et button_b.is_pressed())): # à des fins de contrôle affichage. 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) # indicateur de direction à droite; pour activer la tête de courbure à environ 20 degrés vers la droite ou button_b.is_pressed(): 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: # générateur de motif 'firefly' pour g dans la plage (0, fn): # semer un nombre donné (fn) de pixels x = random.randint(0, 4) # choisit une position aléatoire y = random.randint(0, 4) v = 9 # semer la luminosité maximale # v = random.randint(0, 9) # facultatif: affichage aléatoire de la luminosité des graines.set_pixel(x, y, v) # définir le sommeil de la vitesse de la luciole(ff1) # display for ff ms # réduit l'intensité de tous les pixels d'un pas pour j in range (0, 5): # pour chaque pixel de la matrice LED pour i in range (0, 5): b = display.get_pixel(i, j) # obtient l'intensité actuelle si (b > 0): f = b - 1 # réduit la luminosité d'un autre: f = 0 # définit 0 comme valeur la plus basse autorisée display.set_pixel(i, j, f) sleep(ff2)
Étape 4: Une version encapsulée et résistante aux intempéries
Comme mentionné ci-dessus, la version de base n'est pas résistante aux intempéries. J'ai donc construit une version encapsulée.
Pour alimenter le micro:bit ici, j'ai utilisé une carte Kitronic MI:power. Il est alimenté par une pile bouton 3V et peut être fixé au micro:bit avec trois boulons et écrous. Il dispose également d'un interrupteur d'alimentation intégré. Alternativement, vous pouvez utiliser une batterie LiPo.
Comme boîtier, j'utilise une boîte en plastique transparent de 59 x 59 x 30 mm. Un morceau de carton plastique de 3 mm recouvert de ruban adhésif double face a été utilisé comme pièce d'écartement. C'est nécessaire car l'arrière du MI:power n'est même pas dû aux écrous et maintient le micro:bit en place.
La boîte avec le micro:bit est ensuite fixée au casque par un autre morceau de carton plastique recouvert de ruban adhésif double face.
Étape 5: Un script MakeCode
Pour ceux qui ne souhaitent pas ou ne peuvent pas installer mu, j'ai ajouté un script de bloc MakeCode avec des fonctionnalités similaires. De loin pas si sophistiqué, mais assez bon pour montrer le principe.
Vous pouvez simplement copier le fichier sur votre micro:bit et jouer.