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) :
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