Tartalomjegyzék:
- 1. lépés: A tervezés
- 2. lépés: Hogyan működik?
- 3. lépés: Demo prototípus készítése
- 4. lépés: Az ATTiny85 programozása
Videó: Készítsen jobb Raspberry Pi bekapcsológombot: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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
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
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:
Arduino voltmérő (0-100V DC) - 2. verzió (jobb): 3 lépés
Arduino Volt Meter (0-100V DC)-2. verzió (jobb): Ebben az oktatóanyagban egy voltmérőt építettem a nagyfeszültségű DC (0-100v) relatív pontosságú és pontosságú mérésére Arduino Nano és ADS 1115 ADC segítségével .Ez a volt mérőmotor második változata, amelyet itt használtam: https: // ww
Jobb alligátor klipek: 3 lépés (képekkel)
Jobb Alligator Clips: Amikor kisfiú voltam, az aligátor klipek nehézek voltak, és jól működtek. Nehezebb acélból készültek, csavaros kapcsokkal és jó rugókkal. Most az aligátor klipek vérszegény apróságok, apró haszontalan állkapoccsal. Jobb alligátorra vágytam
Hogyan készítsünk és teszteljünk jobb DAC -t az ESP32 segítségével: 5 lépés
Hogyan készítsünk és teszteljünk jobb DAC-t az ESP32 segítségével: Az ESP32 két 8 bites digitális-analóg konverterrel (DAC) rendelkezik. Ezek a DAC-ok lehetővé teszik, hogy tetszőleges feszültségeket állítsunk elő egy adott tartományon belül (0-3,3 V) 8 bit felbontással. Ebben az utasításban megmutatom, hogyan kell felépíteni a DAC -t, és jellemezni a p
A Cree Led H4 fényszóró jobb hűtése - ELSZAKASZTVA: 4 lépés
A Cree Led H4 fényszóró továbbfejlesztett hűtése - ELSZAKASZTVA: Az alaphűtőventilátorok cseréje külső légfúvóval a jobb hűtés érdekében a hosszabb élettartam érdekében. Az általunk használt ledek a newsun h4 fényszórócsere az Amazon -tól http://www.amazon.com/dp/B00HFK2RAE/ref=sr_ph?ie=UTF8&qid=1415547
Adjon hozzá egy bekapcsológombot a LibreELEC telepítéséhez egy Raspberry Pi -n: 6 lépés
Kapcsolja be a bekapcsológombot a LibreELEC telepítéséhez egy Raspberry Pi -n: A következőkben megtanuljuk, hogyan adhat hozzá egy bekapcsológombot a Raspberry Pi -n futó LibreELEC -hez. A PowerBlock segítségével nem csak egy bekapcsológombot, hanem egy állapotjelző LED -et is hozzáadunk, amely jelzi a LibreELEC telepítés áramellátási állapotát. Ezekhez az