Kazalo:

TfCD - Plus: 7 korakov
TfCD - Plus: 7 korakov

Video: TfCD - Plus: 7 korakov

Video: TfCD - Plus: 7 korakov
Video: TFCD Arduino face tracking device 2024, Julij
Anonim
Image
Image
Sestavine
Sestavine

Plus je minimalna pametna luč, ki ne le obvešča ljudi o vremenskih razmerah, ampak tudi ustvarja prijetno izkušnjo za uporabnike s spremembami barve svetlobe z vrtenjem plus. Njegova oblika daje uporabniku možnost, da združi več modulov plus ali ustvari ogromno svetilko z veliko plus kosov, ki so jih postavili prijatelji. Ta projekt razsvetljave je del tečaja naprednega konceptualnega oblikovanja (ACD) na univerzi TU Delft in tehnologije, ki se uporablja kot praktičen TfCD kot vir navdiha.

Korak: Sestavine

Sestavine
Sestavine
Sestavine
Sestavine

1 malina pi nič w

1 Merilnik pospeška Groove Adxl345

4 LED Ws2812b

1 Plošča za izdelavo prototipov

3D-tiskana in lasersko izrezana ohišja

2. korak: Strojna oprema

Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema

LED

LED diode Neopixel imajo 4 nožice z imenom: +5V, GND, Data In in Data out.

  1. Pin 4 maline pi je priključen na +5V vseh LED
  2. Pin 6 maline pi je povezan z GND vseh LED
  3. Data In pin prve LED diode je priključen na pin 12 na malini pi.
  4. Zatič za izhod podatkov prve LED je povezan s podatki za drugo in tako naprej.

Za boljše razumevanje si oglejte shemo ožičenja.

Merilnik pospeška

Merilnik pospeška ima 4 zatiči z imenom: VCC, GND, SDA in SCL.

  1. Pin 1 maline pi je povezan z VCC.
  2. Pin 3 maline pi je priključen na SCL.
  3. Pin 5 maline pi je povezan s SDA.
  4. Pin 9 maline pi je povezan z GND.

Zgradite

  1. Za udobje je mogoče LED spajkati na ploščo za izdelavo prototipov. Odločili smo se, da ploščo razrežemo v plus, tako da se dobro prilega 3D ohišju.
  2. Ko spajamo LED diode na plošči, spajkamo mostične žice, da vzpostavimo povezavo med 0,1-palčnim priključkom glave in LED-diodami. Konektor za glavo se uporablja za izključitev maline pi, da se odklopi in ponovno uporabi za prihodnji projekt.

3. korak: Programska oprema

Programska oprema
Programska oprema

Slika operacijskega sistema Raspberry Pi

Najprej moramo zagnati Raspberry Pi. Če želite to narediti, sledite tem korakom:

  1. Od tu prenesite najnovejšo različico Raspbiana. Prenesete ga lahko neposredno ali prek torrentov. Za zapisovanje prenesenega operacijskega sistema na kartico SD (kartica micro SD v primeru modelov Raspberry Pi B+ in Raspberry Pi Zero) boste potrebovali zapisovalnik slik.
  2. Zato prenesite "win32 disk imager" od tukaj. Vstavite kartico SD v prenosnik/računalnik in zaženite program za zapisovanje slik. Ko odprete, brskajte in izberite preneseno slikovno datoteko Raspbian. Izberite pravo napravo, to je pogon, ki predstavlja kartico SD. Če se izbrani pogon (ali naprava) razlikuje od kartice SD, bo drugi izbrani pogon poškodovan. Zato bodite previdni.
  3. Po tem kliknite gumb "Napiši" na dnu. Kot primer si oglejte spodnjo sliko, kjer je pogon kartice SD (ali mikro SD) predstavljen s črko "G: \" OS je zdaj pripravljen za običajno uporabo. Vendar bomo v tej vadnici uporabljali Raspberry Pi v načinu brez glave. To pomeni brez fizičnega monitorja in tipkovnice!
  4. Po zapisovanju kartice SD je ne odstranite iz računalnika! Z urejevalnikom besedila odprite datoteko config.txt, ki je na kartici SD. Pojdite na dno in dodajte dtoverlay = dwc2 kot zadnjo vrstico:
  5. Shranite datoteko config.txt kot navadno besedilo in nato odprite cmdline.txt Po rootwaitu (zadnja beseda v prvi vrstici) dodajte presledek in nato moduli-load = dwc2, g_ether.
  6. Zdaj odstranite kartico SD iz računalnika in jo vstavite v Raspberry Pi ter jo s kablom USB povežite z računalnikom. Ko se operacijski sistem zažene, bi morali odkriti novo napravo Ethernet Gadget.
  7. Za povezavo s ploščo in njeno daljinsko upravljanje lahko uporabite ssh [email protected]. Za podrobnejša navodila glede brezglavega delovanja pojdite tukaj.

Knjižnica rpi_ws281x je ključ, ki omogoča uporabo NeoPixels z Raspberry Pi.

Najprej moramo namestiti orodja, potrebna za sestavljanje knjižnice. V vašem zagonu Raspberry Pi: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Zdaj zaženite te ukaze za prenos in prevedbo knjižnice:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Končno, potem ko je knjižnica uspešno prevedena, jo lahko namestimo za python z:

cd python && sudo python setup.py install Zdaj prihaja koda python, ki poganja LED. Koda je precej preprosta z nekaj komentarji, ki vam bodo v pomoč. iz uvoza neopixel * # konfiguracije NeoPixel LED_PIN = 18 # GPIO pin Pin Raspberry Pi, povezan s slikovnimi pikami LED_BRIGHTNESS = 255 # Nastavljen na 0 za najtemnejše in 255 za najsvetlejšo LED_COUNT = 4 # Število LED pikslov = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Inicializirajte knjižnico strip.begin () strip.setPixelColor (0, Color (255, 255, 255)) strip.show ()

Gonilnik ADXL345

Senzor merilnika pospeška, ki smo ga izbrali, ima vmesnik I2C za komunikacijo z zunanjim svetom. Na srečo ima Raspberry Pi tudi vmesnik I2C. Omogočiti mu moramo le uporabo v lastni kodi.

Pokličite konfiguracijsko orodje Raspbian z uporabo sudo raspi-config. Ko se zažene, pojdite na Možnosti vmesnika, Napredne možnosti in nato omogočite I2C. Namestite ustrezne module python, da bomo lahko uporabili vmesnik I2C v pythonu:

sudo apt-get install python-smbus i2c-tools Naslednja koda python nam omogoča komunikacijo s senzorjem merilnika pospeška in branje njegovih vrednosti registra za lastne namene. import smbus import struct # vodilo za konfiguracije merilnika pospeška = smbus. SMBus (1) naslov = 0x53 gain = 3.9e-3 bus.write_byte_data (naslov, 45, 0x00) # Pojdi v način pripravljenosti bus.write_byte_data (naslov, 44, 0x06) # Pasovna širina 6,5 Hz bus.write_byte_data (naslov, 45, 0x08) # Pojdite v način merjenja # Preberite podatke iz senzorja buf = bus.read_i2c_block_data (naslov, 50, 6) # Razpakirajte podatke iz int16_t v python integer data = struct.unpack_from ("> hhh", medpomnilnik (bytearray (buf)), 0)

x = float (podatki [0]) * dobiček

y = float (podatki [1]) * dobiček

z = float (podatki [2]) * dobiček

Detektor gibanja

Ena od značilnosti svetlobe, ki jo ustvarjamo, je, da lahko zazna gibanje (ali pomanjkanje) za vstop v interaktivni način (kjer se svetloba spreminja glede na vrtenje) in način vremenske napovedi (kjer se svetloba spreminja glede na vremensko napoved za danes). Naslednja koda uporablja prejšnjo funkcijo za branje vrednosti pospeškov za 3 osi in nas opozori, ko pride do premika.

accel = getAcceleration ()

dx = abs (prevAccel [0] - pospešek [0])

dy = abs (prevAccel [1] - pospešek [1])

dz = abs (prevAccel [2] - pospešek [2])

če je dx> moveThreshold ali dy To> moveThreshold ali dz> moveThreshold:

tiskanje "premaknjeno"

premaknjeno = res

drugače:

premaknjeno = Napačno

Weather API

Za prejemanje vremenske napovedi lahko uporabimo Yahoo Weather. To vključuje pogovor z API -jem Yahoo Weather Rest, ki je lahko precej zapleten. Na srečo za nas je za trdi del že poskrbljeno v obliki modula weather-api za python.

  1. Najprej moramo namestiti ta modul z uporabo: sudo apt install python-pip && sudo pip install weather-api
  2. Za več informacij o tem modulu obiščite avtorjevo spletno mesto.

Ko namestite, naslednja koda dobi vremenske razmere za ta trenutek

from weather import Weatherweather = Vreme ()

location = weather.lookup_by_location ('dublin')

condition = location.condition ()

tiskanje (condition.text ())

Vse skupaj

Celotno kodo projekta, ki povezuje vse zgornje dele, najdete tukaj.

Samodejni zagon skripta python ob zagonu

Če želite vstaviti malino pi v polje in izvesti njeno kodo vsakič, ko jo priključimo na napajanje, moramo poskrbeti, da se koda med zagonom samodejno zažene. Če želite to narediti, uporabite orodje, imenovano cron.

  1. Najprej pokličite orodje cron z uporabo: sudo crontab -e
  2. V prejšnjih korakih se odpre konfiguracijska datoteka, v katero dodamo naslednjo vrstico:

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

4. korak: Modeliranje in 3D tiskanje

Modeliranje in 3D tiskanje
Modeliranje in 3D tiskanje
Modeliranje in 3D tiskanje
Modeliranje in 3D tiskanje

3D model Plus je izdelan v Solidworks in shranjen kot format. Stl. Nato so za 3D tiskanje model. Stl datoteko uvozili v programsko opremo Cura. Za izdelavo vsake strani plus je trajalo 2:30 ure; tako da je vsak polni Plus natisnil približno 5 ur. Za prozorne stranice pa so lasersko izrezali pleksi steklo.

5. korak: Montaža

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

S 3D -tiskanim delom, elektroniko in programsko opremo pri roki lahko končno sestavimo končni izdelek.

  1. Ugotovili smo, da so zgornje in spodnje 3D tiskane plošče bolj pregledne, kot je bilo pričakovano. Plast aluminijaste folije je rešila problem uhajanja svetlobe.
  2. Vendar so ti listi prevodni in lahko povzročijo kratke stike v našem nezaščitenem vezju. Tako je na vrh zlepljena še ena plast bele kartonske plošče.
  3. Segmenti razpršenega pleksi stekla so zlepljeni na eno od stranskih plošč.
  4. V eni od stranskih 3D tiskanih plošč je izvrtana luknja. Tako lahko gremo skozi napajalni kabel.
  5. Ko je napajalni kabel nameščen skozi luknjo, ga spajkamo na ploščo za izdelavo prototipov.
  6. Senzor pritrdimo na malino pi in ga nato priključimo v priključek.
  7. Dva dela povežemo skupaj, da dobimo končni izdelek.
  8. Po želji lahko lepite 2 kosa, da vzpostavite trajnejšo povezavo. Vendar se zavedajte, da je morda težko vstopiti v škatlo, potem ko je lepljena, če želite kodo spremeniti pozneje.

Priporočena: