Obsah:

TfCD - Plus: 7 krokov
TfCD - Plus: 7 krokov

Video: TfCD - Plus: 7 krokov

Video: TfCD - Plus: 7 krokov
Video: TTMIK Live: вопросы и ответы (трансляция 28 ноября 2017 г.) 2024, Júl
Anonim
Image
Image
Prísady
Prísady

Plus je minimálne inteligentné svetlo, ktoré nielen upozorní ľudí na poveternostné podmienky, ale tiež vytvorí pre užívateľov príjemný zážitok zo zmien farby svetla otáčaním plusu. Jeho tvar dáva používateľovi možnosť kombinovať niekoľko plusových modulov alebo vytvoriť obrovskú lampu s množstvom plusových dielov umiestnených priateľmi. Tento svetelný projekt je súčasťou kurzu Advanced Concept Design (ACD) na univerzite TU Delft a technológie implementovanej pomocou praktického zdroja TfCD ako zdroja inšpirácie.

Krok 1: Prísady

Prísady
Prísady
Prísady
Prísady

1 malina pi nula š

1 akcelerometer Groove Adxl345

4 LED Ws2812b

1 prototypová doska

3D tlačené a laserom rezané skrine

Krok 2: Hardvér

Hardvér
Hardvér
Hardvér
Hardvér
Hardvér
Hardvér
Hardvér
Hardvér

LED diódy

Neopixelové LED diódy majú 4 piny s názvom: +5V, GND, Data In a Data out.

  1. Pin 4 malinového pi je pripojený k +5V všetkých LED diód
  2. Pin 6 malinového pi je pripojený k GND všetkých LED diód
  3. Data In pin prvej LED je pripojený na pin 12 na malinovom pi.
  4. Kolík dátového výstupu prvej diódy LED je pripojený k údajom druhého a tak ďalej.

Pre lepšie pochopenie si pozrite schému zapojenia.

Akcelerometer

Akcelerometer má 4 kolíky s názvom: VCC, GND, SDA a SCL.

  1. Kolík 1 malinového pi je pripojený k VCC.
  2. Pin 3 malinového pi je pripojený k SCL.
  3. Kolík 5 malinového pi je pripojený k SDA.
  4. Kolík 9 malinového pi je pripojený k GND.

Stavať

  1. Pre uľahčenie je možné diódy LED spájkovať na prototypovú dosku. Rozhodli sme sa tabuľu narezať na tvar plusu, aby sa dobre zmestila do 3D puzdra.
  2. Akonáhle sme spájkovali LED diódy na doske, spájkujeme prepojovacie vodiče, aby sme vytvorili prepojenia medzi 0,1 "konektorom a LED diódami. Konektor záhlavia sa používa na odpojenie a opätovné použitie malinového pi pre budúci projekt.

Krok 3: Softvér

Softvér
Softvér

Obrázok operačného systému Raspberry Pi

Najprv musíme uviesť Raspberry Pi do prevádzky. Ak to chcete urobiť, postupujte podľa týchto krokov:

  1. Odtiaľto si stiahnite najnovšiu verziu Raspbian. Môžete si ho stiahnuť priamo alebo cez torrenty. Na zápis stiahnutého operačného systému na kartu SD budete potrebovať program na vytváranie obrázkov (karta micro SD v prípade modelov Raspberry Pi B+ a Raspberry Pi Zero).
  2. Preto si odtiaľto stiahnite „zobrazovač diskov win32“. Vložte kartu SD do prenosného počítača/počítača a spustite zapisovač obrázkov. Po otvorení prehľadajte a vyberte stiahnutý súbor s obrázkom Raspbian. Vyberte správne zariadenie, ktorým je jednotka predstavujúca kartu SD. Ak sa zvolená jednotka (alebo zariadenie) líši od karty SD, druhá vybraná jednotka sa poškodí. Buď opatrný.
  3. Potom kliknite na tlačidlo „Napísať“v spodnej časti. Príklad: obrázok nižšie, kde je jednotka karty SD (alebo micro SD) reprezentovaná písmenom „G: \“OS je teraz pripravený na bežné použitie. V tomto návode však použijeme Raspberry Pi v bezhlavom režime. To znamená bez fyzického monitora a pripojenej klávesnice!
  4. Po napálení kartu SD nevyberajte z počítača! Pomocou textového editora otvorte súbor config.txt, ktorý je na karte SD. Prejdite nadol a ako posledný riadok pridajte dtoverlay = dwc2:
  5. Uložte súbor config.txt ako obyčajný text a potom otvorte cmdline.txt Po rootwait (posledné slovo v prvom riadku) pridajte medzeru a potom moduly-load = dwc2, g_ether.
  6. Teraz vyberte kartu SD z počítača, vložte ju do Raspberry Pi a pripojte ju k počítaču pomocou kábla USB. Akonáhle sa operačný systém spustí, mali by ste vidieť, ako sa objavuje nové zariadenie Ethernet Gadget.
  7. Na pripojenie k doske a diaľkové ovládanie môžete použiť ssh [email protected]. Podrobnejšie pokyny týkajúce sa bezhlavého ovládania nájdete tu. Neopixel Driver

Knižnica rpi_ws281x je kľúčom, ktorý umožňuje používanie NeoPixels s Raspberry Pi.

Najprv musíme nainštalovať nástroje potrebné na zostavenie knižnice. Pri spustení Raspberry Pi: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Teraz spustením týchto príkazov stiahnete a skompilujete knižnicu:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Nakoniec, keď bola knižnica úspešne zostavená, môžeme ju nainštalovať pre python pomocou:

cd python && sudo python setup.py install Teraz prichádza kód pythonu, ktorý poháňa diódy LED. Kód je pomerne jednoduchý s niekoľkými komentármi, ktoré vám pomôžu. z importu neopixelu * # konfigurácie NeoPixel LED_PIN = 18 # GPIO pin Raspberry Pi pripojený k pixelom LED_BRIGHTNESS = 255 # nastavený na 0 pre najtmavší a 255 pre najjasnejší LED_COUNT = 4 # počet pásikov pixelov LED = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Inicializujte knižnicu strip.begin () strip.setPixelColor (0, Color (255, 255, 255)) strip.show ()

Ovládač ADXL345

Senzor akcelerometra, ktorý sme vybrali, má interfae I2C na komunikáciu s vonkajším svetom. Našťastie pre nás má Raspberry Pi aj rozhranie I2C. Musíme mu povoliť používanie v našom vlastnom kóde.

Zavolajte konfiguračný nástroj Raspbian pomocou sudo raspi-config. Po spustení prejdite na Možnosti rozhrania, Rozšírené možnosti a potom povoľte I2C. Nainštalujte príslušné moduly pythonu, aby sme mohli používať rozhranie I2C v pythone:

sudo apt-get install python-smbus i2c-tools Nasledujúci kód pythonu nám umožňuje komunikovať so senzorom akcelerometra a čítať jeho hodnoty registra pre naše vlastné účely. import smbus import struct # Konfigurácia akcelerometra bus = smbus. SMBus (1) adresa = 0x53 zisk = 3,9e-3 bus.write_byte_data (adresa, 45, 0x00) # Prejdite do pohotovostného režimu bus.write_byte_data (adresa, 44, 0x06) # Šírka pásma 6,5 Hz bus.write_byte_data (adresa, 45, 0x08) # Prejdite do režimu merania # Načítajte údaje zo senzora buf = bus.read_i2c_block_data (adresa, 50, 6) # Rozbaľte údaje z int16_t do pythonu celočíselné údaje = struct.unpack_from ("> hhh", buffer (bytearray (buf)), 0)

x = float (údaje [0]) * zisk

y = float (údaje [1]) * zisk

z = float (údaje [2]) * zisk

Detektor pohybu

Jednou z vlastností svetla, ktoré vytvárame, je to, že dokáže detekovať pohyb (alebo jeho nedostatok), aby vstúpil do interaktívneho režimu (kde sa svetlo mení na základe rotácie) a režimu predpovede počasia (kde sa svetlo mení v závislosti od predpovede počasia pre dnešok). Nasledujúci kód používa predchádzajúcu funkciu na čítanie hodnôt zrýchlenia pre 3 osi a upozorňuje nás na pohyb.

accel = getAcceleration ()

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

dy = abs (predchádzajúciAccel [1] - zrýchlený [1])

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

ak dx> moveThreshold alebo dy To> moveThreshold alebo dz> moveThreshold:

vytlačiť 'presunuté'

presunuté = Pravda

inak:

pohnutý = Nepravda

Počasie API

Na získanie predpovede počasia môžeme použiť počasie Yahoo. To zahŕňa rozhovor s rozhraním Yahoo Weather Rest API, ktoré môže byť dosť zložité. Našťastie pre nás, o ťažkú časť je už postarané v podobe modulu weather-api pre python.

  1. Najprv musíme nainštalovať tento modul pomocou: sudo apt install python-pip && sudo pip install weather-api
  2. Ďalšie informácie o tomto module nájdete na webových stránkach autora.

Po inštalácii nasledujúci kód zistí aktuálne počasie

z importu počasia Weatherweather = Weather ()

location = weather.lookup_by_location ('dublin')

podmienka = umiestnenie.podmienka ()

vytlačiť (condition.text ())

Dávať to všetko dokopy

Celý kód projektu, ktorý spája všetky vyššie uvedené časti, nájdete tu.

Automatické spustenie skriptu python pri štarte

Aby sme mohli vložiť malinový pi do škatule a nechať ho spustiť náš kód vždy, keď ho pripojíme k napájaniu, musíme zabezpečiť, aby sa kód automaticky spustil počas zavádzania. Na to používame nástroj s názvom cron.

  1. Najprv zavolajte nástroj cron pomocou: sudo crontab -e
  2. Predchádzajúce kroky otvoria konfiguračný súbor, do ktorého pridáme nasledujúci riadok:

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

Krok 4: Modelovanie a 3D tlač

Modelovanie a 3D tlač
Modelovanie a 3D tlač
Modelovanie a 3D tlač
Modelovanie a 3D tlač

3D model Plus bol vyrobený v Solidworks a uložený vo formáte. Stl. Potom pre 3D tlač modelu bol súbor. Stl importovaný do softvéru Cura. Výroba každej strany plusu trvala 2:30 hodiny; takže vytlačenie každého úplného plusu trvalo asi 5 hodín. A pre priehľadné strany boli plexisklo rezané laserom.

Krok 5: Zostavenie

zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie

Vďaka 3D tlačenej časti, elektronike a softvéru po ruke môžeme konečne zostaviť konečný produkt.

  1. 3D tlačené horné a dolné dosky sme zistili, že sú transparentnejšie, ako sa očakávalo. Vrstva hliníkovej fólie vyriešila problém s únikom svetla.
  2. Tieto listy sú však vodivé a môžu spôsobiť skrat v našom nechránenom obvode. Na vrch je teda prilepená ďalšia vrstva bielej lepenky.
  3. Difúzne segmenty z plexiskla sú prilepené k jednej z bočných dosiek.
  4. V jednom z bočných panelov s 3D tlačou je vyvŕtaná diera. To preto, aby sme mohli prejsť napájacím káblom.
  5. Akonáhle je napájací kábel prevlečený otvorom, spájkujeme ho s prototypovou doskou.
  6. Pripevníme snímač k malinovému pi a potom ho zapojíme do konektora.
  7. 2 kusy spojíme dohromady, aby sme získali konečný produkt.
  8. Voliteľne môžete lepiť 2 kusy, aby ste vytvorili trvalejšie spojenie. Uvedomte si však, že ak budete chcieť kód neskôr zmeniť, môže byť ťažké dostať sa do škatule po jej nalepení.

Odporúča: