INHOUDSOPGAWE:
- Stap 1: Die ontwerp
- Stap 2: Hoe dit werk
- Stap 3: Bou 'n demonstrasieprototipe
- Stap 4: Programmering van die ATTiny85
Video: Bou 'n beter Raspberry Pi -kragknoppie: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Dit is baie maklik om 'n framboos-afskakel- of afsluitknoppie te maak. Daar is baie sulke projekte op die internet en 'n paar hier op Instructables, maar nie een van hulle (wat ek kan sien) vertel jou wanneer jou Pi eintlik klaar is met afskakel nie, en daarom is dit veilig om aan die krag te trek. In werklikheid erken hulle nie eens dat die druk op die knoppie gesien is nie.
Daar is ook projekte om 'n Pi wat gesluit is, weer te begin, maar dit gee u ook geen visuele terugvoer nie.
Maar wie het so 'n knoppie nodig? As u 'n bietjie nerd is soos ek, of selfs 'n aspirant -nerd, kan u altyd plaaslik of via die netwerk by u Pi aanmeld en sudo shutdown -h intik. Maar as u 'n projek bou vir nie-tegniese gebruikers, sal dit eenvoudig nie werk nie. Dit is waar dat u byna altyd kan wegkom deur net aan die netsnoer te trek, maar let op, ek het byna altyd gesê! Almal se geluk raak vroeër of later op. Ek het eers verlede week 'n SD -kaart op my gesterf, alhoewel ek nooit sal weet of dit regtig te wyte was aan 'n skielike kragverlies nie.
In my geval moes ek 'n aan / uit -knoppie byvoeg by 'n Pi wat ons gebruik as 'n midi -sequencer om liedere en liedere in die kerk op te neem en af te speel, as ons nie 'n lewendige pianis beskikbaar het nie. Ek kan altyd die afsluitopdrag tik, maar ek moet dit afskakel vir wanneer ek nie daar is nie.
My bedoeling hier is nie om u 'n voltooide produk te gee nie, kompleet met 'n pragtige 3D -gedrukte omhulsel, soos soveel ander instruksies. Almal sal dit anders gebruik of in hul eie projek wil inkorporeer. Ek stel u eerder voor met die tegnologie wat u by u projek kan voeg, of dit nou 'n mediasentrum, 'n IoT -toestel of iets anders is.
(In die video demonstreer ek dit met 'n Pi Zero v1.2 en 'n monitor wat ek gemaak het van 'n hergebruikte laptopskerm en 'n kontroleerder uit die Verre Ooste.)
Stap 1: Die ontwerp
Dit is wat my aan / uit -knoppie vir u sal doen:
- As die Pi aan die gang is, brand 'n LED voortdurend. As dit met die hand afgeskakel word, gaan die LED net af as dit veilig is om die krag te ontkoppel.
- As u ten minste 'n sekonde op die knoppie druk, word 'n afskakel begin en die LED knipper elke sekonde 'n kwart sekonde totdat dit veilig is om die krag uit te skakel.
- Vanuit 'n afskakel -toestand (as die krag nie verwyder is nie), begin die oplaai deur op die knoppie te druk, en die LED knipper elke sekonde 'n kwart sekonde totdat dit aangeskakel word. (Dit kan 'n bietjie langer neem totdat alle dienste soos ssh en vnc gebruik word.)
Die komponente is baie goedkoop. Al wat jy nodig het is:
- ATTiny85 (Arduino-versoenbare chip)
- 3 weerstande: 2 x 330Ω en 1 x 10kΩ
- 1 LED - ek stel groen of blou voor, maar dit is u keuse
- broodbord en springdrade, of strookbord, of hoe u dit ook al wil bou.
Stap 2: Hoe dit werk
Soos met alle Pi -aan / uit -knoppies, trek hierdie een 'n GPIO -pen na 'n lae toestand om 'n versoek om afskakeling aan te dui aan 'n helperprogram wat op die Pi werk. Ek het GPIO4 (pen 7) gebruik, maar u kan enige ander pen gebruik.
Die enigste manier om te sien dat 'n Pi die sluiting voltooi het, is deur na TxD -pen 8 te kyk, wat dan laag word. Dit hang af van die seriële konsole wat standaard aangeskakel is. Trouens, TxD sal gereeld op en af styg terwyl dit as 'n seriële konsole gebruik word, maar dit sal nooit meer as ongeveer 30mS op 'n slag laag wees nie, selfs teen die stadigste algemene baud -tempo. Dit kan steeds vir 'n reekskonsole gebruik word, aangesien ons dit net passief kyk.
Om weer te begin, moet ons SCL1 (pen 5) kortliks laag trek. Hierdie pen word deur enige I2C -toestelle (insluitend my midi -koppelvlak) gebruik, maar nadat ons die opstart begin het, laat ons dit met rus.
Die meeste kompleksiteit is in die Arduino -skets wat ons in die ATTiny85 laai. Dit implementeer 'n 'staatsmasjien' - 'n baie nuttige en kragtige manier om enige probleem wat deur 'n aantal 'state' voorgestel kan word, te kodeer. 'N Wasmasjien werk op dieselfde manier. Die state verteenwoordig die stadiums in die wassiklus, en elkeen definieer wat die masjien op daardie stadium moet doen (motors of pompe wat uitgevoer moet word, kleppe wat oopgemaak of toegemaak moet word) en watter sensorinsette (temperatuur, watervlak, timers) bepaal wanneer om na die volgende toestand te gaan en watter volgende staat om te kies.
Die handskets is my eerste konsep van 'n toestandsdiagram, wat al die toestandsoortgange toon. Dit is net om u te wys hoe u u state en oorgange van die staat aanvanklik kan beplan - dit is moontlik nie heeltemal akkuraat soos dit was voordat ek begin ontfout het nie.
In ons geval het ons 6 toestande wat ek UIT, BOOT AANVRAAG, BOOTING, RUNNING, SHUTDOWN AANVRAAG en SHUTTING DOWN gebel het. (Na afsluiting skuif dit terug na OFF.) Dit word geïdentifiseer deur opmerkings in die skets, en vir elkeen sê verdere kommentare wat dit moet doen en watter gebeurtenisse dit na 'n ander toestand sal bring.
Die helperprogram wat op die Pi uitgevoer word, is net 'n bietjie ingewikkelder as vir die meeste afsluitknoppies. Dit reageer op 'n lang lae polsslag op die GPIO -pen deur 'n afskakeling te begin, maar dit reageer ook op 'n kort polsslag deur die GPIO -pen kortliks laag te trek. Dit is hoe die ATTiny85 kan sien dat dit loop en van die BOOTING na die RUNNING -toestand kan beweeg.
Stap 3: Bou 'n demonstrasieprototipe
Vir demonstrasiedoeleindes kan u dit prototipeer op 'n soldeerlose broodbord, soos aangedui, maar ek het u ook die skema gegee, sodat u u eie uitleg kan gebruik met behulp van strookbord of 'n pasgemaakte PCB, miskien deel van 'n groter projek.
Stap 4: Programmering van die ATTiny85
Die Arduino -skets en die helperprogram is by hierdie stap aangeheg. Skep in u gids Arduino sketches 'n gids genaamd PiPwr en kopieer die lêer PiPwr.ino daarin. As u die Arduino IDE begin, vind u dit nou in u sketsboek.
Daar is verskillende maniere om 'n ATTiny85 te programmeer. As u 'n selflaaiprogram geïnstalleer het, kan u 'n ATTiny85 -ontwikkelbord gebruik wat slegs 'n paar pond kos. Dit kan via 'n USB -poort aan u rekenaar gekoppel word. Ek het 'n Hidiot gebruik wat in wese dieselfde is, maar met 'n prototipe -gebied.
Voeg in die Arduino IDE onder File - Preferences by
digistump.com/package_digistump_index.json
na die URL's van die bestuurder van die bykomende borde.
Onder Tools - Board behoort u nou 'n aantal Digispark -opsies te sien. Kies Digispark (standaard - 16,5 MHz).
As u ATTiny85 nie 'n selflaaiprogram het nie (of u weet nie), kan u 'n AVR ISP -programmeerder vir 'n paar pond kry. Of u kan 'n Arduino Uno of goedkoper Pro Mini of Nano as programmeerder gebruik. Google vir "arduino as isp attiny85" (sonder aanhalings) vir instruksies.
As u die skets wil verander, vind u dit volledig kommentaar en hopelik maklik om te volg. Vir ontfouting is dit baie makliker om 'n Arduino Pro Mini of Nano te gebruik. Gee kommentaar op die serial.begin () in Setup en die afdrukstate in lus () om die stappe wat dit volg deur middel van die seriële monitor te sien. Daar is alternatiewe pen -definisies in die bron, met kommentaar, vir 'n Uno, Pro Mini of Nano.
Kopieer die lêer shutdown_helper.py op u Raspberry Pi na die map/etc/local/bin en stel dit as uitvoerbaar met die opdrag in
sudo chmod +x /usr/local/bin/shutdown_helper.py
Wysig nou die lêer /etc/rc.local met u gunsteling redakteur. (U moet dit as wortel doen.) Voeg die reël voor die laaste reël (afrit 0) in
nohup /usr/local/bin/shutdown_helper.py &
Herlaai, en die helperprogram begin outomaties.
Aanbeveel:
Arduino Volt Meter (0-100V DC) - Weergawe 2 (beter): 3 stappe
Arduino Volt Meter (0-100V DC)-Weergawe 2 (beter): In hierdie instruksies het ek 'n voltmeter gebou om hoë spanning DC (0-100v) met relatiewe presisie en akkuraatheid te meet met behulp van 'n Arduino Nano en 'n ADS 1115 ADC .Dit is 'n tweede weergawe van die voltmeter wat my vorige instruksies hier gebruik is: https: // ww
Beter Alligator -knipsels: 3 stappe (met foto's)
Beter Alligator -knipsels: Toe ek 'n seuntjie was, was die krokodille -knipsels swaar en het hulle goed laat werk. Hulle is gemaak van swaarder staal met skroefaansluitings en goeie vere. Nou is krokodilleknippies anemiese klein dingetjies met 'n klein nuttelose kaakopening. Ek wou 'n beter alligator -kl kry
Hoe om 'n grijperarm met 'n robot -beheerde bou te bou via Nrf24l01 Arduino: 3 stappe (met foto's)
Hoe om 'n gryparm -robot -beheerde robot gebou te word via Nrf24l01 Arduino: die instruksie " Hoe om 'n gryparm te volg, word 'n robot gestuur deur Nrf24l01 Arduino " sal verduidelik hoe u 'n drie -vryheidsgreeparm kan bou wat geïnstalleer is op 'n wiel met wiel aangedryf deur 'n L298N -module met dubbele motor met behulp van MEG
Bou gratis 'n beter Vista: 3 stappe
Bou 'n beter Vista gratis: Hoe om 'n beter Vista gratis te bou. Baie mense het ernstige probleme aangemeld deur die bestaande Windows XP (TM) -masjiene daar op te dateer na Vista (TM). Selfs op splinternuwe masjiene. Sien byvoorbeeld: http://www.youtube.com/watch?v=FVbf9tOGwno So baie mense het geskaaf
Hoe om 'n kitaar luidsprekerkas te bou of twee vir u stereo te bou: 17 stappe (met foto's)
Hoe om 'n kitaar -luidsprekerkas of twee vir u stereo te bou: ek wou hê dat 'n nuwe kitaarspreker saam met die buisversterker wat ek bou, gaan. Die luidspreker bly in my winkel, sodat dit nie te spesiaal hoef te wees nie. Tolex -bedekking kan te maklik beskadig word, so ek het die buitekant net swart gespuit na 'n ligte sand