Tabla de contenido:

Un indicador direccional Micro: bit para cascos de bicicleta: 5 pasos
Un indicador direccional Micro: bit para cascos de bicicleta: 5 pasos

Video: Un indicador direccional Micro: bit para cascos de bicicleta: 5 pasos

Video: Un indicador direccional Micro: bit para cascos de bicicleta: 5 pasos
Video: Programa: Luces direccionales para la bici (Simulación) 2024, Noviembre
Anonim
Un indicador direccional Micro: bit para cascos de bicicleta
Un indicador direccional Micro: bit para cascos de bicicleta
Un indicador direccional Micro: bit para cascos de bicicleta
Un indicador direccional Micro: bit para cascos de bicicleta
Un indicador direccional Micro: bit para cascos de bicicleta
Un indicador direccional Micro: bit para cascos de bicicleta

Versión actualizada 2018-May-12

A continuación, encontrará instrucciones sobre cómo construir un indicador direccional basado en micro: bit simple para cascos de bicicleta (o similar). Utiliza los acelerómetros integrados en micro: bit como controles.

Los scripts de micro python proporcionados están optimizados para mu, un editor de micro python con un "modo" específico para micro: bit. En su última versión, viene con un trazador en serie e inicialmente solo quería entender cómo usarlo para mostrar los valores medidos (pista: enviar datos como tuplas: imprimir ((x, y, z)), usando corchetes dobles).

Se muestran cuatro patrones en la pantalla LED de 5x5 del micro: bit:

  • En el estado de reposo se muestra un bonito patrón aleatorio. Actualmente, encuentra scripts para tres patrones diferentes, un patrón de 'luciérnaga', una 'lluvia' y un patrón de 'estrella fugaz'. Echa un vistazo y elige el que más te guste. Siéntase libre de ajustar los parámetros, para hacerlos más o menos densos o correr más rápido o más lento.
  • Luego están los indicadores de "girar a la derecha" o "girar a la izquierda" en forma de flechas en movimiento. Se activan inclinando la cabeza hacia la izquierda o hacia la derecha, presionando los botones del micro: bit. En la versión de botón externo del script, active presionando uno de los botones externos conectados a los pines 0 y 1.
  • Si inclina la cabeza hacia atrás, o ambos botones del micro: bit se activan al mismo tiempo, se muestra un patrón de "alerta" o "interrupción".

Este micro: bit de visualización de patrones se puede utilizar como indicador direccional, p. Ej. para andar en bicicleta, patinar o esquiar. Fija el micro: bit en tu casco y contrólalo con la posición de tu cabeza. O fíjelo en su bicicleta, cargue el script del botón externo y contrólelo con dos interruptores externos conectados al micro: bit a través de algunos cables.

Para aquellos que trabajan con MakeCode, agregué un script de bloque en el último paso, que se puede copiar directamente al micro: bit. Es menos elegante pero ofrece la funcionalidad básica sin la necesidad de instalar mu.

Por favor ten en cuenta:

  • Si bien este proyecto puede ser útil para su seguridad, asegúrese de dar siempre indicaciones claras sobre dónde desea conducir con las manos y los brazos.
  • El concepto no se ha probado exhaustivamente en la carretera y fue diseñado solo como un ejemplo de programación. Úselo bajo su propio riesgo.
  • Use la versión básica solo en condiciones de clima seco, ya que el micro: bit y la batería o los paquetes de LiPo son sensibles a la humedad. Hay una descripción de cómo construir una versión encapsulada más abajo.

Paso 1: Materiales utilizados

Un micro: bit, una computadora con el editor mu instalado, un paquete de baterías o un paquete de LiPo para el micro: bit, un casco de bicicleta. Usé uno que solía tener retroiluminación LED, un trozo de cartulina de polipropileno de 3 mm, como distanciador entre el micro: bit y el casco, cinta adhesiva de doble cara para fijar el micro: bit al distanciador y este al casco. cinta, para fijar el micro: bit y la batería en el casco.

Para una versión encapsulada: una caja de plástico transparente de 59 x 59 x 30 mm, Modulor, Berlín: 0, 70 Euro Kitronic MI: placa de alimentación, cinta adhesiva de doble cara de 5 GBP y un trozo de las placas de PP

Para la versión de interruptores externos (los detalles no se muestran aquí): cables de puente y dos interruptores, dos LED blancos, una resistencia de 10 kOhm, una placa de pruebas. Abrazaderas de cocodrilo. Tornillos de latón M3 (20 mm), tuercas de nailon M3; cuatro cada uno, para pin 0, pin 1, 3V y tierra. Coloque los tornillos a través de los orificios en el PCB del micro: bit y fíjelos con los tornillos. Simplifican colocar pinzas de cocodrilo.

Paso 2: configuración del dispositivo, instalación del script

Configuración del dispositivo, instalación del script
Configuración del dispositivo, instalación del script
Configuración del dispositivo, instalación del script
Configuración del dispositivo, instalación del script
  • Instale el editor mu en su computadora.
  • Conecte el micro: bit a la computadora.
  • Cargue la secuencia de comandos deseada.
  • Actualice el script en micro: bit.
  • En el caso de los guiones del acelerómetro (casco), fije el micro: bit y la batería a su casco. Utilicé un pequeño trozo de cartón plástico, un material que puede encontrar en su ferretería, como pieza distanciadora y conducto de doble cara. cinta en ambos lados para fijar el micro: bit al casco. Luego, fije el micro: bit y el paquete de baterías con cinta adhesiva en su casco.
  • Para probar el clima, eche un vistazo a un paso posterior.
  • Si es necesario, ajuste los valores de umbral xyz según sus necesidades.

En el caso del script controlado por botones y si desea utilizar botones externos, conecte los rieles de alimentación de la placa de pruebas a los puertos Gnd y 3V del micro: bit. Conecte los botones a Gnd y los puertos Pin0 y Pin1

Paso 3: Los scripts de Micro Python

Adjunto encontrará los scripts de micro python para mu y micro: bit.

Hay cuatro scripts: uno que controla la pantalla usando los botones internos y externos, tres usando los acelerómetros integrados del micro: bit. Tienen diferentes generadores de patrones aleatorios para el estado de reposo.

Hay un patrón de 'luciérnaga', un patrón de 'lluvia' y un patrón de 'estrella fugaz' (estilo matriz). La secuencia de comandos de luciérnaga / acelerómetro se enumera a continuación. También hay un script que tiene los tres patrones y los ejecuta en un orden aleatorio, con una nueva selección cada vez que se activa un indicador.

Los valores del acelerómetro se envían a la computadora y se pueden leer a través del monitor serial del editor mu o mostrarse en el trazador serial.

Es fácil cambiar los parámetros para ajustar los scripts a sus requisitos y preferencias.

'' 'Ángulo / acelerómetro o versión controlada por botones integrados. 2018-May-07 Una secuencia de comandos simple que produce un patrón de "luciérnaga" en estado de reposo, flechas que se mueven hacia la izquierda o hacia la derecha si el bit m se tuerce en la dirección correspondiente, o se presionan los botones A o B o un indicador de interrupción / patrón de alerta si se presionan ambos botones o el bit m está doblado hacia atrás. Puede usarse para la retroiluminación de un casco de bicicleta o similar. Construido para el editor mu micro python por el Dr. H. https://www.instructables.com/id/A-Microbit-Direction-Indicator-for-Biking-Helmets/ '' 'from microbit import * import random random.seed (3433) # ingrese su número de la suerte de = 100 # establece el tiempo de retraso de visualización en ms ff1 = 100 # establece el tiempo de retraso de luciérnaga 1 en ms ff2 = 50 # establece el tiempo de retraso de luciérnaga 2 en ms fn = 3 # establece el número de puntos de semilla de luciérnaga thresh_z = 80 # valor de umbral para atrás thresh_x = 350 # valor de umbral para hacia los lados # definir imágenes image_l_1 = Imagen ("00900:" "09000:" "97531:" "09000:" "00900") image_l_2 = Imagen ("09000:" "90000:" "75319:" "90000:" "09000") image_l_3 = Imagen ("90000:" "00009:" "53197:" "00009:" "90000") image_l_4 = Imagen ("00009:" "00090: "" 31975: "" 00090: "" 00009 ") image_l_5 = Imagen (" 00090: "" 00900: "" 19753: "" 00900: "" 00090 ") image_r_1 = Imagen (" 00900: "" 00090: " "13579:" "00090:" "00900") image_r_2 = Imagen ("00090:" "00009:" "91357:" "00009:" "00090") image_r_3 = Imagen ("00009:" "90000:" "79135: "" 90000: "" 00009 ") image_r_4 = Imagen ("90000:" "09000:" "57913:" "09000:" "90000") image_r_5 = Imagen ("09000:" "00900:" "35791:" "00900:" "09000") image_z_1 = Imagen ("90009:" "00000:" "00900:" "00000:" "90009") image_z_2 = Imagen ("09090:" "90009:" "00000:" "90009:" "09090") # iniciar el programa while True: print ((accelerometer.get_x (), accelerometer.get_y (), accelerometer.get_z ())) # para usarse con un monitor serial o trazador para la optimización del valor umbral; # silenciar con '#' si no se usa if ((accelerometer.get_z ()> thresh_z) # cabeza inclinada hacia atrás, ajustar si es necesario o (button_a.is_pressed () y button_b.is_pressed ())): # para fines de control de visualización. 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 ((acelerómetro.get_x () thresh_x) # indicador de dirección a la derecha; para activar la cabeza de flexión unos 20 grados a la derecha o 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: # generador de patrones 'luciérnaga' para g en rango (0, fn): # semilla un número dado (fn) de píxeles x = random.randint (0, 4) # escoge una posición aleatoria y = random.randint (0, 4) v = 9 # brillo de semilla máximo # v = random.randint (0, 9) # opcional: pantalla de brillo de semilla aleatoria set_pixel (x, y, v) # set firefly velocity sleep (ff1) # display for ff ms # reduce la intensidad de todos los píxeles en un paso para j en el rango (0, 5): # para cada píxel de la matriz de LED para i en el rango (0, 5): b = display.get_pixel (i, j) # obtiene la intensidad actual si (b> 0): f = b - 1 # reduce el brillo en uno más: f = 0 # establece 0 como el valor mínimo permitido display.set_pixel (i, j, f) sleep (ff2)

Paso 4: una versión encapsulada y resistente a la intemperie

Una versión encapsulada y resistente a la intemperie
Una versión encapsulada y resistente a la intemperie
Una versión encapsulada y resistente a la intemperie
Una versión encapsulada y resistente a la intemperie
Una versión encapsulada y resistente a la intemperie
Una versión encapsulada y resistente a la intemperie
Una versión encapsulada y resistente a la intemperie
Una versión encapsulada y resistente a la intemperie

Como se mencionó anteriormente, la versión básica no es resistente a la intemperie. Por lo tanto, he creado una versión encapsulada.

Para alimentar el micro: bit aquí utilicé una placa de alimentación Kitronic MI:. Está alimentado por una celda de botón de 3V y se puede fijar al micro: bit con tres pernos y tuercas. También tiene un interruptor de encendido incorporado. Alternativamente, puede utilizar una batería LiPo.

Como carcasa estoy usando una caja de plástico transparente de 59 x 59 x 30 mm. Se utilizó como pieza distanciadora un trozo de cartón plástico de 3 mm cubierto con cinta adhesiva de doble cara. Se requiere como parte posterior del MI: la potencia ni siquiera se debe a las tuercas y mantiene el micro: bit en su lugar.

La caja con el micro: bit se fija al casco con otro trozo de cartón de plástico cubierto con cinta adhesiva de doble cara.

Paso 5: una secuencia de comandos MakeCode

Para aquellos que no están dispuestos o no pueden instalar mu, he agregado un script de bloque MakeCode con funcionalidades similares. De lejos no tan elegante, pero lo suficientemente bueno para mostrar el principio.

Puede simplemente copiar el archivo a su micro: bit y reproducir.

Recomendado: