Obsah:
- Krok 1: Design
- Krok 2: Jak to funguje
- Krok 3: Sestavení demo prototypu
- Krok 4: Programování ATTiny85
Video: Vybudujte si lepší vypínač Raspberry Pi: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Je velmi snadné vytvořit tlačítko pro vypnutí nebo vypnutí Raspberry. Existuje spousta takových projektů na webu a několik zde na Instructables, ale žádný z nich (to, co vidím) vám neřekne, kdy se vaše Pi skutečně vypnulo, a proto je bezpečné vytáhnout energii. Ve skutečnosti ani neuznávají, že bylo stisknutí tlačítka vidět.
Existují také projekty na restartování Pi, které bylo vypnuto, ale ani ty vám neposkytují žádnou vizuální zpětnou vazbu.
Ale kdo takové tlačítko potřebuje? Pokud jste tak trochu pitomci jako já, nebo dokonce jen ctižádostiví pitomci, můžete se ke svému Pi kdykoli přihlásit lokálně nebo přes síť a nyní zadejte sudo shutdown -h. Pokud ale stavíte projekt pro netechnické uživatele, nebude to stačit. Je pravda, že téměř vždy se můžete dostat pryč pouhým zatažením za napájecí kabel, ale všimněte si, řekl jsem téměř vždy! Štěstí každého dříve nebo později dojde. Minulý týden jsem nechal zemřít kartu SD, i když se nikdy nedozvím, zda to bylo skutečně kvůli náhlé ztrátě napájení.
V mém případě jsem potřeboval přidat tlačítko napájení k Pi, které používáme jako midi sekvencer pro nahrávání a přehrávání hymnů a písní v kostele, protože když nemáme k dispozici živého pianistu. Vždy mohu zadat příkaz k vypnutí, ale potřebuji ho zbavit dovednosti, když tam nejsem.
Mým záměrem zde není dát vám hotový výrobek s nádherně 3D tištěným pouzdrem, jako mnoho jiných instruktabilní. Každý pro to bude mít jiné využití nebo bude chtít začlenit do svého vlastního projektu. Spíše vám nastavím technologii, kterou můžete přidat do svého projektu, ať už to bude mediální centrum, zařízení IoT nebo cokoli jiného.
(Ve videu to předvádím s Pi Zero v1.2 a monitorem, který jsem vyrobil z repasované obrazovky notebooku a ovladače z Dálného východu.)
Krok 1: Design
K tomu vám poslouží moje tlačítko napájení:
- Když Pi běží, LED dioda svítí nepřetržitě. Pokud se vypne ručně, kontrolka LED zhasne, pouze pokud je bezpečné odpojit napájení.
- Pokud během běhu stisknete tlačítko alespoň na sekundu, spustí se vypnutí a LED bliká na čtvrt sekundy každou sekundu, dokud není bezpečné odpojit napájení.
- Ze stavu vypnutí (pokud nebylo odpojeno napájení) se stisknutím tlačítka spustí jeho spuštění a každou sekundu bliká LED na čtvrt sekundy, dokud se nespustí. (Může trvat trochu déle, než budou spuštěny všechny služby, jako jsou ssh a vnc.)
Komponenty jsou velmi levné. Vše co potřebuješ je:
- ATTiny85 (čip kompatibilní s Arduino)
- 3 odpory: 2 x 330Ω a 1 x 10kΩ
- 1 LED - doporučuji zelenou nebo modrou, ale je to vaše volba
- prkénko a propojovací vodiče nebo stripboard, nebo jakkoli ho chcete postavit.
Krok 2: Jak to funguje
Stejně jako u všech tlačítek napájení Pi, toto táhne pin GPIO do nízkého stavu, aby signalizoval požadavek na vypnutí pomocnému programu spuštěnému na Pi. Použil jsem GPIO4 (pin 7), ale můžete použít jakýkoli jiný pin.
Jediným způsobem, jak zjistit, že Pi dokončil vypnutí, je sledovat pin 8 TxD, který se poté sníží. To závisí na povolení sériové konzoly, což je ve výchozím nastavení. Ve skutečnosti se bude TxD pravidelně pohybovat nahoru a dolů, když je používán jako sériová konzola, ale nikdy neklesne na více než 30 mS najednou, dokonce ani při nejpomalejší běžné přenosové rychlosti. Stále jej lze použít pro sériovou konzoli, protože jej jen pasivně sledujeme.
Chcete -li restartovat, musíme krátce vytáhnout SCL1 (pin 5) dolů. Tento pin používají všechna zařízení I2C (včetně mého midi rozhraní), ale po spuštění bootování ho necháme na pokoji.
Většina složitosti je v náčrtu Arduino, který načteme do ATTiny85. To implementuje „stavový stroj“- velmi užitečný a účinný způsob kódování jakéhokoli problému, který může být reprezentován řadou „stavů“. Pračka funguje úplně stejně. Stavy představují fáze pracího cyklu a každý z nich definuje, co by měl stroj v daném bodě dělat (motory nebo čerpadla, která mají být spuštěna, ventily otevřené nebo zavřené) a jaké vstupy čidel (teplota, hladina vody, časovače) určit, kdy přejít do dalšího stavu a který další stav zvolit.
Ruční skica je mým prvním návrhem stavového diagramu, který ukazuje všechny stavové přechody. Toto je jen pro ukázku, jak můžete zpočátku plánovat své stavy a přechody stavů - nemusí to být úplně přesné, jako to bylo před tím, než jsem začal ladit.
V našem případě máme 6 stavů, které jsem nazval OFF, BOOT REQUEST, BOOTING, RUNNING, SHUTDOWN REQUEST a SHUTTING DOWN. (Po SHUTTING DOWN se vrátí zpět do OFF.) Ty jsou identifikovány komentáři v náčrtu a u každého dalšího komentáře je uvedeno, co má dělat a jaké události jej přesunou do jiného stavu.
Pomocný program běžící na Pi je jen trochu komplikovanější než u většiny tlačítek pro vypnutí. Reaguje na dlouhý nízký puls na pinu GPIO zahájením vypnutí, ale také reaguje na krátký puls sám krátkým vytažením pinu GPIO nízko. ATTiny85 tak může poznat, že běží, a tak se může přesunout ze stavu BOOTING do stavu RUNNING.
Krok 3: Sestavení demo prototypu
Pro demonstrační účely můžete prototypovat na nepájivém prkénku, jak je uvedeno na obrázku, ale také jsem vám dal schéma, takže si můžete vytvořit vlastní rozvržení pomocí stripboardu nebo vlastního PCB, možná součástí širšího projektu.
Krok 4: Programování ATTiny85
K tomuto kroku je připojena skica Arduino a pomocný program. Ve složce skic Arduino vytvořte složku s názvem PiPwr a zkopírujte do ní soubor PiPwr.ino. Po spuštění IDE Arduino jej nyní najdete ve svém skicáři.
Existuje několik způsobů programování ATTiny85. Pokud máte nainstalovaný bootloader, můžete použít vývojovou desku ATTiny85, která stojí jen několik liber. K počítači se připojuje přes USB port. Použil jsem Hidiot, který je v podstatě stejný, ale s prototypovou oblastí.
V IDE Arduino v části Soubor - Předvolby přidejte
digistump.com/package_digistump_index.json
na adresy URL správce dalších desek.
V části Nástroje - Deska byste nyní měli vidět řadu možností Digispark. Vyberte Digispark (výchozí - 16,5 MHz).
Pokud váš ATTiny85 nemá zavaděč (nebo nevíte), můžete získat programátor AVR ISP za pár liber. Nebo můžete jako programátor použít Arduino Uno nebo levnější Pro Mini nebo Nano. Google hledá pokyny pro „arduino as isp attiny85“(bez uvozovek).
Pokud chcete upravit náčrt, zjistíte, že je plně komentovaný a doufejme, že se dá snadno sledovat. Pro ladění je mnohem jednodušší použít Arduino Pro Mini nebo Nano. Chcete -li zobrazit kroky, kterými prochází pomocí sériového monitoru, odkomentujte soubor serial.begin () v instalačním programu a tiskové příkazy ve smyčce (). Ve zdroji jsou alternativní definice pinů, komentované, pro Uno, Pro Mini nebo Nano.
Zkopírujte na svém Raspberry Pi soubor shutdown_helper.py do složky/etc/local/bin a pomocí příkazu jej nastavte jako spustitelný
sudo chmod +x /usr/local/bin/shutdown_helper.py
Nyní upravte soubor /etc/rc.local pomocí svého oblíbeného editoru. (Budete to muset udělat jako root.) Před posledním řádkem (exit 0) vložte řádek
nohup /usr/local/bin/shutdown_helper.py &
Restartujte a pomocný program se spustí automaticky.
Doporučuje:
Jak nastavit dotykový vypínač na domácí spotřebič: 4 kroky
Jak nastavit dotykový spínač ZAP/VYP pro domácí spotřebiče: Toto je dotykový vypínač ZAP/VYP bez jakéhokoli mikrokontroléru. Můžeš se dotknout prstu? Poprvé na kovové desce, pak žárovka? ZAPNUTO a po vyjmutí žárovky prstu? Vydrž. Můžeš se dotknout prstu? Podruhé na plech, pak žárovka?
Měřič Arduino Volt (0-100V DC) - verze 2 (lepší): 3 kroky
Arduino Volt Meter (0-100V DC)-Verze 2 (lepší): V tomto návodu jsem postavil voltmetr pro měření vysokého napětí DC (0-100v) s relativní přesností a přesností pomocí Arduino Nano a ADS 1115 ADC .Jedná se o druhou verzi voltmetru použitého mého předchozího instruktu zde: https: // ww
Stiskněte vypínač pro Raspberry Pi: 3 kroky
Dotykové tlačítko napájení pro Raspberry Pi: Od té doby, co jsem vytiskl a začal používat toto pouzdro pro svůj Retropie, jsem si vždy představoval, jak vytvořit tlačítko napájení. Cílem bylo změnit design tak, aby bylo tlačítko pro přesun a poté přesunout přepínač. Nakonec jsem měl další nápad, kde jsem nepotřeboval změnit cas
Vybudujte si lepší Vista zdarma .: 3 kroky
Vybudujte si lepší Vista zdarma: Jak zdarma vybudovat lepší Vista. Mnoho lidí nahlásilo vážné problémy tím, že tam aktualizovaly stávající počítače se systémem Windows XP (TM) na Vista (TM). Dokonce i na zcela nových počítačích. Viz například: http://www.youtube.com/watch?v=FVbf9tOGwnoTolik lidí plánuje
Počítačem řízený vypínač: 3 kroky
Počítačem ovládaný vypínač: Chcete pomocí počítače přepínat mezi zapínáním a vypínáním elektrické zásuvky? Co takhle to udělat dálkovým ovladačem? Zní to hezky - já vím. Nejlepší ale je, že to všechno zvládnete, a to vám řekne, jak … " Proč bych chtěl zapínat elektrickou zásuvku nebo ev