Tartalomjegyzék:

TfCD - Plus: 7 lépés
TfCD - Plus: 7 lépés

Videó: TfCD - Plus: 7 lépés

Videó: TfCD - Plus: 7 lépés
Videó: TFCD Arduino face tracking device 2024, Július
Anonim
Image
Image
Hozzávalók
Hozzávalók

A Plus egy minimális intelligens lámpa, amely nemcsak értesíti az embereket az időjárási viszonyokról, hanem élvezetes élményt nyújt a felhasználók számára a fény színének változtatásával a plusz elforgatásával. Formája lehetővé teszi a felhasználó számára, hogy több plusz modult kombináljon, vagy egy hatalmas lámpát hozzon létre, sok baráti elhelyezett plusz darabbal. Ez a világítási projekt része a TU Delft Egyetem Advanced Concept Design (ACD) tanfolyamának, és a technológia, amelyet a TfCD gyakorlati alkalmazásával valósítottak meg inspirációként.

1. lépés: Hozzávalók

Hozzávalók
Hozzávalók
Hozzávalók
Hozzávalók

1 málna pi nulla w

1 Groove Adxl345 gyorsulásmérő

4 Ws2812b LED

1 Prototípus -tábla

3D nyomtatott és lézerrel vágott burkolatok

2. lépés: Hardver

Hardver
Hardver
Hardver
Hardver
Hardver
Hardver
Hardver
Hardver

LED -ek

A Neopixel LED -ek 4 tűvel rendelkeznek: +5V, GND, Data In és Data out.

  1. A málna pi 4. tűje az összes LED +5V -ra van csatlakoztatva
  2. A málna pi 6. tűje az összes LED GND -jéhez van csatlakoztatva
  3. Data In pin az első LED csatlakozik a 12. tű a málna pi.
  4. Az első LED adatkimeneti érintkezője csatlakozik a második adatbevitelhez és így tovább.

Kérjük, nézze meg a kapcsolási rajzot a jobb megértés érdekében.

Gyorsulásmérő

A gyorsulásmérő 4 tűvel rendelkezik: VCC, GND, SDA és SCL.

  1. A málna pi 1. csapja csatlakozik a VCC -hez.
  2. A málna pi 3. csapja az SCL -hez van csatlakoztatva.
  3. A málna pi 5. tűje az SDA -hoz van csatlakoztatva.
  4. A málna pi 9. csapja a GND -hez van csatlakoztatva.

Épít

  1. A kényelem érdekében a LED -ek forraszthatók egy prototípus -táblára. Úgy döntöttünk, hogy a táblát plusz alakúra vágjuk, hogy jól illeszkedjen a 3D -s házba.
  2. Miután forrasztottuk a LED-eket a táblán, áthidaló vezetékeket forrasztunk, hogy létrejöjjenek a kapcsolatok a 0,1 "-os fejléccsatlakozás és a LED-ek között. A fejléc-csatlakozó lehetővé teszi a málna pi leválasztását és újbóli használatát egy jövőbeli projekthez.

3. lépés: Szoftver

Szoftver
Szoftver

Raspberry Pi operációs rendszer képe

Először be kell indítanunk a Raspberry Pi -t. Ehhez kövesse az alábbi lépéseket:

  1. Töltse le a Raspbian legújabb verzióját innen. Letöltheti közvetlenül vagy a torrenteken keresztül. A letöltött operációs rendszer SD -kártyára (micro SD kártya Raspberry Pi B+ modell és Raspberry Pi Zero esetén) írógépre lesz szüksége.
  2. Tehát innen töltse le a "win32 lemezképet". Helyezze be az SD -kártyát a laptopba/számítógépbe, és futtassa a képírót. Miután megnyitotta, böngésszen és válassza ki a letöltött Raspbian képfájlt. Válassza ki a megfelelő eszközt, azaz az SD -kártyát képviselő meghajtót. Ha a kiválasztott meghajtó (vagy eszköz) eltér az SD -kártyától, akkor a másik kiválasztott meghajtó megsérül. Szóval légy óvatos.
  3. Ezt követően kattintson az alsó "Írás" gombra. Példaként lásd az alábbi képet, ahol az SD -kártya (vagy micro SD) meghajtót a "G" betű jelöli. Az operációs rendszer most készen áll a normál használatra. Ebben az oktatóanyagban azonban a Raspberry Pi -t fej nélküli módban fogjuk használni. Ez azt jelenti, hogy nincs fizikai monitor és billentyűzet csatlakoztatva!
  4. Az SD -kártya elégetése után ne vegye ki a számítógépből! Szövegszerkesztővel nyissa meg az SD -kártyán található config.txt fájlt. Menjen az aljára, és adja hozzá a dtoverlay = dwc2 címet az utolsó sorhoz:
  5. Mentse a config.txt fájlt egyszerű szövegként, majd nyissa meg a cmdline.txt fájlt. A rootwait (az első sor utolsó szava) után adjon hozzá egy szóközt, majd a modules-load = dwc2, g_ether.
  6. Most vegye ki az SD -kártyát a számítógépről, helyezze be a Raspberry Pi -be, és csatlakoztassa a számítógéphez USB -kábel segítségével. Miután az operációs rendszer elindult, látnia kell egy új Ethernet Gadget eszközt.
  7. Az ssh [email protected] segítségével csatlakozhat a táblához, és távolról vezérelheti. A fej nélküli működésre vonatkozó részletesebb utasításokért kattintson ide.

Az rpi_ws281x könyvtár az a kulcs, amely lehetővé teszi a NeoPixels és a Raspberry Pi használatát.

Először telepítenünk kell a könyvtár összeállításához szükséges eszközöket. A Raspberry Pi futtatásakor: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Most futtassa ezeket a parancsokat a könyvtár letöltéséhez és fordításához:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Végül, miután a könyvtár sikeresen le lett fordítva, telepíthetjük a python számára a következő használatával:

cd python && sudo python setup.py install Most jön a python kód, amely a LED -eket hajtja. A kód meglehetősen egyszerű, néhány megjegyzés segíthet. a neopixel importálásból * # NeoPixel konfigurációk LED_PIN = 18 # A Raspberry Pi GPIO csapja a pixelekhez csatlakozik 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Inicializálja a könyvtár strip.begin () strip.setPixelColor (0, Color (255, 255, 255)) strip.show ()

ADXL345 illesztőprogram

Az általunk kiválasztott gyorsulásmérő érzékelő I2C interfésszel rendelkezik a külvilággal való kommunikációhoz. Szerencsénkre a Raspberry Pi rendelkezik I2C interfésszel is. Csak engedélyeznünk kell, hogy saját kódunkban használhassa.

Hívja a Raspbian konfigurációs eszközt a sudo raspi-config használatával. Futtatás után lépjen az Interfészbeállítások, Speciális beállítások lehetőségre, majd engedélyezze az I2C -t. Telepítse a megfelelő python -modulokat, hogy használhassuk az I2C felületet a pythonban:

sudo apt-get install python-smbus i2c-tools Az alábbi python-kód lehetővé teszi számunkra, hogy kommunikáljunk a gyorsulásmérő érzékelőjével, és saját célra olvassuk be a regiszter értékeit. import smbus import szerkezet # Gyorsulásmérő konfigurációk busz = smbus. SMBus (1) cím = 0x53 erősítés = 3.9e-3 bus.write_byte_data (cím, 45, 0x00) # Lépjen készenléti módba bus.write_byte_data (cím, 44, 0x06) # Sávszélesség 6,5 Hz bus.write_byte_data (cím, 45, 0x08) # Lépjen mérési módba # Olvassa el az adatokat az érzékelőből buf = bus.read_i2c_block_data (cím, 50, 6) # Csomagolja ki az adatokat az int16_t -ból a python egész számra data = structure.unpack_from ("> hhh", puffer (bytearray (buf)), 0)

x = lebegés (adat [0]) * erősítés

y = lebegés (adat [1]) * nyereség

z = lebegés (adat [2]) * erősítés

Mozgásérzékelő

Az általunk készített fény egyik jellemzője, hogy képes érzékelni a mozgást (vagy annak hiányát), hogy interaktív módba (ahol a fény a forgás alapján változik) és időjárás -előrejelzési módba (ahol a fény az időjárás előrejelzésétől függően változik) mai napra). A következő kód az előző funkciót használja a 3 tengely gyorsulási értékeinek leolvasására, és figyelmeztetésre, ha mozgás történik.

accel = getAcceleration ()

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

dy = has (prevAccel [1] - accel [1])

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

ha dx> moveThreshold vagy dy To> moveThreshold vagy dz> moveThreshold:

nyomtatás "áthelyezve"

költözött = Igaz

más:

költözött = hamis

Időjárás API

Az időjárás -előrejelzéshez használhatjuk a Yahoo Weather -t. Ez magában foglalja a Yahoo Weather Rest API -val való beszélgetést, amely meglehetősen bonyolult lehet. Szerencsére számunkra a kemény részről már gondoskodunk a pythonhoz tartozó weather-api modul formájában.

  1. Először telepítenünk kell ezt a modult a következő használatával: sudo apt install python-pip && sudo pip install weather-api
  2. Kérjük, látogasson el a szerző webhelyére, ha további információra van szüksége erről a modulról.

A telepítés után a következő kód megkapja az adott időjárási körülményeket

időjárás importból Weatherweather = Időjárás ()

location = weather.lookup_by_location ('dublin')

feltétel = location.condition ()

nyomtatás (condition.text ())

Összerakni az egészet

A projekt teljes kódja, amely összeköti a fenti darabokat, megtalálható itt.

A python szkript automatikus indítása a rendszerindításkor

Ahhoz, hogy be tudjuk rakni a málna pi -t egy dobozba, és lefuttassa a kódunkat minden alkalommal, amikor csatlakoztatjuk a hálózathoz, meg kell győződnünk arról, hogy a kód automatikusan elindul a rendszerindítás során. Ehhez egy cron nevű eszközt használunk.

  1. Először hívja meg a cron eszközt a következő használatával: sudo crontab -e
  2. Az előző lépések megnyitnak egy konfigurációs fájlt, amelyhez hozzáadjuk a következő sort:

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

4. lépés: Modellezés és 3D nyomtatás

Modellezés és 3D nyomtatás
Modellezés és 3D nyomtatás
Modellezés és 3D nyomtatás
Modellezés és 3D nyomtatás

A Plus 3D modellje Solidworks -ben készült, és. Stl formátumban mentésre került. Ezután a 3D nyomtatáshoz a. Stl fájlt importálták a Cura szoftverbe. A plusz mindkét oldalának elkészítése 2:30 órát vett igénybe; így minden teljes Plus nyomtatása körülbelül 5 órát vett igénybe. Az átlátszó oldalakhoz pedig a plexit lézerrel vágták.

5. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

A 3D nyomtatott résszel, a kéznél lévő elektronikával és szoftverrel végre összeállíthatjuk a végterméket.

  1. A 3D nyomtatott felső és alsó lemezeket a vártnál átláthatóbbnak találtuk. Egy réteg alumínium fólia megoldotta a fényszivárgás problémáját.
  2. Ezek a lemezek azonban vezetőképesek, és rövidzárlatot okozhatnak a nem védett áramkörünkben. Tehát egy másik réteg fehér kártyalap van ragasztva a tetejére.
  3. A diffúz plexi szegmenseket az egyik oldallapra ragasztják.
  4. Az egyik oldalsó 3D nyomtatott panelben lyukat fúrnak. Ez azért van, hogy át tudjunk menni a tápkábelen.
  5. Miután a tápkábelt áthelyezték a lyukon, forrasztjuk rá a prototípus -táblára.
  6. Az érzékelőt a málna pi -hez rögzítjük, majd bedugjuk a csatlakozóba.
  7. A 2 darabot összeillesztjük, hogy megkapjuk a végterméket.
  8. Opcionálisan ragaszthatja a 2 darabot, hogy tartósabb legyen a kapcsolat. Ne feledje azonban, hogy ha nehéz megváltoztatni a kódot, lehet, hogy nehéz bejutni a dobozba a ragasztás után.

Ajánlott: