Sadržaj:

TfCD - Plus: 7 koraka
TfCD - Plus: 7 koraka

Video: TfCD - Plus: 7 koraka

Video: TfCD - Plus: 7 koraka
Video: TFCD Arduino face tracking device 2024, Prosinac
Anonim
Image
Image
Sastojci
Sastojci

Plus je minimalno pametno svjetlo koje ne samo da obavještava ljude o vremenskim uvjetima, već i stvara ugodno iskustvo za korisnike promjenama u boji svjetla okretanjem plusa. Njegov oblik daje korisniku priliku kombinirati nekoliko plus modula ili stvoriti ogromnu svjetiljku s puno plus komada koje su postavili prijatelji. Ovaj projekt rasvjete dio je tečaja naprednog konceptualnog dizajna (ACD) na sveučilištu TU Delft, a tehnologija je implementirana korištenjem TfCD -a kao izvora inspiracije.

Korak 1: Sastojci

Sastojci
Sastojci
Sastojci
Sastojci

1 Malina pi nula w

1 Groove Adxl345 akcelerometar

4 LED LED Ws2812b

1 Ploča za izradu prototipa

3D tiskana i laserski izrezana kućišta

Korak 2: Hardver

Hardver
Hardver
Hardver
Hardver
Hardver
Hardver
Hardver
Hardver

LED diode

Neopixel LED diode imaju 4 pina nazvana: +5V, GND, Data In i Data out.

  1. Pin 4 maline pi spojen je na +5V svih LED dioda
  2. Pin 6 maline pi spojen je na GND svih LED dioda
  3. Podaci In pin prve LED diode spojen je na pin 12 na malini pi.
  4. Izlazni pin prve LED diode spojen je na podatke druge i tako dalje.

Za bolje razumijevanje pogledajte dijagram ožičenja.

Brzinomjer

Akcelerometar ima 4 pina nazvana: VCC, GND, SDA i SCL.

  1. Pin 1 maline pi spojen je na VCC.
  2. Pin 3 maline pi spojen je na SCL.
  3. Pin 5 maline pi spojen je na SDA.
  4. Pin 9 maline pi spojen je na GND.

Izgraditi

  1. Radi praktičnosti, LED diode se mogu lemiti na ploču za izradu prototipa. Odlučili smo izrezati ploču u oblik plusa kako bi se dobro uklopila u 3D dizajnirano kućište.
  2. Nakon što smo lemili LED diode na ploči, lemimo kratkospojne žice kako bismo uspostavili veze između 0,1 "zaglavlja zaglavlja i LED dioda. Konektor zaglavlja koristi se za odvajanje malinovog pi od ponovnog spajanja i ponovnu uporabu za buduće projekte.

Korak 3: Softver

Softver
Softver

Slika operacijskog sustava Raspberry Pi

Prvo moramo pokrenuti Raspberry Pi. Da bismo to učinili, slijedimo ove korake:

  1. Ovdje preuzmite najnoviju verziju Raspbiana. Možete ga preuzeti izravno ili putem torrenta. Trebat će vam pisač slika da biste zapisani preuzeti OS zapisali na SD karticu (mikro SD kartica u slučaju modela Raspberry Pi B+ i Raspberry Pi Zero).
  2. Zato preuzmite "win32 disk imager" odavde. Umetnite SD karticu u prijenosno računalo i pokrenite program za snimanje slika. Nakon otvaranja, pregledajte i odaberite preuzetu datoteku slikovne datoteke Raspbian. Odaberite ispravan uređaj, odnosno pogon koji predstavlja SD karticu. Ako se odabrani pogon (ili uređaj) razlikuje od SD kartice, drugi odabrani pogon će se oštetiti. Pa budi oprezan.
  3. Nakon toga kliknite gumb "Napiši" pri dnu. Kao primjer, pogledajte sliku ispod, gdje je pogon SD kartice (ili mikro SD) predstavljen slovom "G: \" OS je sada spreman za normalnu upotrebu. Međutim, u ovom ćemo vodiču koristiti Raspberry Pi u načinu rada bez glave. To znači bez priključenog fizičkog monitora i tipkovnice!
  4. Nakon snimanja SD kartice, nemojte je vaditi iz računala! Pomoću uređivača teksta otvorite datoteku config.txt koja se nalazi na SD kartici. Idite na dno i dodajte dtoverlay = dwc2 kao zadnji redak:
  5. Spremite datoteku config.txt kao običan tekst, a zatim otvorite cmdline.txt Nakon rootwait-a (zadnja riječ u prvom retku) dodajte razmak, a zatim moduli-load = dwc2, g_ether.
  6. Sada uklonite SD karticu s računala i umetnite je u Raspberry Pi te je spojite na računalo pomoću USB kabela. Nakon što se OS pokrene, trebali biste vidjeti otkrivanje novog uređaja Ethernet gadgeta.
  7. Možete upotrijebiti ssh [email protected] za spajanje na ploču i daljinsko upravljanje njome. Za detaljnije upute u vezi rada bez glave idite ovdje. Upravljački program za neopiksele

Knjižnica rpi_ws281x ključ je koji omogućuje korištenje NeoPixela s Raspberry Pi -jem.

Prvo moramo instalirati alate potrebne za sastavljanje knjižnice. U vašem pokretanju Raspberry Pi: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Sada pokrenite ove naredbe za preuzimanje i kompajliranje biblioteke:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Konačno, nakon što je knjižnica uspješno prevedena, možemo je instalirati za python koristeći:

cd python && sudo python setup.py install Sada dolazi python kod koji pokreće LED diode. Kôd je prilično jednostavan s nekoliko komentara koji će vam pomoći. iz uvoza neopiksela * # NeoPixel konfiguracije LED_PIN = 18 # GPIO pin Raspberry Pi spojen na piksele LED_BRIGHTNESS = 255 # Postavljeno na 0 za najtamnije i 255 za najsvjetlije LED_COUNT = 4 # Broj LED piksela = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, Netačno, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Inicijalizirajte knjižnicu strip.begin () strip.setPixelColor (0, Color (255, 255, 255)) strip.show ()

ADXL345 upravljački program

Senzor akcelerometra koji smo odabrali ima I2C sučelje za komunikaciju s vanjskim svijetom. Srećom po nas, Raspberry Pi ima i I2C sučelje. Moramo mu samo omogućiti da ga koristi u vlastitom kodu.

Pozovite konfiguracijski alat Raspbian koristeći sudo raspi-config. Nakon pokretanja idite na Opcije sučelja, Napredne opcije, a zatim omogućite I2C. Instalirajte odgovarajuće module Python kako bismo mogli koristiti sučelje I2C u pythonu:

sudo apt-get install python-smbus i2c-tools Sljedeći python kôd omogućuje nam komunikaciju sa senzorom akcelerometra i čitanje njegovih vrijednosti registra za vlastite potrebe. import smbus import struct # Konfiguracija akcelerometra sabirnica = smbus. SMBus (1) adresa = 0x53 dobitak = 3.9e-3 sabirnica.write_byte_data (adresa, 45, 0x00) # Idite na stanje čekanja bus.write_byte_data (adresa, 44, 0x06) # Propusni opseg 6,5Hz bus.write_byte_data (adresa, 45, 0x08) # Idite na način mjerenja # Očitajte podatke sa senzora buf = bus.read_i2c_block_data (adresa, 50, 6) # Raspakirajte podatke iz int16_t u python integer data = struct.unpack_from ("> hhh", međuspremnik (bytearray (buf)), 0)

x = float (podaci [0]) * dobitak

y = float (podaci [1]) * dobitak

z = float (podaci [2]) * dobitak

Detektor pokreta

Jedna od značajki svjetla koje stvaramo je da može otkriti kretanje (ili njegov nedostatak) za ulazak u interaktivni način rada (gdje se svjetlo mijenja ovisno o rotaciji) i način vremenske prognoze (gdje se svjetlo mijenja ovisno o vremenskoj prognozi za danas). Sljedeći kôd koristi prethodnu funkciju za čitanje vrijednosti ubrzanja za 3 osi i upozorava nas kada dođe do pomaka.

accel = getAcceleration ()

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

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

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

ako je dx> moveThreshold ili dy To> moveThreshold ili dz> moveThreshold:

ispis "premješten"

premješteno = Istina

drugo:

premješteno = Netačno

API za vremensku prognozu

Za primanje vremenske prognoze možemo koristiti Yahoo Weather. To uključuje razgovor s Yahoo API -jem Weather Rest koji može biti prilično složen. Na našu sreću, o teškom dijelu već se brine u obliku weather-api modula za python.

  1. Prvo moramo instalirati ovaj modul koristeći: sudo apt install python-pip && sudo pip install weather-api
  2. Za više informacija o ovom modulu posjetite web stranicu autora.

Nakon instalacije sljedeći kod dobiva vremenske uvjete za ovaj trenutak

from weather import Weatherweather = Vrijeme ()

location = weather.lookup_by_location ('dublin')

condition = location.condition ()

ispis (stanje.tekst ())

Spajajući sve zajedno

Cijeli kôd projekta koji povezuje sve gore navedene dijelove možete pronaći ovdje.

Automatsko pokretanje python skripte u vrijeme pokretanja

Da bismo mogli staviti malinu pi u kutiju i pokrenuti naš kôd svaki put kad ga spojimo na napajanje, moramo se pobrinuti da se kôd automatski pokrene tijekom pokretanja. Da bismo to učinili, koristimo alat zvan cron.

  1. Prvo pozovite cron alat pomoću: sudo crontab -e
  2. Prethodni koraci otvorit će konfiguracijsku datoteku u koju dodamo sljedeći redak:

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

Korak 4: Modeliranje i 3D ispis

Modeliranje i 3D ispis
Modeliranje i 3D ispis
Modeliranje i 3D ispis
Modeliranje i 3D ispis

3D model Plus napravljen je u Solidworksu i spremljen kao. Stl format. Zatim su za 3D ispis model. Stl datoteka uvezeni u softver Cura. Za izradu svake strane plusa trebalo je 2:30 sati; pa je svakom punom Plus ispisu trebalo oko 5 sati. A za prozirne strane, pleksiglas je laserski izrezan.

Korak 5: Montaža

Skupština
Skupština
Skupština
Skupština
Skupština
Skupština
Skupština
Skupština

S 3D tiskanim dijelom, elektronikom i softverom pri ruci, konačno možemo sastaviti konačni proizvod.

  1. Utvrdili smo da su 3D tiskane gornje i donje ploče transparentnije nego što se očekivalo. Sloj aluminijske folije riješio je problem propuštanja svjetlosti.
  2. Međutim, ti su listovi vodljivi i mogu uzrokovati kratke spojeve unutar našeg nezaštićenog kruga. Dakle, drugi sloj bijele kartonske ploče zalijepljen je na vrh.
  3. Difuzni segmenti od pleksiglasa zalijepljeni su na jednu od bočnih ploča.
  4. Na jednoj od bočnih 3D tiskanih ploča izbušena je rupa. To je tako da možemo proći kroz kabel za napajanje.
  5. Nakon što je kabel za napajanje umetnut kroz rupu, lemimo ga na našu ploču za izradu prototipa.
  6. Priključujemo senzor na malinu pi, a zatim ga priključujemo u konektor.
  7. Spojimo 2 komada zajedno kako bismo dobili konačni proizvod.
  8. Po želji možete zalijepiti 2 komada kako biste ostvarili trajniju vezu. Međutim, imajte na umu da će možda biti teško ući u kutiju nakon što je zalijepljena ako kasnije želite promijeniti kôd.

Preporučeni: