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, Novembar
Anonim
Image
Image
Sastojci
Sastojci

Plus je minimalno pametno svjetlo koje ne samo da obavještava ljude o vremenskim prilikama, već i stvara ugodno iskustvo za korisnike promjenama u boji svjetla rotiranjem plusa. Njegov oblik daje korisniku priliku da kombinira nekoliko plus modula ili stvori ogromnu svjetiljku s puno plus komada koje su postavili prijatelji. Ovaj projekt rasvjete dio je kursa Advanced Concept Design (ACD) na Univerzitetu TU Delft, a tehnologija 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 štampana 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 je povezan sa +5V svih LED dioda
  2. Pin 6 maline pi je povezan sa GND svih LED dioda
  3. Podaci U pinu 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.

Akcelerometar

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

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

Build

  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 zalemimo LED diode na ploči, lemimo kratkospojne žice kako bismo uspostavili veze između 0,1-inčnog zaglavlja i LED-a. Konektor zaglavlja koristi se za isključivanje maline pi i ponovno korištenje za buduće projekte.

Korak 3: Softver

Softver
Softver

Slika operativnog sistema Raspberry Pi

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

  1. Preuzmite najnoviju verziju Raspbiana odavde. Možete ga preuzeti direktno ili putem torrenta. Trebat će vam pisač slika da biste zapisani preuzeti operativni sustav 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 Raspbian slike. Odaberite odgovarajući 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. Zato budite oprezni.
  3. Nakon toga kliknite na dugme "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 vodiču ćemo koristiti Raspberry Pi u modu bez glave. To znači bez priključenog fizičkog monitora i tastature!
  4. Nakon snimanja SD kartice, nemojte je vaditi iz računara! 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 (posljednja riječ u prvom retku) dodajte razmak, a zatim moduli-load = dwc2, g_ether.
  6. Sada uklonite SD karticu iz računara i umetnite je u Raspberry Pi i povežite je sa računarom pomoću USB kabla. Nakon što se OS pokrene, trebali biste vidjeti otkrivanje novog Ethernet Gadget uređaja.
  7. Možete upotrijebiti ssh [email protected] za spajanje na ploču i daljinsko upravljanje njome. Za detaljnija uputstva u vezi rada bez glave idite ovdje. Upravljački program za neopiksele

Biblioteka rpi_ws281x ključ je koji omogućuje korištenje NeoPixels -a s Raspberry Pi -jem.

Prvo moramo instalirati alate potrebne za kompajliranje biblioteke. 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 biblioteka 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 povezan sa pikselima 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) # Inicirajte biblioteku 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. Samo mu moramo omogućiti da ga koristi u vlastitom kodu.

Pozovite Raspbian alat za konfiguraciju koristeći sudo raspi-config. Nakon pokretanja idite na Interfacing Options (Opcije sučelja), Advanced Options (Napredne opcije), a zatim omogućite I2C. Instalirajte odgovarajuće python module kako bismo mogli koristiti I2C sučelje u pythonu:

sudo apt-get install python-smbus i2c-tools Sljedeći python kôd omogućava 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 u stanje pripravnosti bus.write_byte_data (adresa, 44, 0x06) # Propusni opseg 6,5Hz bus.write_byte_data (adresa, 45, 0x08) # Idite u 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 karakteristika svjetla koje pravimo je da može otkriti kretanje (ili njegov nedostatak) za ulazak u interaktivni način rada (gdje se svjetlo mijenja na osnovu rotacije) 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:

štampa "preseljeno"

preseljeno = Tačno

drugo:

preseljeno = Netačno

Weather API

Za primanje vremenske prognoze možemo koristiti Yahoo Weather. To uključuje razgovor s Yahoo API -jem za vremensko odmaranje koje može biti prilično složeno. 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 uslove za ovaj trenutak

from weather import Weatherweather = Weather ()

location = weather.lookup_by_location ('dublin')

condition = location.condition ()

ispis (condition.text ())

Spajajući sve zajedno

Cijeli kod 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 kada ga spojimo na napajanje, moramo se pobrinuti da se kôd automatski pokrene tijekom pokretanja. Da bismo to učinili, koristimo alat koji se zove cron.

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

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

Korak 4: Modeliranje i 3D ispis

Modeliranje i 3D štampa
Modeliranje i 3D štampa
Modeliranje i 3D štampa
Modeliranje i 3D štampa

3D model Plus napravljen je u Solidworks -u i sačuvan kao. Stl format. Zatim je za 3D štampanje model. Stl datoteka uvezena u softver Cura. Za izradu svake strane plusa trebalo je 2:30 sati; tako da je svakom punom Plusu trebalo oko 5 sati za štampanje. A za prozirne strane, pleksiglas je laserski izrezan.

Korak 5: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

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

  1. Otkrili smo da su 3D štampane gornje i donje ploče transparentnije nego što se očekivalo. Sloj aluminijske folije riješio je problem curenja svjetlosti.
  2. Međutim, ovi listovi su provodljivi i mogu uzrokovati kratke spojeve unutar našeg nezaštićenog kruga. Dakle, drugi sloj bijele kartonske ploče je zalijepljen na vrh.
  3. Difuzni segmenti od pleksiglasa zalijepljeni su na jednu od bočnih ploča.
  4. U jednoj od bočnih 3D štampanih 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, lemićemo ga na našu ploču za izradu prototipa.
  6. Priključujemo senzor na malinu pi, a zatim ga priključujemo u konektor.
  7. Spajamo 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 želite kasnije promijeniti kôd.

Preporučuje se: