Cuprins:

TfCD - Plus: 7 pași
TfCD - Plus: 7 pași

Video: TfCD - Plus: 7 pași

Video: TfCD - Plus: 7 pași
Video: TFCD Arduino face tracking device 2024, Iulie
Anonim
Image
Image
Ingrediente
Ingrediente

Plus este o lumină inteligentă minimă, care nu numai că informează oamenii despre starea vremii, ci și creează o experiență plăcută utilizatorilor prin schimbările făcute în culoarea luminii prin rotirea plusului. Forma sa oferă utilizatorului posibilitatea de a combina mai multe module plus sau de a crea o lampă imensă cu o mulțime de piese plus plasate de prieteni. Acest proiect de iluminat face parte din cursul Advanced Concept Design (ACD) de la universitatea TU Delft și tehnologia implementată prin utilizarea practicii TfCD ca sursă de inspirație.

Pasul 1: Ingrediente

Ingrediente
Ingrediente
Ingrediente
Ingrediente

1 Raspberry pi zero w

1 accelerometru Groove Adxl345

4 Ws2812b LED

1 Placă de prototipare

Carcase imprimate 3D și tăiate cu laser

Pasul 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

LED-uri

LED-urile Neopixel au 4 pini denumite: + 5V, GND, Data In și Data Out.

  1. Pinul 4 al raspberry pi este conectat la + 5V din toate LED-urile
  2. Pinul 6 al raspberry pi este conectat la GND-ul tuturor LED-urilor
  3. Pinul de intrare de date al primului LED este conectat la pinul 12 de pe pi zmeură.
  4. Pinul de ieșire de date al primului LED este conectat la datele de intrare ale celui de-al doilea și așa mai departe.

Vă rugăm să aruncați o privire la schema de cabluri pentru o mai bună înțelegere.

Accelerometru

Accelerometrul are 4 pini denumiți: VCC, GND, SDA și SCL.

  1. Pinul 1 al raspberry pi este conectat la VCC.
  2. Pinul 3 al raspberry pi este conectat la SCL.
  3. Pinul 5 al raspberry pi este conectat la SDA.
  4. Pinul 9 al zmeurii pi este conectat la GND.

Construi

  1. Pentru comoditate, LED-urile pot fi lipite pe o placă de prototipare. Am decis să tăiem placa în formă de plus, astfel încât să se potrivească bine în carcasa proiectată 3D.
  2. Odată ce am lipit LED-urile de pe placă, am lipit firele jumper pentru a realiza conexiunile dintre o conexiune de antet de 0,1 "și LED-urile. Conectorul de antet este utilizat pentru a permite decuplarea și reutilizarea zmeii pi pentru un proiect viitor.

Pasul 3: Software

Software
Software

Imagine a sistemului de operare Raspberry Pi

Mai întâi trebuie să punem Raspberry Pi în funcțiune. Pentru a face acest lucru, urmăm acești pași:

  1. Descărcați cea mai recentă versiune a Raspbian de aici. Puteți să-l descărcați direct sau prin torrents. Veți avea nevoie de un scriitor de imagini pentru a scrie sistemul de operare descărcat pe cardul SD (card micro SD în cazul modelului Raspberry Pi B + și Raspberry Pi Zero).
  2. Așadar, descărcați „Win32 disk imager” de aici. Introduceți cardul SD în laptop / pc și rulați scriitorul de imagini. Odată deschis, răsfoiți și selectați fișierul imagine descărcat Raspbian. Selectați dispozitivul corect, adică unitatea care reprezintă cardul SD. Dacă unitatea (sau dispozitivul) selectat este diferită de cardul SD, atunci cealaltă unitate selectată va fi deteriorată. Asa ca fii atent.
  3. După aceea, faceți clic pe butonul „Scrieți” din partea de jos. De exemplu, vedeți imaginea de mai jos, unde unitatea cardului SD (sau micro SD) este reprezentată de litera „G: \” Sistemul de operare este acum gata pentru utilizare normală. Cu toate acestea, în acest tutorial vom folosi Raspberry Pi în modul fără cap. Aceasta înseamnă fără un monitor fizic și tastatură atașate la acesta!
  4. După arderea cardului SD, nu îl scoateți din computer! Utilizați un editor de text pentru a deschide fișierul config.txt care se află pe cardul SD. Mergeți în partea de jos și adăugați dtoverlay = dwc2 ca ultima linie:
  5. Salvați fișierul config.txt ca text simplu și apoi deschideți cmdline.txt După rootwait (ultimul cuvânt de pe prima linie) adăugați un spațiu și apoi module-load = dwc2, g_ether.
  6. Acum scoateți cardul SD de pe computer și introduceți-l în Raspberry Pi și conectați-l la computer utilizând un cablu USB. Odată ce sistemul de operare a pornit, ar trebui să vedeți un nou dispozitiv Ethernet Gadget aflat.
  7. Puteți utiliza ssh [email protected] pentru a vă conecta la placă și a o controla de la distanță. Pentru instrucțiuni mai detaliate privind funcționarea fără cap, accesați aici. Driver Neopixel

Biblioteca rpi_ws281x este cheia care face posibilă utilizarea NeoPixels cu Raspberry Pi.

Mai întâi trebuie să instalăm instrumentele necesare pentru a compila biblioteca. În rularea dvs. Raspberry Pi: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Acum rulați aceste comenzi pentru a descărca și a compila biblioteca:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons În cele din urmă, după ce biblioteca a fost compilată cu succes, o putem instala pentru python folosind:

cd python && sudo python setup.py install Acum vine codul python care conduce LED-urile. Codul este destul de simplu, cu câteva comentarii care să vă ajute. din importul de neopixeli * # configurații NeoPixel LED_PIN = 18 # Pinul GPIO al Raspberry Pi conectat la pixeli LED_BRIGHTNESS = 255 # Setați la 0 pentru cel mai întunecat și 255 pentru cel mai luminos LED_COUNT = 4 # Număr de benzi de pixeli LED = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Inițializați biblioteca strip.begin () strip.setPixelColor (0, Color (255, 255, 255)) strip.show ()

Driver ADXL345

Senzorul accelerometru pe care l-am selectat are o interfață I2C pentru comunicarea cu lumea exterioară. Din fericire pentru noi, Raspberry Pi are și o interfață I2C. Trebuie doar să-i permitem să-l folosească în propriul nostru cod.

Apelați instrumentul de configurare Raspbian folosind sudo raspi-config. După ce rulați, accesați Opțiuni de interfață, Opțiuni avansate și apoi activați I2C. Instalați modulele python relevante, astfel încât să putem utiliza interfața I2C în python:

sudo apt-get install python-smbus i2c-tools Următorul cod python ne permite să comunicăm cu senzorul accelerometrului și să citim valorile registrului său în scopurile noastre. import smbus import struct # Accelerometer configurations bus = smbus. SMBus (1) address = 0x53 gain = 3.9e-3 bus.write_byte_data (address, 45, 0x00) # Accesați modul standby bus.write_byte_data (address, 44, 0x06) # Lățime de bandă 6,5Hz bus.write_byte_data (adresa, 45, 0x08) # Mergeți la modul de măsurare # Citiți datele de la senzor buf = bus.read_i2c_block_data (adresa, 50, 6) # Despachetați datele de la int16_t la python integer data = struct.unpack_from ("> hhh", buffer (bytearray (buf)), 0)

x = float (date [0]) * câștig

y = float (date [1]) * câștig

z = float (date [2]) * câștig

Detector de mișcare

Una dintre caracteristicile luminii pe care o facem este că poate detecta mișcarea (sau lipsa) pentru a intra în modul interactiv (unde lumina se schimbă în funcție de rotație) și în modul de prognoză meteo (unde lumina se schimbă în funcție de prognoza meteo pentru astazi). Următorul cod folosește funcția anterioară pentru a citi valorile de accelerație pentru cele 3 axe și pentru a ne avertiza când există mișcare.

accel = getAcceleration ()

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

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

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

dacă dx> moveThreshold sau dy To> moveThreshold sau dz> moveThreshold:

tipăriți „mutat”

mutat = Adevărat

altceva:

mutat = Fals

API meteo

Pentru a primi prognoza meteo putem folosi Yahoo Weather. Aceasta implică discuția cu API-ul Yahoo Weather Rest, care poate fi destul de complex. Din fericire pentru noi, partea dificilă este deja îngrijită sub forma modulului meteo-api pentru python.

  1. Mai întâi trebuie să instalăm acest modul folosind: sudo apt install python-pip && sudo pip install weather-api
  2. Vă rugăm să vizitați site-ul autorului pentru mai multe informații despre acest modul.

Odată instalat, următorul cod obține starea vremii pentru acest moment

din importul vremii Weatherweather = Weather ()

location = weather.lookup_by_location („Dublin”)

condition = location.condition ()

print (condition.text ())

Punând totul împreună

Întregul cod al proiectului care conectează toate piesele de mai sus poate fi găsit aici.

Pornirea automată a scriptului python la momentul pornirii

Pentru a putea pune raspberry pi într-o cutie și să-l ruleze codul nostru de fiecare dată când îl conectăm la alimentare, trebuie să ne asigurăm că codul este pornit automat în timpul pornirii. Pentru a face acest lucru, folosim un instrument numit cron.

  1. Mai întâi apelați instrumentul cron folosind: sudo crontab -e
  2. Pașii anteriori vor deschide un fișier de configurare, în care adăugăm următoarea linie:

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

Pasul 4: Modelare și imprimare 3D

Modelare și imprimare 3D
Modelare și imprimare 3D
Modelare și imprimare 3D
Modelare și imprimare 3D

Modelul 3D Plus a fost realizat în Solidworks și salvat ca format. Stl. Apoi pentru imprimarea 3D a modelului, fișierul. Stl au fost importate în software-ul Cura. Fiecare parte a plusului a durat 2:30 ore pentru a produce; deci fiecare Plus complet a durat aproximativ 5 ore pentru a imprima. Și pentru părțile transparente, plexiglasul a fost tăiat cu laser.

Pasul 5: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare

Cu partea imprimată 3D, electronica și software-ul la îndemână, putem asambla în cele din urmă produsul final.

  1. Plăcile superioare și inferioare imprimate 3D, am găsit că sunt mai transparente decât se anticipase. Un strat de folie de aluminiu a rezolvat problema scurgerilor de lumină.
  2. Cu toate acestea, aceste foi sunt conductive și pot provoca scurtcircuitări în circuitul nostru neprotejat. Deci, un alt strat de carton alb este lipit deasupra.
  3. Segmentele difuze de plexiglas sunt lipite de una dintre plăcile laterale.
  4. O gaură este găurită într-unul dintre panourile imprimate 3D laterale. Asta pentru a putea trece prin cablul de alimentare.
  5. Odată ce cablul de alimentare este introdus prin gaură, îl lipim pe placa noastră de prototipare.
  6. Atașăm senzorul la zmeura pi și apoi îl conectăm la conector.
  7. Atașăm cele două piese împreună pentru a obține produsul nostru final.
  8. Opțional, puteți lipi cele două piese pentru a face o conexiune mai permanentă. Cu toate acestea, rețineți că este greu să intrați în cutie după ce este închisă dacă doriți să schimbați codul mai târziu.

Recomandat: