Obsah:

TfCD - Plus: 7 kroků
TfCD - Plus: 7 kroků

Video: TfCD - Plus: 7 kroků

Video: TfCD - Plus: 7 kroků
Video: TFCD Arduino face tracking device 2024, Červenec
Anonim
Image
Image
Ingredience
Ingredience

Plus je minimální chytré světlo, které nejen upozorní lidi na povětrnostní podmínky, ale také vytvoří příjemný zážitek pro uživatele změnami provedenými v barvě světla otáčením plusu. Jeho tvar dává uživateli příležitost kombinovat několik plus modulů nebo vytvořit obrovskou lampu se spoustou plusových kusů umístěných přáteli. Tento osvětlovací projekt je součástí kurzu Advanced Concept Design (ACD) na univerzitě TU Delft a technologie implementované pomocí praktického zdroje TfCD jako zdroje inspirace.

Krok 1: Ingredience

Ingredience
Ingredience
Ingredience
Ingredience

1 Raspberry pi nula w

1 akcelerometr Groove Adxl345

4 LED Ws2812b

1 prototypová deska

3D tištěné a laserem řezané skříně

Krok 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

LED diody

LED diody Neopixel mají 4 piny s názvem: +5V, GND, Data In a Data out.

  1. Pin 4 Raspberry Pi je připojen k +5V všech LED diod
  2. Pin 6 Raspberry Pi je připojen ke GND všech LED diod
  3. Data In pin první LED je připojena ke kolíku 12 na malinovém pi.
  4. Datový výstupní kolík první LED diody je připojen k datovým vstupům druhé a tak dále.

Pro lepší pochopení se prosím podívejte na schéma zapojení.

Akcelerometr

Akcelerometr má 4 piny s názvem: VCC, GND, SDA a SCL.

  1. Pin 1 Raspberry Pi je připojen k VCC.
  2. Pin 3 Raspberry Pi je připojen k SCL.
  3. Pin 5 Raspberry Pi je připojen k SDA.
  4. Pin 9 Raspberry Pi je připojen k GND.

Stavět

  1. Pro pohodlí lze LED diody pájet na prototypovou desku. Rozhodli jsme se nastříhat desku do tvaru plusu, aby dobře pasovala do 3D navrženého pouzdra.
  2. Jakmile připájíme LED diody na desku, pájíme propojovací vodiče, abychom vytvořili spojení mezi 0,1 "konektorem a LED diodami. Konektor záhlaví slouží k odpojení a opětovnému použití malinového pi pro budoucí projekt.

Krok 3: Software

Software
Software

Obrázek operačního systému Raspberry Pi

Nejprve musíme Raspberry Pi uvést do provozu. Postupujeme takto:

  1. Stáhněte si nejnovější verzi Raspbian odtud. Můžete si jej stáhnout přímo nebo přes torrenty. K zápisu staženého OS na kartu SD budete potřebovat zapisovač obrázků (karta micro SD v případě modelu Raspberry Pi B+ a Raspberry Pi Zero).
  2. Stáhněte si tedy „imager disku win32“odtud. Vložte kartu SD do notebooku/počítače a spusťte zapisovač obrázků. Po otevření procházejte a vyberte stažený soubor obrázku Raspbian. Vyberte správné zařízení, tj. Disk představující kartu SD. Pokud se vybraný disk (nebo zařízení) liší od karty SD, dojde k poškození druhého vybraného disku. Buď opatrný.
  3. Poté klikněte na tlačítko „Napsat“ve spodní části. Jako příklad viz obrázek níže, kde je jednotka karty SD (nebo micro SD) reprezentována písmenem „G: \“OS je nyní připraven k normálnímu použití. V tomto tutoriálu však použijeme Raspberry Pi v bezhlavém režimu. To znamená bez fyzického monitoru a připojené klávesnice!
  4. Po vypálení kartu SD nevyjímejte z počítače! Pomocí textového editoru otevřete soubor config.txt, který je na kartě SD. Přejděte dolů a jako poslední řádek přidejte dtoverlay = dwc2:
  5. Uložte soubor config.txt jako prostý text a poté otevřete cmdline.txt Po rootwait (poslední slovo na prvním řádku) přidejte mezeru a poté moduly-load = dwc2, g_ether.
  6. Nyní vyjměte kartu SD z počítače a vložte ji do Raspberry Pi a připojte ji k počítači pomocí kabelu USB. Jakmile se operační systém spustí, měli byste vidět objevování nového zařízení Ethernet Gadget.
  7. K připojení k desce a jejímu dálkovému ovládání můžete použít ssh [email protected]. Podrobnější pokyny týkající se bezhlavého ovládání najdete zde. Neopixel Driver

Knihovna rpi_ws281x je klíčem, který umožňuje použití NeoPixels s Raspberry Pi.

Nejprve musíme nainstalovat nástroje potřebné ke kompilaci knihovny. Ve vašem běhu Raspberry Pi: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Nyní spusťte tyto příkazy pro stažení a kompilaci knihovny:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Nakonec, když byla knihovna úspěšně zkompilována, můžeme ji nainstalovat pro python pomocí:

cd python && sudo python setup.py install Nyní přichází kód pythonu, který pohání LED diody. Kód je poměrně jednoduchý s několika komentáři, které vám pomohou. z importu neopixelu * # konfigurace NeoPixel LED_PIN = 18 # GPIO pin Raspberry Pi připojený k pixelům LED_BRIGHTNESS = 255 # nastaveno na 0 pro nejtmavší a 255 pro nejjasnější LED_COUNT = 4 # počet LED pixelů = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Inicializujte knihovnu strip.begin () strip.setPixelColor (0, Color (255, 255, 255)) strip.show ()

Ovladač ADXL345

Senzor akcelerometru, který jsme vybrali, má interfae I2C pro komunikaci s vnějším světem. Naštěstí pro nás má Raspberry Pi také rozhraní I2C. Jen ji musíme povolit, aby ji používala v našem vlastním kódu.

Zavolejte konfigurační nástroj Raspbian pomocí sudo raspi-config. Po spuštění přejděte na Možnosti rozhraní, Rozšířené možnosti a poté povolte I2C. Nainstalujte příslušné moduly pythonu, abychom mohli použít rozhraní I2C v pythonu:

sudo apt-get install python-smbus i2c-tools Následující kód pythonu nám umožňuje komunikovat se snímačem akcelerometru a číst jeho hodnoty registru pro vlastní účely. import smbus import struct # konfigurace akcelerometru bus = smbus. SMBus (1) adresa = 0x53 zisk = 3,9e-3 bus.write_byte_data (adresa, 45, 0x00) # Přejít do pohotovostního režimu bus.write_byte_data (adresa, 44, 0x06) # Šířka pásma 6,5 Hz bus.write_byte_data (adresa, 45, 0x08) # Přejít do režimu měření # Číst data ze senzoru buf = bus.read_i2c_block_data (adresa, 50, 6) # Rozbalit data z int16_t do pythonu celá data = struct.unpack_from ("> hhh", buffer (bytearray (buf)), 0)

x = float (data [0]) * zisk

y = float (data [1]) * zisk

z = float (data [2]) * zisk

Detektor pohybu

Jednou z funkcí světla, které vytváříme, je to, že dokáže detekovat pohyb (nebo jeho nedostatek) pro přechod do interaktivního režimu (kde se světlo mění na základě rotace) a režimu předpovědi počasí (kde se světlo mění v závislosti na předpovědi počasí pro dnešek). Následující kód používá předchozí funkci ke čtení hodnot zrychlení pro 3 osy a upozorňuje nás na pohyb.

accel = getAcceleration ()

dx = abs (předchozíAccel [0] - accel [0])

dy = abs (předchozí Acccel [1] - zrychlení [1])

dz = abs (předchozí Acccel [2] - zrychlení [2])

pokud dx> moveThreshold nebo dy To> moveThreshold nebo dz> moveThreshold:

tisk 'přesunut'

přesunuto = Pravda

jiný:

přesunuto = Nepravda

Počasí API

K získání předpovědi počasí můžeme použít Yahoo Weather. To zahrnuje rozhovor s rozhraním Yahoo Weather Rest API, které může být poměrně složité. Naštěstí pro nás je o tu těžkou část již postaráno v podobě modulu weather-api pro python.

  1. Nejprve musíme nainstalovat tento modul pomocí: sudo apt install python-pip && sudo pip install weather-api
  2. Další informace o tomto modulu najdete na webových stránkách autora.

Po instalaci následující kód získá pro tuto chvíli povětrnostní podmínky

z importu počasí Weatherweather = Počasí ()

location = weather.lookup_by_location ('dublin')

podmínka = umístění.podmínka ()

tisk (podmínka.text ())

Dát to všechno dohromady

Celý kód projektu, který spojuje všechny výše uvedené části, najdete zde.

Automatické spuštění skriptu pythonu při spuštění

Abychom mohli dát malinový pi do krabice a nechat jej spustit náš kód pokaždé, když jej připojíme k napájení, musíme zajistit, aby se kód automaticky spustil během bootování. K tomu používáme nástroj s názvem cron.

  1. Nejprve zavolejte nástroj cron pomocí: sudo crontab -e
  2. Předchozí kroky otevřou konfigurační soubor, do kterého přidáme následující řádek:

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

Krok 4: Modelování a 3D tisk

Modelování a 3D tisk
Modelování a 3D tisk
Modelování a 3D tisk
Modelování a 3D tisk

3D model Plus byl vytvořen v Solidworks a uložen ve formátu. Stl. Poté byl pro 3D tisk modelu importován soubor. Stl do softwaru Cura. Výroba každé strany plusu trvala 2:30 hodiny; takže každý celý Plus trval asi 5 hodin k vytištění. A pro průhledné strany byly plexisklo řezáno laserem.

Krok 5: Montáž

Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění

S 3D vytištěnou částí, elektronikou a softwarem po ruce, můžeme konečně sestavit konečný produkt.

  1. Zjistili jsme, že 3D a horní a spodní desky jsou transparentnější, než se očekávalo. Vrstva hliníkové fólie vyřešila problém úniku světla.
  2. Tyto listy jsou však vodivé a mohou způsobit zkrat v našem nechráněném obvodu. Na vrch je tedy nalepena další vrstva bílé lepenky.
  3. Difúzní segmenty z plexiskla jsou přilepeny k jedné z bočních desek.
  4. V jednom z bočních 3D tištěných panelů je vyvrtána díra. To proto, abychom mohli projít napájecím kabelem.
  5. Jakmile je napájecí kabel protažen otvorem, připájíme jej na prototypovací desku.
  6. Senzor připevníme na malinový pi a poté zapojíme do konektoru.
  7. 2 kusy spojíme dohromady, abychom získali konečný produkt.
  8. Volitelně můžete lepit 2 kusy, abyste vytvořili trvalejší spojení. Uvědomte si však, že pokud budete chtít kód později změnit, může být obtížné dostat se do krabice poté, co je zavřený.

Doporučuje: