Satura rādītājs:

Izveidojiet labāku Raspberry Pi barošanas pogu: 4 soļi
Izveidojiet labāku Raspberry Pi barošanas pogu: 4 soļi

Video: Izveidojiet labāku Raspberry Pi barošanas pogu: 4 soļi

Video: Izveidojiet labāku Raspberry Pi barošanas pogu: 4 soļi
Video: Как собрать ПЛК Raspberry Pi Pico || Редактор OpenPLC 2024, Novembris
Anonim
Image
Image

Ir ļoti viegli izveidot Raspberry izslēgšanas vai izslēgšanas pogu. Tīmeklī ir daudz šādu projektu un daži šeit - Instructables, taču neviens no tiem (ko es redzu) nepasaka, kad jūsu Pi faktiski ir beidzis izslēgt un līdz ar to ir droši izmantot strāvu. Patiesībā viņi pat neatzīst, ka ir redzama pogu nospiešana.

Ir arī projekti, lai restartētu Pi, kas ir izslēgts, taču arī tie nesniedz jums nekādas vizuālas atsauksmes.

Bet kam tāda poga vajadzīga? Ja jūs esat tāds nerd kā es, vai pat tikai topošs nerd, jūs vienmēr varat pieteikties savā Pi lokāli vai tīklā un ierakstīt sudo shutdown -h tagad. Bet, ja jūs veidojat projektu netehniskiem lietotājiem, tas vienkārši nederēs. Tiesa, jūs gandrīz vienmēr varat izkļūt, tikai pavelkot strāvas vadu, taču ņemiet vērā, ka es teicu gandrīz vienmēr! Visiem laime agrāk vai vēlāk beidzas. SD karte man aizmirsa tikai pagājušajā nedēļā, lai gan es nekad nezināšu, vai tas tiešām bija saistīts ar pēkšņu enerģijas zudumu.

Manā gadījumā man vajadzēja pievienot barošanas pogu Pi, ko mēs izmantojam kā midi sekvenceri himnu un dziesmu ierakstīšanai un atskaņošanai baznīcā, kad mums nav pieejams dzīvs pianists. Es vienmēr varu ierakstīt izslēgšanas komandu, bet man ir jāatsakās no tās, kad neesmu tur.

Mans nodoms šeit nav dot jums gatavu produktu ar skaisti 3D drukātu korpusu, tāpat kā tik daudzus citus norādījumus. Ikviens to izmantos atšķirīgi vai arī vēlēsies to iekļaut savā projektā. Drīzāk es jums iestatīšu tehnoloģiju, ko varat pievienot savam projektam neatkarīgi no tā, vai tas ir multivides centrs, IoT ierīce vai jebkas cits.

(Videoklipā es to demonstrēju ar Pi Zero v1.2 un monitoru, ko izveidoju no pārbūvēta klēpjdatora ekrāna un tālvadības pults.)

1. solis: dizains

Kā tas strādā
Kā tas strādā

To darīs mana barošanas poga jūsu labā:

  • Kad darbojas Pi, nepārtraukti iedegas gaismas diode. Ja tas tiek izslēgts manuāli, gaismas diode nodziest tikai tad, kad ir droši atvienot strāvu.
  • Darbības laikā, ja nospiežat pogu vismaz uz sekundi, tiek sākta izslēgšana un gaismas diode mirgo uz ceturtdaļu sekundes katru sekundi, līdz ir droši atvienot strāvu.
  • No izslēgšanas stāvokļa (ja strāvas padeve nav atvienota), nospiežot pogu, tā sāk darboties un mirgo gaismas diode ceturtdaļsekundē katru sekundi, līdz tā sāk darboties. (Var paiet nedaudz ilgāks laiks, līdz tiek palaisti visi pakalpojumi, piemēram, ssh un vnc.)

Komponenti ir ļoti lēti. Viss, kas tev nepieciešams, ir:

  • ATTiny85 (ar Arduino saderīga mikroshēma)
  • 3 rezistori: 2 x 330Ω un 1 x 10kΩ
  • 1 LED - iesaku zaļu vai zilu, bet tā ir jūsu izvēle
  • maizes dēlis un džemperu vadi, vai sloksnes dēlis, vai arī kā vēlaties to izveidot.

2. darbība. Kā tas darbojas

Tāpat kā ar visām Pi barošanas pogām, arī šī velk GPIO tapu uz zemu stāvokli, lai signalizētu par izslēgšanas pieprasījumu palīga programmai, kas darbojas ar Pi. Es izmantoju GPIO4 (7. tapa), bet jūs varat izmantot jebkuru citu tapu.

Vienīgais veids, kā pateikt, ka Pi ir beidzis izslēgšanu, ir skatīties TxD tapu 8, kas pēc tam kļūst zema. Tas ir atkarīgs no seriālās konsoles iespējošanas, kas ir pēc noklusējuma. Patiesībā TxD regulāri iet uz augšu un uz leju, kamēr tas tiek izmantots kā seriālā konsole, taču tas nekad nemainīsies zemāk par aptuveni 30mS vienlaikus, pat ar vislēnāko kopējo pārraides ātrumu. To joprojām var izmantot seriālajai konsolei, jo mēs to tikai pasīvi vērojam.

Lai atsāknētu, mums īsi jāvelk SCL1 (tapa 5) zemā līmenī. Šo tapu izmanto jebkuras I2C ierīces (ieskaitot manu midi saskarni), bet pēc sāknēšanas mēs to atstājam mierā.

Lielākā daļa sarežģītības ir Arduino skicē, kuru mēs ielādējam ATTiny85. Tas ievieš "stāvokļa mašīnu" - ļoti noderīgu un spēcīgu veidu, kā kodēt jebkuru problēmu, ko var attēlot ar vairākiem "stāvokļiem". Veļas mazgājamā mašīna darbojas tieši tāpat. Stāvokļi attēlo mazgāšanas cikla posmus, un katrs no tiem nosaka, kas mašīnai šajā brīdī jādara (dzinēji vai sūkņi, kas jādarbina, vārsti jāatver vai jāaizver) un kādas sensora ievades (temperatūra, ūdens līmenis, taimeri) noteikt, kad pāriet uz nākamo stāvokli un kuru nākamo valsti izvēlēties.

Rokas skice ir mans pirmais stāvokļa diagrammas uzmetums, kurā parādītas visas stāvokļa pārejas. Tas ir tikai, lai parādītu, kā sākotnēji varat plānot savus stāvokļus un stāvokļu pārejas - tas var nebūt pilnīgi precīzs, kā tas bija pirms atkļūdošanas uzsākšanas.

Mūsu gadījumā mums ir 6 stāvokļi, kurus esmu nosaucis par IZSLĒGŠANU, PĀRVIETOŠANAS PIEPRASĪJUMU, IEBŪVĒŠANU, RUNNING, SHUTDOWN LŪGUMU un IZSLĒGŠANU. (Pēc IZSLĒGŠANAS tas tiek pārslēgts atpakaļ uz IZSLĒGTU.) Tie tiek identificēti pēc komentāriem skicē, un katrā no tiem turpmākajos komentāros ir norādīts, kas tam būtu jādara un kādi notikumi to pārvietos uz citu stāvokli.

Palīga programma, kas darbojas uz Pi, ir tikai nedaudz sarežģītāka nekā lielākajai daļai izslēgšanas pogu. Tas reaģē uz ilgu zemu impulsu uz GPIO tapas, uzsākot izslēgšanu, bet reaģē arī uz īsu impulsu, īslaicīgi pavelkot zemu GPIO tapu. Tādā veidā ATTiny85 var noteikt, ka tā darbojas un tādējādi var pāriet no BOOTING uz RUNNING stāvokli.

3. darbība. Demo prototipa izveide

Demo prototipa veidošana
Demo prototipa veidošana
Demo prototipa veidošana
Demo prototipa veidošana
Demo prototipa veidošana
Demo prototipa veidošana

Demonstrēšanas nolūkos jūs varat to prototipēt uz bezlodēšanas maizes dēļa, kā parādīts attēlā, bet es jums esmu arī sniedzis shēmu, lai jūs varētu izstrādāt savu izkārtojumu, izmantojot sloksnes plāksni vai pielāgotu PCB, iespējams, daļa no plašāka projekta.

4. solis: ATTiny85 programmēšana

Šim solim ir pievienota Arduino skice un palīga programma. Arduino skiču mapē izveidojiet mapi ar nosaukumu PiPwr un nokopējiet tajā failu PiPwr.ino. Palaižot Arduino IDE, jūs to tagad atradīsit savā skiču grāmatā.

Ir vairāki ATTiny85 programmēšanas veidi. Ja jums ir instalēts sāknēšanas ielādētājs, varat izmantot ATTiny85 izstrādes plati, kas maksā tikai dažas mārciņas. Tas tiek savienots ar datoru, izmantojot USB portu. Es izmantoju Hidiot, kas būtībā ir tāds pats, bet ar prototipu veidošanas zonu.

Arduino IDE sadaļā Fails - Preferences pievienojiet

digistump.com/package_digistump_index.json

uz papildu dēļu pārvaldnieka vietrāžiem URL.

Sadaļā Rīki - Padome tagad vajadzētu redzēt vairākas Digispark iespējas. Atlasiet Digispark (noklusējums - 16,5 MHz).

Ja jūsu ATTiny85 nav bootloader (vai jūs nezināt), tad par dažām mārciņām varat iegādāties AVR ISP programmētāju. Vai arī kā programmētāju varat izmantot Arduino Uno vai lētāku Pro Mini vai Nano. Lai iegūtu norādījumus, meklējiet Google, izmantojot vārdu "arduino as isp attiny85" (bez pēdiņām).

Ja vēlaties mainīt skici, tā būs pilnībā komentēta un, cerams, viegli izpildāma. Atkļūdošanai ir daudz vieglāk izmantot Arduino Pro Mini vai Nano. Noņemiet komentārus serial.begin () iestatīšanas programmā un drukāšanas paziņojumus cilpā (), lai redzētu darbības, kuras tā veic, izmantojot seriālo monitoru. Komentētā avotā ir alternatīvas pin definīcijas Uno, Pro Mini vai Nano.

Savā Raspberry Pi nokopējiet failu shutdown_helper.py mapē/etc/local/bin un iestatiet to kā izpildāmu ar komandu

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

Tagad rediģējiet failu /etc/rc.local ar savu iecienītāko redaktoru. (Jums tas būs jādara kā saknei.) Pirms pēdējās rindas (izeja 0) ievietojiet rindu

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

Atsāknējiet, un palīga programma sāksies automātiski.

Ieteicams: