Tabla de contenido:

TfCD - Plus: 7 pasos
TfCD - Plus: 7 pasos

Video: TfCD - Plus: 7 pasos

Video: TfCD - Plus: 7 pasos
Video: Как заниматься брейк-дансом | 7-шаг | Работа ног 101 2024, Noviembre
Anonim
Image
Image
Ingredientes
Ingredientes

Plus es una luz inteligente mínima, que no solo notifica a las personas sobre las condiciones climáticas, sino que también crea una experiencia agradable para los usuarios mediante los cambios realizados en el color de la luz al girar el signo más. Su forma le da al usuario la oportunidad de combinar varios módulos plus o crear una lámpara enorme con muchas piezas plus colocadas por amigos. Este proyecto de iluminación es parte del curso de Diseño de Concepto Avanzado (ACD) en la Universidad TU Delft, y la tecnología implementada utilizando TfCD práctico como fuente de inspiración.

Paso 1: ingredientes

Ingredientes
Ingredientes
Ingredientes
Ingredientes

1 frambuesa pi zero w

1 acelerómetro Groove Adxl345

4 LED Ws2812b

1 tablero de creación de prototipos

Carcasas impresas en 3D y cortadas con láser

Paso 2: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

LEDs

Los LED de Neopixel tienen 4 pines denominados: + 5V, GND, entrada de datos y salida de datos.

  1. El pin 4 de la raspberry pi está conectado al + 5V de todos los LED
  2. El pin 6 de la raspberry pi está conectado al GND de todos los LEDS
  3. El pin Data In del primer LED está conectado al pin 12 de la Raspberry Pi.
  4. El pin de salida de datos del primer LED está conectado a la entrada de datos del segundo y así sucesivamente.

Por favor, eche un vistazo al diagrama de cableado para una mejor comprensión.

Acelerómetro

El acelerómetro tiene 4 pines llamados: VCC, GND, SDA y SCL.

  1. El pin 1 de la frambuesa pi está conectado a VCC.
  2. El pin 3 de la frambuesa pi está conectado a SCL.
  3. El pin 5 de la raspberry pi está conectado a SDA.
  4. El pin 9 del raspberry pi está conectado a GND.

Construir

  1. Para mayor comodidad, los LED se pueden soldar en una placa de creación de prototipos. Hemos decidido cortar el tablero en forma de más para que encaje bien dentro de la carcasa diseñada en 3D.
  2. Una vez que hemos soldado los LED en la placa, soldamos los cables de puente para hacer las conexiones entre un conector de encabezado de 0.1 "y los LED. El conector de encabezado se usa para permitir que la Raspberry Pi se desconecte y se reutilice para un proyecto futuro.

Paso 3: software

Software
Software

Imagen del sistema operativo Raspberry Pi

Primero tenemos que poner en funcionamiento la Raspberry Pi. Para ello seguimos estos pasos:

  1. Descargue la última versión de Raspbian desde aquí. Puedes descargarlo directamente oa través de los torrents. Necesitarás un escritor de imágenes para escribir el sistema operativo descargado en la tarjeta SD (tarjeta micro SD en el caso del modelo Raspberry Pi B + y Raspberry Pi Zero).
  2. Así que descargue el "generador de imágenes de disco win32" desde aquí. Inserte la tarjeta SD en la computadora portátil / pc y ejecute el escritor de imágenes. Una vez abierto, busque y seleccione el archivo de imagen Raspbian descargado. Seleccione el dispositivo correcto, que es la unidad que representa la tarjeta SD. Si la unidad (o dispositivo) seleccionada es diferente de la tarjeta SD, la otra unidad seleccionada se dañará. Así que ten cuidado.
  3. Después de eso, haga clic en el botón "Escribir" en la parte inferior. Como ejemplo, vea la imagen a continuación, donde la unidad de la tarjeta SD (o micro SD) está representada por la letra "G: \". El sistema operativo ahora está listo para el uso normal. Sin embargo, en este tutorial vamos a utilizar la Raspberry Pi en modo sin cabeza. Esto significa que no tiene un monitor físico ni un teclado conectados.
  4. Después de grabar la tarjeta SD, ¡no la expulse de su computadora! Utilice un editor de texto para abrir el archivo config.txt que se encuentra en la tarjeta SD. Vaya a la parte inferior y agregue dtoverlay = dwc2 como última línea:
  5. Guarde el archivo config.txt como texto sin formato y luego abra cmdline.txt Después de rootwait (la última palabra en la primera línea) agregue un espacio y luego modules-load = dwc2, g_ether.
  6. Ahora retire la tarjeta SD de su PC e insértela en la Raspberry Pi y conéctela a su PC con un cable USB. Una vez que el sistema operativo se haya iniciado, debería ver que se descubre un nuevo dispositivo Ethernet Gadget.
  7. Puede usar ssh [email protected] para conectarse a la placa y controlarla de forma remota. Para obtener instrucciones más detalladas sobre el funcionamiento sin cabeza, vaya aquí.

La biblioteca rpi_ws281x es la clave que hace posible el uso de NeoPixels con Raspberry Pi.

Primero necesitamos instalar las herramientas necesarias para compilar la biblioteca. En su Raspberry Pi, ejecute: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Ahora ejecute estos comandos para descargar y compilar la biblioteca:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Finalmente, después de que la biblioteca se compiló con éxito, podemos instalarla para Python usando:

cd python && sudo python setup.py install Ahora viene el código Python que controla los LED. El código es bastante simple con algunos comentarios para ayudarte. de importación de neopixel * # configuraciones de NeoPixel LED_PIN = 18 # Pin GPIO de Raspberry Pi conectado a los píxeles LED_BRIGHTNESS = 255 # Establecer en 0 para el más oscuro y 255 para el más brillante LED_COUNT = 4 # Número de tira de píxeles LED = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Inicializar la biblioteca strip.begin () strip.setPixelColor (0, Color (255, 255, 255)) strip.show ()

Controlador ADXL345

El sensor de acelerómetro que hemos seleccionado tiene una interfaz I2C para comunicarse con el mundo exterior. Afortunadamente para nosotros, la Raspberry Pi también tiene una interfaz I2C. Solo necesitamos habilitarlo para usarlo en nuestro propio código.

Llame a la herramienta de configuración de Raspbian usando sudo raspi-config. Una vez en ejecución, vaya a Opciones de interfaz, Opciones avanzadas y luego habilite I2C. Instale los módulos de Python relevantes para que podamos usar la interfaz I2C en Python:

sudo apt-get install python-smbus i2c-tools El siguiente código de Python nos permite comunicarnos con el sensor del acelerómetro y leer sus valores de registro para nuestros propios fines. importar smbus importar estructura # Configuraciones del acelerómetro bus = smbus. SMBus (1) dirección = 0x53 ganancia = 3.9e-3 bus.write_byte_data (dirección, 45, 0x00) # Ir al modo de espera bus.write_byte_data (dirección, 44, 0x06) # Ancho de banda 6.5Hz bus.write_byte_data (dirección, 45, 0x08) # Ir al modo de medición # Leer datos del sensor buf = bus.read_i2c_block_data (dirección, 50, 6) # Desempaquetar los datos de int16_t a python integer data = struct.unpack_from ("> hhh", búfer (bytearray (buf)), 0)

x = flotante (datos [0]) * ganancia

y = float (data [1]) * ganancia

z = flotante (datos [2]) * ganancia

Detector de movimiento

Una de las características de la luz que estamos haciendo, es que puede detectar movimiento (o falta de él) para ingresar al modo interactivo (donde la luz cambia según la rotación) y al modo de pronóstico del tiempo (donde la luz cambia según el pronóstico del tiempo). para hoy). El siguiente código utiliza la función anterior para leer los valores de aceleración de los 3 ejes y alertarnos cuando hay movimiento.

accel = getAcceleration ()

dx = abs (prevAccel [0] - accel [0])

dy = abs (prevAccel [1] - accel [1])

dz = abs (prevAccel [2] - accel [2])

if dx> moveThreshold o dy To> moveThreshold o dz> moveThreshold:

imprimir 'movido'

movido = Verdadero

demás:

movido = Falso

API meteorológica

Para recibir el pronóstico del tiempo podemos usar Yahoo Weather. Esto implica hablar con la API de Yahoo Weather Rest, que puede ser bastante compleja. Afortunadamente para nosotros, la parte difícil ya está resuelta con el módulo weather-api para python.

  1. Primero necesitamos instalar este módulo usando: sudo apt install python-pip && sudo pip install weather-api
  2. Visite el sitio web del autor para obtener más información sobre este módulo.

Una vez instalado, el siguiente código obtiene las condiciones climáticas para este momento

from weather import Weatherweather = Weather ()

ubicación = clima.lookup_by_location ('dublín')

condición = ubicación.condición ()

imprimir (condition.text ())

Poniendolo todo junto

El código completo del proyecto que conecta todas las piezas anteriores se puede encontrar aquí.

Inicio automático de la secuencia de comandos de Python en el momento del arranque

Para poder poner la raspberry pi en una caja y hacer que ejecute nuestro código cada vez que la conectemos a la corriente, debemos asegurarnos de que el código se inicie automáticamente durante el arranque. Para hacer esto usamos una herramienta llamada cron.

  1. Primero llame a la herramienta cron usando: sudo crontab -e
  2. Los pasos anteriores abrirán un archivo de configuración, en el que agregamos la siguiente línea:

    @reboot python /home/pi/light.py &

Paso 4: modelado e impresión 3D

Modelado e impresión 3D
Modelado e impresión 3D
Modelado e impresión 3D
Modelado e impresión 3D

El modelo 3D de Plus se ha realizado en Solidworks y se ha guardado en formato. Stl. Luego, para la impresión 3D del modelo, se importaron archivos. Stl en el software Cura. Cada lado del plus tomó 2:30 hrs para producir; por lo que cada Plus completo tardó aproximadamente 5 horas en imprimirse. Y para los lados transparentes, el plexiglás se cortó con láser.

Paso 5: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

Con la pieza impresa en 3D, la electrónica y el software a mano, finalmente podemos ensamblar el producto final.

  1. Descubrimos que las placas superior e inferior impresas en 3D eran más transparentes de lo previsto. Una capa de papel de aluminio solucionó el problema de las fugas de luz.
  2. Sin embargo, estas láminas son conductoras y pueden causar cortocircuitos dentro de nuestro circuito desprotegido. Entonces se pega otra capa de cartulina blanca en la parte superior.
  3. Los segmentos difusos de plexiglás se pegan a una de las placas laterales.
  4. Se perfora un agujero en uno de los paneles laterales impresos en 3D. Esto es para que podamos pasar a través del cable de alimentación.
  5. Una vez que el cable de alimentación se coloca a través del orificio, lo soldamos en nuestra placa de prototipos.
  6. Conectamos el sensor al raspberry pi y luego lo conectamos al conector.
  7. Unimos las 2 piezas juntas para obtener nuestro producto final.
  8. Opcionalmente puede pegar las 2 piezas para hacer una conexión más permanente. Sin embargo, tenga en cuenta que puede ser difícil entrar en la caja después de pegarla si desea cambiar el código más tarde.

Recomendado: