W dzisiejszym wpisie spróbujmy do programu migającego diodą, dodać pewną interakcję z użytkownikiem. Będzie to początek obustronnej komunikacji z minikomputerem.
Zapraszam do wpisu!
Środowisko
Zanim jednak przejdziemy do modyfikowania pierwszego skryptu, zaopatrzmy się w dwa programy. Jeden z nich będzie naszym edytorem. Tutaj jest mnogość różnych rozwiązań, od tych darmowych, przez komercyjne.
Na komputerze domowym z Windowsem zainstalowany mam SublimeText i sprawuje się całkiem dobrze. Postanowilem również zainstalowac go na Linuxie, z którego aktualnie korzystam na delegacji.
Można również korzystać z wszelkich notatników, ale kolorowanie składni zdecydowanie pomaga w pisaniu skryptów i programów.
Drugim programem, który nam się przyda to WINscp dla środowiska windows i program o zbliżonych możliwościach dla niego jakim jest Filezilla, dostępna również dla Linuxa.
Program ten pozwala nam w łatwy sposób, napisany przez nas skrypt, przesłać bezpośrednio do BeagleBone (czy też maliny).
Konfiguracja tych programów jest bardzo prosta, zrzut z moich ustawień poniżej.
Porozmawiajmy!
Pierwszą rzeczą jaką możemy wprowadzić w ramach usprawnienia naszego pierwszego skryptu to możliwość definiowania ilość powtórzeń pętli. Zanim zaczniemy ją wykonywać, dodajmy następujące polecenie:
ilosc = input(" Hej! Ile raz chcesz mrugnac? ")
Funkcja ta napisze prośbę do użytkownika o podanie ilości powtórzeń przejść pętli i zapisze tą wartość w zmiennej „ilosc”.
Teraz z kolei musimy z edytować naszą pętle i zamiast wstawiać tam ilość powtórzeń w postaci liczby – wstawimy nowo powstałą zmienną.
Cały kod wygląda tak:
import Adafruit_BBIO.GPIO as GPIO for i in range(0,ilosc): GPIO.cleanup() Sprawdźmy jak to działa: Musicie mi uwierzyć, że dioda faktycznie mrugnęła 7 razy 😊 Co się stanie gdy zamiast liczby wstawimy jakiś inny znak? W analogiczny sposób, możemy poprosić, żeby użytkownik podał czas opóźnienia. Możemy zdefiniować różne zmienne dla delaya przy świeceniu i przy zgaszeniu. delay_on = input("Jak dlugo ma sie swiecic? ") Analogicznie jak w przypadku ilosci krokow, sztywna wartosc zamieniamy na nazwe zmiennej. import Adafruit_BBIO.GPIO as GPIO for i in range(0,ilosc): GPIO.cleanup() I naszym oczom ukazuje się taki rezultat: W taki oto sposób zmodyfikowaliśmy nasz program by moc się komunikować bezpośrednio z minikomputerem. Stad już bliska droga by robić to za pomocą np. telefonu. Uruchomiony na BB bardzo prosty serwer, na którym wgrana jest strona WWW, gdzie naciskając wirtualny przycisk jesteśmy w stanie załączać jakiś odbiornik podłączony do naszego BeagleBone. Nie wybiegajmy jednak w przód za bardzo! Dziękuje za uwagę i do następnego razu!
from time import sleep
LED= "P9_12"
GPIO.setup(LED, GPIO.OUT)
ilosc = input(" Hej! Ile raz chcesz mrugnac? ")
GPIO.output(LED, GPIO.HIGH)
sleep(1)
GPIO.output(LED, GPIO.LOW)
sleep(1)
Program zareaguje tak.
delay_off = input("A jak dlugo ma byc ciemno? ")
from time import sleep
LED= "P9_12"
GPIO.setup(LED, GPIO.OUT)
ilosc = input(" Hej! Ile raz chcesz mrugnac? ")
delay_on = input("Jak dlugo ma sie swiecic? ")
delay_off = input("A jak dlugo ma byc ciemno? ")
GPIO.output(LED, GPIO.HIGH)
sleep(delay_on)
GPIO.output(LED, GPIO.LOW)
sleep(delay_off)Podsumowanie
Zostało do omówienia jeszcze kilka funkcji, które są wbudowane w bibliotekę Adafruit, a które przydadzą nam się w sterowaniu inteligentnym domem.
Congratulations @reinmar! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Award for the number of posts published
Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word
STOP
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit