Każdy użytkownik Raspberry Pi zauważa na pewnym etapie zaznajamiania się z układem, iż nie jest on wyposażony w przycisk do wyłączania. Więc jedyną możliwością odłączenia tego układu od zasilania, jest wypięcie kabla z gniazd zasilania. Aby mieć pewność, że nie utracimy w ten sposób żadnych danych zapisanych na karcie SD trzeba wyłączyć system operacyjny, przed odpięciem go od zasilania. Może to być problematyczne i frustrujące, jeśli chce się korzystać z RPi jak komputera, np.jako serwera mediów lub radia internetowego.
Zaprezentowany poniżej układ pozwala na rozwiązanie tego problemu. Opisuje on w jaki sposób skonstruować niewielki układ, pełniący rolę przycisku zasilania dla Raspberry Pi. Realizuje on następujące funkcje:
* Wysyłanie sygnału wyłączającego RPi po naciśnięciu przycisku.
* Czekanie na wyłączenie systemu.
* Odłączanie zasilania od RPi po wyłączeniu systemu.
* Podłączanie zasilania do RPi po ponownym naciśnięciu przycisku
* Obsługa LEDowego wskaźnika ON/wyłączanie/OFF.
Krok 1: Częśći
Do skonstruowania opisywanego układu potrzebne będą:
Atmel AVRtiny z 8 pinami (np. attiny13 lub attiny85)
Przycisk
2 x tranzystor BC337
1 x przekaźnik
1 x kondensator elektrolityczny 680µF
1 x zielona dioda LED
Złącze 4 pinowe
Płytka uniwersalna
Programator ISP do mikrokontrolerów AVR
Oporniki
Krok 2: Schemat
Powyżej zaprezentowano schemat przycisku zasilania do Raspberry Pi. AVR podłączony jest do przekaźnika odłączającego zasilanie od RPi, a dioda LED wskazuje stan zasilania komputera. Podczas wyłączania dioda będzie mrugać. Dodatkowa linia z mikrokontrolera podłączona jest do komputera w celu wymuszania zatrzymania systemu operacyjnego.
Schemat pobrać można tutaj.
Krok 3: Program na AVRa
Króciutki i program na AVRa prezentuje się następująco:
Pobrać go można tutaj.
Krok 4: Skrypt do obsługi przycisku zasilania na Raspberry Pi
Raspberry Pi potrzebuje skrypt, który wyłączać będzie system, gdy dostanie sygnał od przycisku zasilania. W tym celu napisano skrypt w Pythonie (poniżej), monitorujący siódmy pin GPIO, gdzie podłączony jest opisany układ, Pin ten odpowiada wejściu GPIO4 w Raspberry B. Skrypt należy zapisać np. w /home/pi/pishutdown/pishutdown.py. Skrypt wygląda następująco:
Następnie napisać trzeba prosty skrypt SHELLa, który uruchomi skrypt Pythona z prawami roota. Zapiszmy skrypt (poniżej) w tym samym katalogu co skrypt Pythona.
I dodajmy katalog do logowania wydarzeń:
Wykorzystując crontab kondifurujemy automatyczny start naszego skryptu. Uruchamiamy crontab poprzez
wpisanie w konsoli:
I dodajemy następującą linię:
Uruchamiamy system ponownie...
Krok 5: Składanie wszystkiego w całość
Po podłączeniu wszystkiego razem - przycisku zasilania z pinami GPIO RPi i podaniu napięcia na przekaźnik przycisku, system powinien uruchomić się po naciśnięciu przycisku. Po załadowaniu systemu i uruchomieniu komputera, ponowne naciśnięcie powinno wyłączyć system. Dioda na opisywanym układzie będzie mrugać, a system będzie wyłączał poszczególne komponenty. Po wyłączeniu systemu przekaźnik odłączy zasilanie od płytki RPi. Kolejne naciśnięcie przycisku uruchomi komputer ponownie.
Źródło: http://www.instructables.com/id/Raspberry-Pi-Shutdown-Button/?ALLSTEPS
Zaprezentowany poniżej układ pozwala na rozwiązanie tego problemu. Opisuje on w jaki sposób skonstruować niewielki układ, pełniący rolę przycisku zasilania dla Raspberry Pi. Realizuje on następujące funkcje:
* Wysyłanie sygnału wyłączającego RPi po naciśnięciu przycisku.
* Czekanie na wyłączenie systemu.
* Odłączanie zasilania od RPi po wyłączeniu systemu.
* Podłączanie zasilania do RPi po ponownym naciśnięciu przycisku
* Obsługa LEDowego wskaźnika ON/wyłączanie/OFF.
Krok 1: Częśći
Do skonstruowania opisywanego układu potrzebne będą:
Atmel AVRtiny z 8 pinami (np. attiny13 lub attiny85)
Przycisk
2 x tranzystor BC337
1 x przekaźnik
1 x kondensator elektrolityczny 680µF
1 x zielona dioda LED
Złącze 4 pinowe
Płytka uniwersalna
Programator ISP do mikrokontrolerów AVR
Oporniki
Krok 2: Schemat
Powyżej zaprezentowano schemat przycisku zasilania do Raspberry Pi. AVR podłączony jest do przekaźnika odłączającego zasilanie od RPi, a dioda LED wskazuje stan zasilania komputera. Podczas wyłączania dioda będzie mrugać. Dodatkowa linia z mikrokontrolera podłączona jest do komputera w celu wymuszania zatrzymania systemu operacyjnego.
Schemat pobrać można tutaj.
Krok 3: Program na AVRa
Króciutki i program na AVRa prezentuje się następująco:
Code: c
Pobrać go można tutaj.
Krok 4: Skrypt do obsługi przycisku zasilania na Raspberry Pi
Raspberry Pi potrzebuje skrypt, który wyłączać będzie system, gdy dostanie sygnał od przycisku zasilania. W tym celu napisano skrypt w Pythonie (poniżej), monitorujący siódmy pin GPIO, gdzie podłączony jest opisany układ, Pin ten odpowiada wejściu GPIO4 w Raspberry B. Skrypt należy zapisać np. w /home/pi/pishutdown/pishutdown.py. Skrypt wygląda następująco:
Code: python
Następnie napisać trzeba prosty skrypt SHELLa, który uruchomi skrypt Pythona z prawami roota. Zapiszmy skrypt (poniżej) w tym samym katalogu co skrypt Pythona.
#!/bin/sh
cd /
cd home/pi/pishutdown
sudo python pishutdown.py
cd /
I dodajmy katalog do logowania wydarzeń:
mkdir /home/pi/pishutdown/logs
Wykorzystując crontab kondifurujemy automatyczny start naszego skryptu. Uruchamiamy crontab poprzez
wpisanie w konsoli:
sudo crontab -e
I dodajemy następującą linię:
@reboot sh /home/pi/pishutdown/pishutdown.sh >/home/pi/pishutdown/logs/cronlog 2>&1
Uruchamiamy system ponownie...
Krok 5: Składanie wszystkiego w całość
Po podłączeniu wszystkiego razem - przycisku zasilania z pinami GPIO RPi i podaniu napięcia na przekaźnik przycisku, system powinien uruchomić się po naciśnięciu przycisku. Po załadowaniu systemu i uruchomieniu komputera, ponowne naciśnięcie powinno wyłączyć system. Dioda na opisywanym układzie będzie mrugać, a system będzie wyłączał poszczególne komponenty. Po wyłączeniu systemu przekaźnik odłączy zasilanie od płytki RPi. Kolejne naciśnięcie przycisku uruchomi komputer ponownie.
Źródło: http://www.instructables.com/id/Raspberry-Pi-Shutdown-Button/?ALLSTEPS
Cool? Ranking DIY