Tartalomjegyzék:

Készítsen jobb Raspberry Pi bekapcsológombot: 4 lépés
Készítsen jobb Raspberry Pi bekapcsológombot: 4 lépés

Videó: Készítsen jobb Raspberry Pi bekapcsológombot: 4 lépés

Videó: Készítsen jobb Raspberry Pi bekapcsológombot: 4 lépés
Videó: Мини ПК AC8-N на Intel N100 - часть 3. Proxmox, Home Assistant OS 2024, November
Anonim
Image
Image

Nagyon könnyű elkészíteni a Raspberry kikapcsolási vagy leállítási gombját. Rengeteg ilyen projekt található a weben, és néhány itt az Instructables -en, de egyikük sem (látom) megmondja, hogy a Pi valóban befejezte -e a leállást, és ezért biztonságosan lekapcsolhatja az energiát. Valójában nem is ismerik el, hogy a gombnyomást látták.

Vannak projektek a leállított Pi újraindítására is, de ezek sem adnak vizuális visszajelzést.

De kinek kell ilyen gomb? Ha egy kicsit olyan bunkó vagy, mint én, vagy csak egy törekvő nerd, akkor bármikor bejelentkezhetsz a Pi -be helyben vagy a hálózaton keresztül, és most beírod a sudo shutdown -h parancsot. De ha nem műszaki felhasználók számára készít egy projektet, akkor ez nem fog menni. Igaz, szinte mindig megúszhatja a tápkábel meghúzásával, de vegye figyelembe, hogy szinte mindig azt mondtam! Előbb -utóbb mindenkinek elfogy a szerencse. Az SD -kártya csak a múlt héten halt meg rajtam, bár soha nem fogom megtudni, hogy ez valóban hirtelen áramkimaradás miatt történt -e vagy sem.

Esetemben hozzá kellett adnom egy bekapcsoló gombot egy olyan Pi -hez, amelyet midi szekvenszerként használunk himnuszok és dalok rögzítésére és lejátszására a templomban, amikor nincs élő zongorista. Mindig be tudom írni a leállítás parancsot, de le kell vonnom a készségeket, ha nem vagyok ott.

Itt nem az a szándékom, hogy készterméket adjak Önnek, gyönyörű 3D nyomtatott tokkal kiegészítve, mint sok más utasítás. Mindenki másképp fogja használni, vagy be akarja építeni a saját projektjébe. Inkább beállítom a technológiát, amelyet hozzáadhat a projekthez, legyen az médiaközpont, IoT -eszköz vagy bármi más.

(A videóban ezt mutatom be egy Pi Zero v1.2 -vel és egy monitorral, amelyet egy újratervezett laptop képernyőjéről és egy távol -keleti vezérlőből készítettem.)

1. lépés: A tervezés

Hogyan működik
Hogyan működik

A bekapcsológombom ezt teszi az Ön számára:

  • Amikor a Pi fut, egy LED folyamatosan világít. Ha manuálisan kapcsolja ki, a LED csak akkor kialszik, ha biztonságosan ki tudja húzni az áramellátást.
  • Futás közben, ha legalább egy másodpercig lenyomja a gombot, a készülék lekapcsol, és a LED másodpercenként negyed másodpercig villog, amíg biztonságosan ki nem húzza a hálózati csatlakozót.
  • Leállítási állapotból (ha az áramellátást nem szüntették meg) a gomb megnyomása elindítja a rendszerindítást, és másodpercenként negyed másodpercig felvillan a LED, amíg fel nem indul. (Kicsit tovább tarthat, amíg minden szolgáltatás, például az ssh és a vnc fut.)

Az alkatrészek nagyon olcsók. Minden, amire szükséged van:

  • ATTiny85 (Arduino-kompatibilis chip)
  • 3 ellenállás: 2 x 330Ω és 1 x 10kΩ
  • 1 LED - zöldet vagy kéket javaslok, de ez a választás
  • kenyérlap és jumper vezetékek, vagy szalagdeszka, vagy akárhogyan is szeretné megépíteni.

2. lépés: Hogyan működik?

Mint minden Pi bekapcsológomb esetében, ez is egy GPIO tűt húz alacsony állapotba, hogy leállási kérést jelezzen a Pi -n futó segítő programnak. GPIO4 -et használtam (7 -es tű), de bármilyen más tűt is használhat.

Az egyetlen módja annak, hogy megállapítsuk, hogy a Pi befejezte a leállítást, ha megnézi a TxD 8 -as érintkezőjét, amely aztán lemerül. Ez attól függ, hogy a soros konzol engedélyezve van -e, ez alapértelmezés szerint. Valójában a TxD rendszeresen fel és le fog emelkedni, miközben soros konzolként használják, de soha nem csökken alacsonyan 30 ms -nál hosszabb ideig, még a leglassabb közös átviteli sebességnél sem. Továbbra is használható soros konzolhoz, mivel csak passzívan figyeljük.

Az újraindításhoz röviden le kell húznunk az SCL1 -et (5. tű). Ezt a csapot bármely I2C eszköz használja (beleértve a midi interfészemet is), de a rendszerindítás elindítása után békén hagyjuk.

A legtöbb bonyolultság az Arduino vázlatban rejlik, amelyet betöltünk az ATTiny85 -be. Ez egy "állapotgépet" valósít meg - egy nagyon hasznos és hatékony módot bármilyen probléma kódolására, amelyet számos "állapot" képviselhet. A mosógép ugyanúgy működik. Az állapotok jelzik a mosási ciklus szakaszát, és mindegyik meghatározza, hogy a gépnek mit kell tennie ezen a ponton (motorok vagy szivattyúk működtetése, szelepek nyitása vagy zárása) és milyen érzékelő bemenetek (hőmérséklet, vízszint, időzítők) határozza meg, hogy mikor lépjen a következő állapotba, és melyik következő állapotot válassza.

A kézi vázlat az első vázlata az állapotdiagramnak, amely az összes állapotátmenetet mutatja. Ez csak azért van, hogy megmutassa, hogyan lehet kezdetben megtervezni állapotát és állapotátmenetét - lehet, hogy nem teljesen pontos, mint a hibakeresés előtt.

Esetünkben 6 állapot van, amelyeket KI, BOOT KÉRÉS, BOOTING, FUTÁS, KIKAPCSOLÁS és LEÁLLÍTÁS hívtam. (A KIKAPCSOLÁS után visszakapcsol KI állásba.) Ezeket a vázlat megjegyzései azonosítják, és mindegyikhez további megjegyzések mondják el, hogy mit kell tennie, és milyen események mozgatják egy másik állapotba.

A Pi -n futó segítő program csak egy kicsit bonyolultabb, mint a legtöbb leállító gomb esetében. Hosszú alacsony impulzusra reagál a GPIO tüskén, leállítást kezdeményezve, de reagál egy rövid impulzusra is, röviden alacsonyra húzva a GPIO tűt. Az ATTiny85 így tudja megállapítani, hogy fut, és így a BOOTING -ról a RUNNING állapotra tud lépni.

3. lépés: Demo prototípus készítése

Demo prototípus készítése
Demo prototípus készítése
Demo prototípus készítése
Demo prototípus készítése
Demo prototípus készítése
Demo prototípus készítése

Bemutató célokra prototípusokat készíthet egy forrasztás nélküli kenyérsütő táblán, ahogy az ábrán látható, de megadtam a vázlatot is, így saját maga dolgozhatja ki az elrendezést szalaglemez vagy egyedi PCB segítségével, esetleg egy szélesebb projekt részeként.

4. lépés: Az ATTiny85 programozása

Az Arduino vázlatot és a segítő programot ehhez a lépéshez csatoljuk. Az Arduino vázlatok mappájában hozzon létre egy PiPwr nevű mappát, és másolja be a PiPwr.ino fájlt. Az Arduino IDE elindítása után megtalálhatja a vázlatfüzetében.

Az ATTiny85 programozásának számos módja van. Ha a tiédben van egy bootloader telepítve, használhatsz egy ATTiny85 fejlesztőlapot, amely csak néhány fontba kerül. Ez USB -porton keresztül csatlakozik a számítógéphez. Hidiot -ot használtam, ami lényegében ugyanaz, de prototípusos területtel.

Az Arduino IDE -ben a Fájl - Beállítások területen adja hozzá

digistump.com/package_digistump_index.json

a További táblák kezelő URL -jeire.

Az Eszközök - Tábla alatt most számos Digispark opciót kell látnia. Válassza a Digispark lehetőséget (alapértelmezett - 16,5 MHz).

Ha az ATTiny85 nem rendelkezik rendszerbetöltővel (vagy nem tudja), akkor néhány fontért beszerezhet egy AVR ISP programozót. Vagy használhat Arduino Uno -t vagy olcsóbb Pro Mini -t vagy Nano -t programozóként. Google utasításokért keressen rá az "arduino as isp attiny85" kifejezésre (idézőjelek nélkül).

Ha módosítani szeretné a vázlatot, akkor azt teljes mértékben megjegyzésekkel látja el, és remélhetőleg könnyen követhető. A hibakereséshez sokkal könnyebb egy Arduino Pro Mini vagy Nano használata. Szüntesse meg a serial.begin () megjegyzést a Setupban és a nyomtatási utasításokat a loop () -ban, hogy lássa, milyen lépéseken megy keresztül a soros monitor használatával. Az Uno, Pro Mini vagy Nano esetében a forrás alternatív tűdefiníciókat tartalmaz.

A Raspberry Pi -n másolja a shutdown_helper.py fájlt az/etc/local/bin mappába, és állítsa végrehajthatóvá a paranccsal

sudo chmod +x /usr/local/bin/shutdown_helper.py

Most szerkessze az /etc/rc.local fájlt kedvenc szerkesztőjével. (Ezt root felhasználóként kell megtennie.) Az utolsó sor előtt (0 -ás kilépés) illessze be a sort

nohup /usr/local/bin/shutdown_helper.py &

Indítsa újra, és a segítő program automatikusan elindul.

Ajánlott: