Sadržaj:
- Korak 1: Dizajn
- Korak 2: Kako to funkcionira
- Korak 3: Izrada demo prototipa
- Korak 4: Programiranje ATTiny85
Video: Izgradite bolje dugme za napajanje Raspberry Pi: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Vrlo je jednostavno napraviti dugme za isključivanje ili isključivanje maline. Postoji mnogo takvih projekata na webu, a nekoliko ovdje na Instructables -u, ali nijedan od njih (što vidim) vam ne govori kada se vaš Pi zaista završio s gašenjem, pa je stoga sigurno iskoristiti napajanje. U stvari, oni čak i ne priznaju da je pritisnuto dugme.
Postoje i projekti za ponovno pokretanje Pi -a koji je ugašen, ali ni oni vam ne daju vizualne povratne informacije.
Ali kome treba takvo dugme? Ako ste pomalo štreber poput mene, ili čak samo nadobudni štreber, uvijek se možete prijaviti na svoj Pi lokalno ili preko mreže i otkucati sudo shutdown -h sada. Ali ako gradite projekt za korisnike koji nisu tehnički, to jednostavno neće uspjeti. Istina, gotovo uvijek možete pobjeći samo povlačenjem kabela za napajanje, ali napominjem, rekao sam gotovo uvijek! Svima sreća prije ili kasnije nestane. SD kartica mi je umrla tek prošle sedmice, iako nikada neću saznati je li to zaista bilo zbog naglog nestanka napajanja.
U mom slučaju morao sam dodati tipku za uključivanje u Pi koji koristimo kao midi sekvencer za snimanje i reprodukciju hvalospjeva i pjesama u crkvi, za vrijeme kada nemamo na raspolaganju pijanista uživo. Uvijek mogu upisati naredbu za isključivanje, ali moram je ukloniti s vještine kad nisam tamo.
Namjera mi ovdje nije dati vam gotov proizvod, zajedno s prekrasno 3D printanom futrolom, poput mnogih drugih Instructables. Svatko će za to imati različitu upotrebu ili će ga htjeti uključiti u svoj projekt. Radije ću vam postaviti tehnologiju koju možete dodati svom projektu, bilo da se radi o medijskom centru, IoT uređaju ili bilo čemu drugom.
(U videu to demonstriram sa Pi Zero v1.2 i monitorom koji sam napravio od prenamjenjenog ekrana laptopa i kontrolera sa Dalekog istoka.)
Korak 1: Dizajn
Ovo će moje dugme za napajanje učiniti za vas:
- Dok Pi radi, LED svijetli neprestano. Ako se ručno isključi, LED se isključuje samo kada je sigurno isključiti napajanje.
- Tijekom rada, ako pritisnete tipku barem jednu sekundu, započinje gašenje i LED dioda treperi četvrt sekunde svake sekunde sve dok ne isključite napajanje iz struje.
- Iz stanja isključenja (ako napajanje nije isključeno), pritiskom na dugme pokreće se njegovo pokretanje i LED dioda će svijetliti četvrt sekunde svake sekunde dok se ne pokrene. (Može potrajati malo duže dok se ne pokrenu sve usluge, kao što su ssh i vnc.)
Komponente su veoma jeftine. Sve što ti je potrebno je:
- ATTiny85 (čip kompatibilan s Arduinom)
- 3 otpornika: 2 x 330Ω i 1 x 10kΩ
- 1 LED - predlažem zelenu ili plavu boju, ali to je vaš izbor
- žica ili kratkospojna žica ili traka za presvlačenje ili kako god želite.
Korak 2: Kako to funkcionira
Kao i svi Pi gumbi za uključivanje, i ovaj povlači GPIO pin u nisko stanje kako bi signalizirao zahtjev za isključivanje pomoćnom programu koji radi na Pi -u. Koristio sam GPIO4 (pin 7), ali možete koristiti bilo koji drugi pin.
Jedini način da kažete da je Pi završio isključivanje je gledanje TxD pina 8, koji tada pada. To ovisi o omogućenoj serijskoj konzoli, koja je zadana. U stvari, TxD će se redovito povećavati i spuštati dok se koristi kao serijska konzola, ali nikada neće pasti nisko za više od 30 ms u isto vrijeme, čak i pri najsporijoj uobičajenoj brzini prijenosa. I dalje se može koristiti za serijsku konzolu dok je samo pasivno gledamo.
Za ponovno pokretanje, moramo kratko povući SCL1 (pin 5) nisko. Ovaj pin koriste svi I2C uređaji (uključujući i moj midi interfejs), ali nakon pokretanja pokretanja ostavljamo ga na miru.
Većina složenosti je u Arduino skici koju učitavamo u ATTiny85. Ovo implementira "mašinu stanja" - vrlo koristan i moćan način kodiranja svakog problema koji se može predstaviti brojnim "stanjima". Mašina za pranje veša radi na isti način. Stanja predstavljaju faze u ciklusu pranja, a svako definira što bi mašina trebala raditi u tom trenutku (motori ili pumpe koje treba pokrenuti, ventile otvoriti ili zatvoriti) i koji ulazi senzora (temperatura, nivo vode, mjerači vremena) odrediti kada preći u sljedeće stanje i koje sljedeće stanje odabrati.
Skica ruke je moj prvi nacrt dijagrama stanja koji prikazuje sve prijelaze stanja. Ovo vam je samo da vam pokažem kako u početku možete planirati svoja stanja i prijelaze stanja - možda nije potpuno točno kao što je to bilo prije nego što sam započeo otklanjanje pogrešaka.
U našem slučaju, imamo 6 država koje sam nazvao ISKLJUČENO, ZAHTJEV ZA POKRETANJE, POKRETANJE, POKRETANJE, ZAHTJEV ZA ISKLJUČIVANJE I ISKLJUČIVANJE. (Nakon ISKLJUČIVANJA, vraća se na ISKLJUČENO.) Oni su identificirani komentarima na skici, a za svaki daljnji komentar govori se o tome što bi trebao raditi i koji će ga događaji premjestiti u drugo stanje.
Pomoćni program koji radi na Pi -u samo je malo složeniji nego za većinu gumba za isključivanje. On reagira na dugi niski impuls na GPIO pin -u pokretanjem isključivanja, ali i reagira na kratki impuls sam kratko povlačeći GPIO pin nisko. Ovako ATTiny85 može reći da radi i može se premjestiti iz BOOTING u stanje RUNNING.
Korak 3: Izrada demo prototipa
U svrhu demonstracije možete ga prototipirati na ploči za lemljenje, kako je prikazano, ali dao sam vam i shemu tako da možete razraditi vlastiti izgled pomoću trakaste ploče ili prilagođene PCB -a, možda dio šireg projekta.
Korak 4: Programiranje ATTiny85
Arduino skica i pomoćni program pridruženi su ovom koraku. U mapi Arduino skice stvorite mapu pod nazivom PiPwr i kopirajte datoteku PiPwr.ino u nju. Pokretanjem Arduino IDE -a sada ćete ga pronaći u skici.
Postoji nekoliko načina programiranja ATTiny85. Ako vaš ima instaliran pokretački program, možete koristiti razvojnu ploču ATTiny85 koja košta samo nekoliko funti. Ovo se povezuje sa vašim računarom putem USB priključka. Koristio sam Hidiot koji je u osnovi isti, ali s područjem izrade prototipa.
U Arduino IDE pod Datoteka - Postavke dodajte
digistump.com/package_digistump_index.json
na URL -ove upravitelja dodatnih ploča.
U odjeljku Alati - ploča sada biste trebali vidjeti brojne Digispark opcije. Odaberite Digispark (zadano - 16,5 MHz).
Ako vaš ATTiny85 nema pokretački program (ili ne znate), možete nabaviti programera AVR ISP -a za nekoliko funti. Ili možete koristiti Arduino Uno ili jeftiniji Pro Mini ili Nano kao programer. Google za "arduino as isp attiny85" (bez navodnika) za upute.
Ako želite izmijeniti skicu, naći ćete je potpuno komentiranu i nadamo se da ju je lako pratiti. Za otklanjanje pogrešaka mnogo je lakše koristiti Arduino Pro Mini ili Nano. Dekomentirajte serial.begin () u programu Setup i ispišite ispise u loop () kako biste vidjeli korake kroz koje prolazi pomoću serijskog monitora. Postoje alternativne definicije pinova u izvoru, komentarisane, za Uno, Pro Mini ili Nano.
Na svom Raspberry Pi -u kopirajte datoteku shutdown_helper.py u mapu/etc/local/bin i postavite je kao izvršnu naredbom
sudo chmod +x /usr/local/bin/shutdown_helper.py
Sada uredite datoteku /etc/rc.local sa svojim omiljenim uređivačem. (Morat ćete to učiniti kao root.) Prije posljednjeg retka (izlaz 0) umetnite red
nohup /usr/local/bin/shutdown_helper.py &
Ponovo pokrenite sistem i pomoćni program će se automatski pokrenuti.
Preporučuje se:
Arduino dugme za odbrojavanje W/ dugme za odmor: 4 koraka
Arduino tipka za odbrojavanje W/ tipka za odmor: Ova instrukcija će vas naučiti kako stvoriti tajmer za odbrojavanje koristeći 4-znamenkasti 7-segmentni zaslon koji se može resetirati pomoću gumba. Došao sam na ideju da ovo napravim jer sam prilikom kreiranja jednocifrenog 7-segmentnog ekrana u klasi želio stvoriti nešto
Učite bolje sa pametnom radnom lampom - IDC2018IOT: 10 koraka (sa slikama)
Učite bolje sa pametnom radnom lampom - IDC2018IOT: Ljudi u zapadnom svijetu provode puno vremena sjedeći. Za stolom, vožnja okolo, gledanje televizije i još mnogo toga. Ponekad, previše sjedenje može naštetiti vašem tijelu i naštetiti vašim sposobnostima fokusiranja. Hodanje i ustajanje nakon određenog vremena ključno je za
Dodirnite dugme za napajanje za Raspberry Pi: 3 koraka
Dodirno dugme za napajanje za Raspberry Pi: Pošto sam odštampao i počeo da koristim ovu futrolu za Retropie, uvek sam zamišljao kako da napravim dugme za napajanje. Ideja je bila promijeniti dizajn tako da pritisne gumb za pomicanje, a zatim pomakne prekidač. Na kraju sam imao još jednu ideju, gdje mi nije bilo potrebno mijenjati cas
Bolje Balun kutije: 5 koraka
Bolje Balunove kutije: Uradio sam instrukcije o izgradnji Baluna ili Ununa. https://www.instructables.com/id/How-to-Make-a-Bal … Činilo se da se mnogima svidjelo njihovo pakiranje za hitne slučajeve ili torba za terenski rad. Pošto tih kutija nije bilo na skladištu, otišao sam u Home Depot
Vanjsko dugme za napajanje za ESC: 3 koraka (sa slikama)
Vanjsko dugme za napajanje na ESC -u: Ja pravim električni skateboard i moram dodati vanjski prekidač na svoj ESC da bih mogao staviti svu svoju elektroniku u isto kućište. Lista dijelova: -Pritisni gumb-žice-skupljajuća cijev (opcionalno) -hotglue (opcionalno) -ESC (banggood: https://goo.gl/4n8kzB)