Taula de continguts:

TfCD - Plus: 7 passos
TfCD - Plus: 7 passos

Vídeo: TfCD - Plus: 7 passos

Vídeo: TfCD - Plus: 7 passos
Vídeo: Intro to Time Series Databases & Data | Getting Started [1 of 7] 2024, Desembre
Anonim
Image
Image
Ingredients
Ingredients

Plus és una llum intel·ligent mínima, que no només informa les persones sobre les condicions meteorològiques, sinó que també crea una experiència agradable per als usuaris gràcies als canvis realitzats en el color de la llum mitjançant la rotació del plus. La seva forma dóna a l'usuari l'oportunitat de combinar diversos mòduls plus o crear una enorme làmpada amb moltes peces addicionals col·locades per amics. Aquest projecte d’il·luminació forma part del curs Advanced Concept Design (ACD) de la universitat TU Delft, i la tecnologia implementada mitjançant l’ús pràctic de TfCD com a font d’inspiració.

Pas 1: Ingredients

Ingredients
Ingredients
Ingredients
Ingredients

1 gerd pi zero w

1 accelerador Adxl345 Groove

4 Ws2812b LED

1 Tauler de prototipatge

Recintes impresos en 3D i tallats per làser

Pas 2: maquinari

Maquinari
Maquinari
Maquinari
Maquinari
Maquinari
Maquinari
Maquinari
Maquinari

LEDs

Els LED de Neopixel tenen 4 pins anomenats: + 5V, GND, Data In i Data out.

  1. El pin 4 del raspberry pi està connectat al + 5V de tots els LED
  2. El pin 6 del raspberry pi està connectat al GND de tots els LED
  3. El pin d'entrada de dades del primer LED està connectat al pin 12 del raspberry pi.
  4. El pin de sortida de dades del primer LED està connectat a les dades d’entrada del segon i així successivament.

Feu una ullada al diagrama de cablejat per a una millor comprensió.

Acceleròmetre

L'acceleròmetre té 4 pins anomenats: VCC, GND, SDA i SCL.

  1. El pin 1 del raspberry pi està connectat a VCC.
  2. El pin 3 del raspberry pi està connectat a SCL.
  3. El pin 5 del raspberry pi està connectat a SDA.
  4. El pin 9 del raspberry pi està connectat a GND.

Construeix

  1. Per comoditat, els LED es poden soldar a una placa de prototipatge. Hem decidit tallar el tauler en forma de plus perquè encaixi bé dins de la funda dissenyada en 3D.
  2. Un cop hem soldat els LED de la placa, soldem cables de pont per fer les connexions entre una connexió de capçalera de 0,1 "i els LED. El connector de capçalera s'utilitza per permetre que el raspberry pi es desconnecti i es reutilitzi per a un projecte futur.

Pas 3: programari

Programari
Programari

Imatge del sistema operatiu Raspberry Pi

Primer hem de posar en marxa el Raspberry Pi. Per fer-ho, seguim aquests passos:

  1. Descarregueu la versió més recent de Raspbian des d’aquí. Podeu descarregar-lo directament o mitjançant torrents. Necessitareu un escriptor d’imatges per escriure el sistema operatiu descarregat a la targeta SD (targeta micro SD en el cas del model Raspberry Pi B + i Raspberry Pi Zero).
  2. Per tant, descarregueu el "win32 disk imager" des d'aquí. Introduïu la targeta SD a l'ordinador portàtil / PC i executeu el gravador d'imatges. Un cop obert, navegueu i seleccioneu el fitxer d'imatge Raspbian descarregat. Seleccioneu el dispositiu correcte, que és la unitat que representa la targeta SD. Si la unitat (o dispositiu) seleccionada és diferent de la targeta SD, l’altra unitat seleccionada es corromprà. Així que tingueu cura.
  3. Després, feu clic al botó "Escriu" a la part inferior. A tall d'exemple, vegeu la imatge següent, on la unitat de la targeta SD (o micro SD) està representada per la lletra "G: \" El sistema operatiu ja està preparat per al seu ús normal. No obstant això, en aquest tutorial utilitzarem el Raspberry Pi en mode sense cap. Això vol dir que sense un monitor físic ni un teclat connectats.
  4. Després de gravar la targeta SD, no l'expulseu de l'ordinador. Utilitzeu un editor de text per obrir el fitxer config.txt que hi ha a la targeta SD. Aneu a la part inferior i afegiu dtoverlay = dwc2 com a última línia:
  5. Deseu el fitxer config.txt com a text pla i obriu cmdline.txt Després de rootwait (l’última paraula de la primera línia) afegiu un espai i, a continuació, modules-load = dwc2, g_ether.
  6. Ara traieu la targeta SD del PC i inseriu-la al Raspberry Pi i connecteu-la al PC mitjançant un cable USB. Un cop s'hagi arrencat el sistema operatiu, hauríeu de veure un nou dispositiu Ethernet Gadget.
  7. Podeu utilitzar ssh [email protected] per connectar-vos a la placa i controlar-la remotament. Per obtenir instruccions més detallades sobre el funcionament sense cap, aneu aquí.

La biblioteca rpi_ws281x és la clau que fa possible l’ús de NeoPixels amb el Raspberry Pi.

Primer hem d’instal·lar les eines necessàries per compilar la biblioteca. A la vostra execució de Raspberry Pi: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Ara executeu aquestes ordres per descarregar i compilar la biblioteca:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Finalment, després de la compilació correcta de la biblioteca, podem instal·lar-la per a python mitjançant:

cd python && sudo python setup.py install Ara ve el codi python que condueix els LED. El codi és bastant senzill amb alguns comentaris que us ajudaran. des de la importació de neopixels * # Configuracions de NeoPixel LED_PIN = 18 # Pin GPIO de Raspberry Pi connectat als píxels LED_BRIGHTNESS = 255 # Estableix a 0 per als més foscos i 255 per als més brillants LED_COUNT = 4 # Nombre de píxels LED strip = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Inicialitzeu la biblioteca strip.begin () strip.setPixelColor (0, Color (255, 255, 255)) strip.show ()

Controlador ADXL345

El sensor de l’acceleròmetre que hem seleccionat té una interfície I2C per comunicar-se amb el món exterior. Afortunadament per a nosaltres, el Raspberry Pi també té una interfície I2C. Només hem d’habilitar-lo per utilitzar-lo al nostre propi codi.

Truqueu a l'eina de configuració de Raspbian mitjançant sudo raspi-config. Un cop executat, aneu a Opcions d’interfície, Opcions avançades i, a continuació, activeu I2C. Instaleu els mòduls python corresponents perquè puguem utilitzar la interfície I2C a python:

sudo apt-get install python-smbus i2c-tools El següent codi python ens permet comunicar-nos amb el sensor de l’acceleròmetre i llegir els seus valors de registre per als nostres propis propòsits. import smbus import struct # Accelerometer configurations bus = smbus. SMBus (1) address = 0x53 gain = 3.9e-3 bus.write_byte_data (address, 45, 0x00) # Anar al mode d'espera bus.write_byte_data (address, 44, 0x06) # Amplada de banda 6,5Hz bus.write_byte_data (adreça, 45, 0x08) # Anar al mode de mesura # Llegir dades del sensor buf = bus.read_i2c_block_data (adreça, 50, 6) # Desempaquetar les dades des de int16_t a python integer data = struct.unpack_from ("> hhh", memòria intermèdia (bytearray (buf)), 0)

x = float (dades [0]) * guany

y = float (dades [1]) * guany

z = float (dades [2]) * guany

Detector de moviment

Una de les característiques de la llum que estem produint és que pot detectar moviments (o que n’hi hagi) per entrar al mode interactiu (on la llum canvia en funció de la rotació) i al mode de previsió meteorològica (on la llum canvia en funció de la previsió meteorològica) per avui). El següent codi utilitza la funció anterior per llegir els valors d’acceleració dels 3 eixos i avisar-nos quan hi ha moviment.

accel = getAcceleration ()

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

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

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

si dx> moveThreshold o dy Per a> moveThreshold o dz> moveThreshold:

imprimir "mogut"

mogut = cert

en cas contrari:

mogut = Fals

API Weather

Per rebre la predicció del temps, podem utilitzar Yahoo Weather. Això implica parlar amb l'API Yahoo Weather Rest, que pot ser bastant complex. Afortunadament per a nosaltres, la part més difícil ja es té cura en forma del mòdul meteorològic-API per a Python.

  1. Primer hem d’instal·lar aquest mòdul mitjançant: sudo apt install python-pip && sudo pip install weather-api
  2. Visiteu el lloc web de l'autor per obtenir més informació sobre aquest mòdul.

Un cop instal·lat, el següent codi obté les condicions meteorològiques per a aquest moment

de la importació del temps Weatherweather = Weather ()

location = weather.lookup_by_location ('dublin')

condition = location.condition ()

print (condition.text ())

Unint-ho tot

El codi complet del projecte que connecta totes les peces anteriors es pot trobar aquí.

Arrencada automàtica de l'script python en arrencar

Per poder posar el raspberry pi en una caixa i fer-lo executar el nostre codi cada vegada que el connectem a l’alimentació, ens hem d’assegurar que el codi s’iniciï automàticament durant l’arrencada. Per fer-ho utilitzem una eina anomenada cron.

  1. Primerament truqueu a l'eina cron mitjançant: sudo crontab -e
  2. Els passos anteriors obriran un fitxer de configuració, en el qual afegim la línia següent:

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

Pas 4: Modelatge i impressió 3D

Modelatge i impressió 3D
Modelatge i impressió 3D
Modelatge i impressió 3D
Modelatge i impressió 3D

El model 3D de Plus s’ha fet en Solidworks i s’ha desat en format. Stl. Després, per a la impressió 3D, es van importar els fitxers. Stl al programa Cura. Cada costat del plus va trigar a produir-se a les 2:30 hores; de manera que cada Plus complet va trigar unes 5 hores a imprimir-se. I per als laterals transparents, el plexiglàs es va tallar amb làser.

Pas 5: Muntatge

muntatge
muntatge
muntatge
muntatge
muntatge
muntatge
muntatge
muntatge

Amb la part impresa en 3D, l'electrònica i el programari a la mà, finalment podem muntar el producte final.

  1. Les plaques superiors i inferiors impreses en 3D ens han semblat més transparents del previst. Una capa de paper d'alumini va solucionar el problema de les fuites de llum.
  2. No obstant això, aquestes fulles són conductores i poden provocar curtcircuits dins del nostre circuit sense protecció. Per tant, hi ha una altra capa de cartró blanc encolada a la part superior.
  3. Els segments difusos de plexiglàs estan enganxats a una de les plaques laterals.
  4. Es fa un forat en un dels panells impresos en 3D laterals. Això és perquè puguem passar pel cable d'alimentació.
  5. Un cop instal·lat el cable d'alimentació a través del forat, el soldem a la nostra placa de prototipatge.
  6. Connectem el sensor al raspberry pi i el connectem al connector.
  7. Unim les dues peces per obtenir el nostre producte final.
  8. Opcionalment, podeu enganxar les dues peces per fer una connexió més permanent. Tanmateix, tingueu en compte que potser és difícil entrar a la caixa després de tancar-lo si voleu canviar el codi més endavant.

Recomanat: