Elektronika sterowana Pythonem - szybki start z pyMCU
pyMCU to płytka z mikrokontrolerem PIC 16F1939 oferująca 13 pinów cyfrowych, 6 analogowych, 5 10-bitowych pinów PWM i 16 pinów szeregowych dla wyświetlacza LCD (2x16). Do komputera podłączana jest poprzez USB dzięki konwerterowi FTDI USB do UART FT232R. Dzięki temu użytkowanie płytki jest bardzo proste i nie wymaga żadnych dodatków. Oprogramowanie w postaci Pythonowego modułu dostępne są pod MS Windows, Mac OSX jak i pod Linuksa. Wszystko opisano na stronie projektu.
W odróżnieniu od np. Raspberry Pi nie jest to komputer, a jedynie znacznie prostszy mikrokontroler. Dzięki temu możemy podłączyć go do dowolnego komputera - laptopa, PCta, czy także Raspberry Pi i innych mini-komputerów posiadających złącze USB. Dostępne złącza pinowe dają podobną funkcjonalność co złącza dostępne na płycie Raspberry Pi, czy niektórych shieldach Arduino.
Biblioteka Pythona pozwala w dość prostym i przyjemnym środowisku kontrolować różne elektroniczne układy. Można też odczytywać wartości z różnych czujników (temperatury, natężenia światła, ruchu, pola magnetycznego itd.). Coś w sam raz do różnych ciekawych projektów.
pyMCU można zamówić ze sklepu za około 20 EUR - 80 PLN. Cena jest niska, gdyż jest to praktycznie tylko mikrokontroler i adapter USB. Nie ma procesora, pamięci RAM, czy innych chipów.
Potrzebne komponenty
Gdy dotrze do nas pyMCU mamy płytkę i kabel USB. Będziemy potrzebować także jakiś części elektronicznych, na których moglibyśmy eksperymentować. W lokalnym sklepie elektronicznym typu kamami.pl, czy avt.pl znajdziemy chyba wszystko co będzie nam potrzebne. Oto krótka lista:
- płytka stykowa (breadboard)
- kable połączeniowe (męskie-męskie, czasami przydać mogą się kable podwójnie żeńskie)
- dioda LED
- zestaw rezystorów (oporników)
- dodatkowo: potencjometr, fotorezystor, albo fotodioda i podobne części
Gotowe przewody połączeniowe pozwalają łączyć płytkę stykową ze złączami na płytce pyMCU. Na płytce stykowej zamontować można także wspomniane diody LED, czy inne części. Nie są to trwałe połączenia jak te lutowane, ale przydają się do szybkiego testowania i prototypowania układów.
Diody LED można zapalać i gasić, co jest swego rodzaju "Hello World" w takiej zabawie z elektroniką. Każda dioda ma podane natężenie i napięcie prądu jakie potrzebuje do pracy. Podłączenie zbyt silnego prądu spali diodę (dość szybko zgaśnie i już nie będzie działać). Dlatego wraz z diodą LED potrzebujemy rezystory (oporniki). W AVT sprzedają zestawy startowe, które są jak znalazł przy prototypowaniu.
Fotorezystory, fotodiody, czy niektóre czujniki temperatury zmieniają swoją rezystancję w zależności od natężenia światła, czy temperatury. Są tanie i łatwo wykorzystać je w prostym ćwiczebnym układzie.
Idąc dalej z zabawą w elektronika amatora przyda nam się lutownica, kalafonia i cyna - do lutowania. Nie obędzie się też bez wielu innych komponentów, ale o tym w innym artykule.
Oprogramowanie
Instalacja oprogramowania pod Linuksem sprowadza się do zainstalowania poprzez pip pakietów pyserial i pymcu. Żeby używać urządzenia bez konieczności wykonywania skryptów poprzez sudo do /etc/udev/rules.d/50-udev.rules trzeba dodać regułę:
Pierwszy układ - miganie diodą LED
Pierwszy układ jest bardzo prosty. Didę led podłączamy krótszą nóżką (katodą) do złącza D1 a dłuższą (anodą) poprzez opornik do GND.
Opornik (rezystor) powinien mieć kilkaset omów lub więcej by zapobiec ewentualnemu spaleniu diody. Optymalną, minimalną rezystancję można wyliczyć ze wzoru: (5V - X)/Y. Gdzie X to napięcie diody LED, a Y to natężenie prądu podawane dla diody. Diody LED o napięciu wyższym niż 5V nie będą świecić w układzie z pyMCU (płytka ta stosuje właśnie napięcie 5V). Jeżeli diodę podłączymy odwrotnie to nie będzie się świecić.
Żeby dioda LED zaczęła migać potrzebować będziemy taki oto kod:import pymcu
mb = pymcu.mcuModule()
for x in range(1,25):
mb.pinHigh(1) # Set D1 pin High (LED On)
mb.pausems(500) # Sleep for half a second
mb.pinLow(1) # Set D1 pin Low (LED Off)
mb.pausems(500) # Sleep for half a second
Rezystor w tym układzie można zastąpić fotorezystorem, czy fotodiodą - wtedy opór zależeć będzie od natężenia światła. Im jaśniej, tym jaśniej świecić będzie się dioda. Możliwości wykorzystania tych elementów jako czujników oświetlenia jest oczywiście znacznie więcej (o tym w kolejnych artykułach).
Comment article