Turinys:

Sukurkite geresnį „Raspberry Pi“maitinimo mygtuką: 4 žingsniai
Sukurkite geresnį „Raspberry Pi“maitinimo mygtuką: 4 žingsniai

Video: Sukurkite geresnį „Raspberry Pi“maitinimo mygtuką: 4 žingsniai

Video: Sukurkite geresnį „Raspberry Pi“maitinimo mygtuką: 4 žingsniai
Video: BTT SKR2 - Установка прошивки Klipper 2024, Liepa
Anonim
Image
Image

Padaryti „Raspberry“išjungimo arba išjungimo mygtuką yra labai paprasta. Žiniatinklyje yra daug tokių projektų ir keletas čia - „Instructables“, tačiau nė vienas iš jų (aš matau) nepasako, kada jūsų „Pi“iš tikrųjų baigė išsijungti, todėl saugu ištraukti maitinimą. Tiesą sakant, jie net nepripažįsta, kad buvo matyti mygtuko paspaudimas.

Taip pat yra projektų, kaip iš naujo paleisti išjungtą „Pi“, tačiau jie taip pat nesuteikia jums jokio vizualinio atsiliepimo.

Bet kam reikalingas toks mygtukas? Jei esate šiek tiek toks niekšas kaip aš ar net tik trokštantis nerd, visada galite prisijungti prie „Pi“vietoje arba per tinklą ir įvesti sudo shutdown -h dabar. Bet jei kuriate projektą netechniniams vartotojams, tai tiesiog nepadės. Tiesa, beveik visada išsisuksite tiesiog traukdami maitinimo laidą, tačiau atkreipkite dėmesį, aš sakiau beveik visada! Visų sėkmė anksčiau ar vėliau baigiasi. SD kortelė man mirė tik praėjusią savaitę, nors niekada nesužinosiu, ar tai iš tikrųjų įvyko dėl staigaus energijos praradimo.

Mano atveju reikėjo pridėti maitinimo mygtuką prie „Pi“, kurį mes naudojame kaip midi seką, kad įrašytume ir paleistume giesmes ir dainas bažnyčioje, kai neturime gyvo pianisto. Aš visada galiu įvesti išjungimo komandą, bet turiu ją įgyti, kai manęs nėra.

Mano tikslas čia nėra suteikti jums gatavą produktą su gražiai 3D atspausdinta dėže, kaip ir daugelis kitų instrukcijų. Kiekvienas jį naudos skirtingai arba norės įtraukti į savo projektą. Atvirkščiai, aš nustatysiu jums technologiją, kurią galite pridėti prie savo projekto, nesvarbu, ar tai būtų žiniasklaidos centras, daiktų interneto įrenginys, ar bet kas kitas.

(Vaizdo įraše aš tai demonstruoju naudodamas „Pi Zero v1.2“ir monitorių, pagamintą iš pakartotinai pritaikyto nešiojamojo kompiuterio ekrano ir valdiklio iš Tolimųjų Rytų.)

1 žingsnis: dizainas

Kaip tai veikia
Kaip tai veikia

Štai ką jums padarys mano maitinimo mygtukas:

  • Kai Pi veikia, šviesos diodas nuolat dega. Jei jis išjungiamas rankiniu būdu, šviesos diodas užgęsta tik tada, kai saugu atjungti maitinimą.
  • Važiavimo metu, jei paspaudžiate mygtuką bent sekundę, prasideda išjungimas ir šviesos diodas mirksi ketvirtį sekundės kas sekundę, kol bus saugu atjungti maitinimą.
  • Išjungus būseną (jei maitinimas nebuvo atjungtas), paspaudus mygtuką, jis pradeda veikti ir mirksi šviesos diodas ketvirtį sekundės kas sekundę, kol jis įsijungia. (Gali praeiti šiek tiek daugiau laiko, kol bus paleistos visos paslaugos, tokios kaip ssh ir vnc.)

Komponentai yra labai pigūs. Viskas, ko tau reikia, yra:

  • ATTiny85 (su „Arduino“suderinamas lustas)
  • 3 rezistoriai: 2 x 330Ω ir 1 x 10kΩ
  • 1 LED - siūlau žalią arba mėlyną, bet tai jūsų pasirinkimas
  • duonos lentos ir jungiamųjų laidų arba juostelės, arba kaip norite.

2 žingsnis: kaip tai veikia

Kaip ir visi „Pi“maitinimo mygtukai, šis traukia GPIO kaištį į žemą būseną, kad praneštų apie išjungimo užklausą pagalbinei programai, veikiančiai „Pi“. Aš naudoju GPIO4 (7 kaištis), bet galite naudoti bet kurį kitą kaištį.

Vienintelis būdas pasakyti, kad „Pi“buvo išjungtas, yra žiūrėti „TxD 8“kaištį, kuris tada nusileidžia. Tai priklauso nuo įjungtos serijinės konsolės, kuri yra numatytoji. Tiesą sakant, „TxD“reguliariai kils aukštyn ir žemyn, kol bus naudojama kaip serijinė konsolė, tačiau ji niekada nenusileis ilgiau nei maždaug 30 mS vienu metu, net ir esant mažiausiam įprastam duomenų perdavimo greičiui. Jis vis dar gali būti naudojamas serijinei konsolei, nes mes tik pasyviai jį žiūrime.

Norėdami iš naujo paleisti, turime trumpai nuspausti SCL1 (5 kaištis) žemai. Šį kaištį naudoja visi „I2C“įrenginiai (įskaitant mano „midi“sąsają), tačiau pradėję įkrovimą paliekame jį ramybėje.

Dauguma sudėtingumo yra „Arduino“eskize, kurį įkeliame į „ATTiny85“. Tai įgyvendina „būsenos mašiną“- labai naudingą ir galingą būdą koduoti bet kokias problemas, kurias gali reikšti daugybė „būsenų“. Skalbimo mašina veikia lygiai taip pat. Būsenos nurodo skalbimo ciklo etapus, ir kiekviena iš jų nustato, ką mašina tuo metu turėtų daryti (varikliai ar siurbliai turi būti paleisti, vožtuvai turi būti atidaryti ar uždaryti) ir kokie jutiklių įėjimai (temperatūra, vandens lygis, laikmačiai) nustatyti, kada pereiti į kitą būseną ir kurią kitą valstybę pasirinkti.

Rankinis eskizas yra mano pirmasis būsenos diagramos projektas, rodantis visus būsenos perėjimus. Tai tik parodo jums, kaip iš pradžių galite planuoti būsenas ir būsenų perėjimus - tai gali būti ne visai tikslu, kaip buvo prieš pradedant derinimą.

Mūsų atveju turime 6 būsenas, kurias aš pavadinau IŠJUNGTA, ĮKROVIMO UŽSAKYMAS, ĮKROVIMAS, VYKDYMAS, UŽDARYMO UŽKLAUSA ir IŠJUNGIMAS. (Po SHUTTING DOWN jis grįžta į OFF.) Jie identifikuojami pagal eskizo komentarus, o kiekviename tolesniame komentare nurodoma, ką jis turėtų daryti ir kokie įvykiai perkelia jį į kitą būseną.

Pagalbinė programa, veikianti „Pi“, yra šiek tiek sudėtingesnė nei daugeliui išjungimo mygtukų. Jis reaguoja į ilgą žemą GPIO kaiščio impulsą, inicijuodamas išjungimą, tačiau taip pat reaguoja į trumpą impulsą, trumpai patraukdamas žemai GPIO kaištį. Taip ATTiny85 gali pasakyti, kad jis veikia, todėl gali pereiti iš BOTING į BĖGIMO būseną.

3 žingsnis: sukurkite demonstracinį prototipą

Demo prototipo kūrimas
Demo prototipo kūrimas
Demo prototipo kūrimas
Demo prototipo kūrimas
Demo prototipo kūrimas
Demo prototipo kūrimas

Demonstraciniais tikslais galite jį prototipuoti ant bevirinimo duonos lentos, kaip parodyta, bet aš taip pat pateikiau jums schemą, kad galėtumėte sukurti savo išdėstymą naudodami juostelę arba pasirinktinę PCB, galbūt platesnio projekto dalį.

4 žingsnis: ATTiny85 programavimas

Prie šio veiksmo pridedamas „Arduino“eskizas ir pagalbinė programa. „Arduino“eskizų aplanke sukurkite aplanką „PiPwr“ir nukopijuokite į jį failą „PiPwr.ino“. Paleidę „Arduino IDE“, dabar jį rasite eskizų knygelėje.

Yra keli ATTiny85 programavimo būdai. Jei jūsų kompiuteryje yra įdiegtas įkrovos įkroviklis, galite naudoti tik keletą svarų kainuojančią ATTiny85 kūrimo plokštę. Tai prijungiama prie kompiuterio per USB prievadą. Aš naudoju „Hidiot“, kuris iš esmės yra tas pats, bet su prototipų sritimi.

„Arduino IDE“skiltyje „Failas - nuostatos“pridėkite

digistump.com/package_digistump_index.json

į papildomų lentų valdytojo URL.

Skiltyje Įrankiai - lenta dabar turėtumėte pamatyti daugybę „Digispark“parinkčių. Pasirinkite „Digispark“(numatytasis - 16,5 MHz).

Jei jūsų ATTiny85 neturi įkrovos įkroviklio (arba jūs nežinote), galite įsigyti AVR ISP programuotoją už kelis svarus. Arba kaip programuotojas galite naudoti „Arduino Uno“arba pigesnį „Pro Mini“ar „Nano“. „Google“ieškokite „arduino as isp attiny85“(be kabučių).

Jei norite pakeisti eskizą, jis bus visiškai pakomentuotas ir, tikiuosi, bus lengvai sekamas. Derinimui daug lengviau naudoti „Arduino Pro Mini“arba „Nano“. Išsakykite komentarus serial.begin () sąrankoje ir spausdinimo teiginius cikle (), kad pamatytumėte veiksmus, kuriuos jis atlieka naudodamas serijinį monitorių. Šaltinyje yra alternatyvių „Uno“, „Pro Mini“ar „Nano“kaiščių apibrėžimų.

„Raspberry Pi“nukopijuokite failą shutdown_helper.py į aplanką/etc/local/bin ir nustatykite jį kaip vykdomąjį su komanda

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

Dabar redaguokite failą /etc/rc.local naudodami mėgstamą redaktorių. (Turėsite tai padaryti kaip root.) Prieš paskutinę eilutę (išeiti iš 0) įterpkite eilutę

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

Perkraukite ir pagalbinė programa prasidės automatiškai.

Rekomenduojamas: