Sisällysluettelo:

Rakenna parempi Raspberry Pi -virtapainike: 4 vaihetta
Rakenna parempi Raspberry Pi -virtapainike: 4 vaihetta

Video: Rakenna parempi Raspberry Pi -virtapainike: 4 vaihetta

Video: Rakenna parempi Raspberry Pi -virtapainike: 4 vaihetta
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Heinäkuu
Anonim
Image
Image

Raspberry-virrankatkaisu- tai sammutuspainikkeen tekeminen on erittäin helppoa. Webissä on paljon tällaisia projekteja ja muutama täällä Instructables -sivustossa, mutta mikään niistä (jonka näen) ei kerro, milloin Pi on todella lopettanut sammutuksensa, joten on turvallista ottaa virtaa. Itse asiassa he eivät edes tunnusta, että napin painallus on nähty.

On myös projekteja sammutetun Pi: n käynnistämiseksi uudelleen, mutta nämäkään eivät anna sinulle visuaalista palautetta.

Mutta kuka tarvitsee tällaista painiketta? Jos olet vähän sellainen nörtti kuin minä tai jopa vain pyrkivä nörtti, voit aina kirjautua Pi -laitteeseesi paikallisesti tai verkon kautta ja kirjoittaa sudo shutdown -h nyt. Mutta jos olet rakentamassa projektia ei-teknisille käyttäjille, se ei vain onnistu. Totta, voit melkein aina päästä eroon vain vetämällä virtajohdosta, mutta huomaa, sanoin melkein aina! Kaikkien onni loppuu ennemmin tai myöhemmin. Minulla oli SD -kortti kuollut minulle vasta viime viikolla, vaikka en koskaan tiedä, johtuiko se todella äkillisestä virrankatkoksesta vai ei.

Minun tapauksessani minun piti lisätä virtapainike Pi: hen, jota käytämme midi -sekvensserinä kirkon virsien ja kappaleiden tallentamiseen ja toistamiseen, kun meillä ei ole live -pianistia. Voin aina kirjoittaa sammutuskomennon, mutta minun on poistettava se taidoista, kun en ole siellä.

Tarkoitukseni ei ole antaa sinulle lopputuotetta, jossa on kauniisti 3D -tulostettu kotelo, kuten monet muut Instructables. Jokaisella on erilainen käyttötarkoitus tai se halutaan sisällyttää omaan projektiinsa. Pikemminkin annan sinulle tekniikan, jonka voit lisätä projektiin, olipa se mediakeskus, IoT -laite tai jotain muuta.

(Videossa esittelen sen Pi Zero v1.2: lla ja näytöllä, jonka tein uudelleen asennetusta kannettavan tietokoneen näytöstä ja Kaukoidän ohjaimesta.)

Vaihe 1: Suunnittelu

Kuinka se toimii
Kuinka se toimii

Virtapainike tekee tämän puolestasi:

  • Kun Pi on käynnissä, LED palaa jatkuvasti. Jos se sammutetaan manuaalisesti, LED sammuu vasta, kun virta on turvallista irrottaa.
  • Jos painat painiketta käynnissä ollessaan vähintään sekunnin ajan, sammutus käynnistyy ja LED vilkkuu neljännessekunnin ajan joka sekunti, kunnes virta on turvallista irrottaa.
  • Sammutustilasta (jos virtaa ei ole katkaistu) painikkeen käynnistäminen käynnistää sen ja vilkuttaa LEDiä neljännessekunnin ajan joka sekunti, kunnes se käynnistyy. (Voi kestää hieman kauemmin, ennen kuin kaikki palvelut, kuten ssh ja vnc, ovat käynnissä.)

Komponentit ovat erittäin halpoja. Kaikki mitä tarvitset on:

  • ATTiny85 (Arduino-yhteensopiva siru)
  • 3 vastusta: 2 x 330Ω ja 1 x 10kΩ
  • 1 LED - ehdotan vihreää tai sinistä, mutta se on sinun valintasi
  • leipälauta ja hyppyjohdot tai stripboard, tai miten haluat rakentaa sen.

Vaihe 2: Näin se toimii

Kuten kaikki Pi -virtapainikkeet, tämäkin vetää GPIO -nastan matalaan tilaan ilmoittaakseen sammutuspyynnöstä Pi -ohjelmassa käynnissä olevalle apuohjelmalle. Käytin GPIO4: ää (nasta 7), mutta voit käyttää mitä tahansa muuta pin.

Ainoa tapa kertoa Pi: n sammumisesta on katsella TxD -nasta 8, joka sitten laskee. Tämä riippuu sarjakonsolin aktivoinnista, joka on oletusarvoisesti. Itse asiassa TxD nousee ja laskee säännöllisesti, kun sitä käytetään sarjakonsolina, mutta se ei koskaan laske matalalle yli 30 mS kerrallaan, edes hitaimmalla yleisellä tiedonsiirtonopeudella. Sitä voidaan edelleen käyttää sarjakonsolina, koska katsomme sitä passiivisesti.

Uudelleenkäynnistämiseksi meidän on vedettävä hetkeksi SCL1 (nasta 5) matalalle. Tätä nastaa käyttävät kaikki I2C -laitteet (mukaan lukien midi -käyttöliittymä), mutta käynnistyksen aloittamisen jälkeen jätämme sen rauhaan.

Suurin osa monimutkaisuudesta on Arduinon luonnoksessa, jonka lataamme ATTiny85: een. Tämä toteuttaa "tilakoneen" - erittäin hyödyllisen ja tehokkaan tavan koodata kaikki ongelmat, joita useat "tilat" voivat edustaa. Pesukone toimii aivan samalla tavalla. Tilat edustavat pesujakson vaiheita, ja jokainen määrittelee, mitä koneen tulee tehdä tässä vaiheessa (moottorit tai pumput, joita käytetään, venttiilit avataan tai suljetaan) ja mitkä anturitulot (lämpötila, veden taso, ajastimet) päättää milloin siirtyä seuraavaan tilaan ja mikä seuraava tila valita.

Käsiluonnos on ensimmäinen tilakaavion luonnos, joka näyttää kaikki tilasiirtymät. Tämän tarkoituksena on vain näyttää sinulle, kuinka voit aluksi suunnitella tilasi ja tilamuutokset - se ei ehkä ole täysin tarkka, kuten se oli ennen virheenkorjauksen aloittamista.

Meidän tapauksessamme on 6 tilaa, jotka olen kutsunut POIS, KÄYNNISTYSPYYNTÖ, KÄYNNISTYS, KÄYNTI, SAMMUTUSPYYNTÖ ja SULKEMINEN ALAS. (SHUTTING DOWN: n jälkeen se siirtyy takaisin OFF -tilaan.) Nämä tunnistetaan luonnoksen kommenteista, ja jokaisessa lisäkommentissa kerrotaan, mitä sen pitäisi tehdä ja mitkä tapahtumat siirtävät sen toiseen tilaan.

Pi -apuohjelma on vain hieman monimutkaisempi kuin useimmilla sammutuspainikkeilla. Se reagoi pitkään matalaan pulssiin GPIO -nastassa käynnistämällä sammutuksen, mutta se reagoi myös lyhyeen pulssiin vetämällä GPIO -nastan lyhyesti matalalle. Näin ATTiny85 voi kertoa, että se on käynnissä ja voi siten siirtyä KÄYNNISTYS -tilasta RUNNING -tilaan.

Vaihe 3: Demo -prototyypin rakentaminen

Demo -prototyypin rakentaminen
Demo -prototyypin rakentaminen
Demo -prototyypin rakentaminen
Demo -prototyypin rakentaminen
Demo -prototyypin rakentaminen
Demo -prototyypin rakentaminen

Esittelytarkoituksiin voit prototyyppiä sen juottamattomalle leipälevylle kuvan mukaisesti, mutta olen myös antanut sinulle kaavion, jotta voit suunnitella oman ulkoasun käyttämällä stripboardia tai mukautettua piirilevyä, ehkä osana laajempaa projektia.

Vaihe 4: ATTiny85: n ohjelmointi

Arduino -luonnos ja apuohjelma on liitetty tähän vaiheeseen. Luo Arduino -luonnoskansioosi kansio nimeltä PiPwr ja kopioi tiedosto PiPwr.ino siihen. Käynnistämällä Arduino IDE löydät sen nyt luonnoskirjastasi.

ATTiny85 voidaan ohjelmoida useilla tavoilla. Jos sinulla on käynnistyslatain asennettu, voit käyttää ATTiny85 -kehityskorttia, joka maksaa vain muutaman kilon. Tämä muodostaa yhteyden tietokoneeseesi USB -portin kautta. Käytin Hidiotia, joka on pohjimmiltaan sama, mutta jossa on prototyyppialue.

Lisää Arduino IDE -kohtaan Tiedosto - Asetukset

digistump.com/package_digistump_index.json

Lisätaulujen hallinnan URL -osoitteisiin.

Työkalut - Hallitus -kohdassa näet nyt useita Digispark -vaihtoehtoja. Valitse Digispark (oletus - 16,5 MHz).

Jos ATTiny85 -laitteessasi ei ole käynnistyslatainta (tai et tiedä), voit hankkia AVR -ISP -ohjelmoijan muutamalla kilolla. Tai voit käyttää Arduino Unoa tai halvempaa Pro Miniä tai Nanoa ohjelmoijana. Googlesta "arduino as isp attiny85" (ilman lainausmerkkejä) saat ohjeet.

Jos haluat muokata luonnosta, se on täysin kommentoitu ja toivottavasti helppo seurata. Virheenkorjausta varten on paljon helpompaa käyttää Arduino Pro Miniä tai Nanoa. Poista kommentit serial.begin (): stä Setupissa ja tulostuslausekkeet silmukassa () nähdäksesi vaiheet, jotka se suorittaa sarjamonitorin avulla. Lähteessä on vaihtoehtoisia nastamääritelmiä Uno, Pro Mini tai Nano.

Kopioi Raspberry Pi -laitteellasi tiedosto shutdown_helper.py kansioon/etc/local/bin ja aseta se suoritettavaksi komennolla

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

Muokkaa nyt tiedostoa /etc/rc.local suosikkieditorillasi. (Sinun on tehtävä se root -käyttäjänä.) Lisää rivi ennen viimeistä riviä (exit 0)

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

Käynnistä uudelleen, ja apuohjelma käynnistyy automaattisesti.

Suositeltava: