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.

Płytka pyMCU z mikrokontrolerem sterowana poprzez USB

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łę:

KERNEL=="ttyUSB0", MODE="0666"
Pod MS Windows sterownik do adaptera USB powinien zostać zainstalowany przez system, a pod OSX trzeba zrobić to ręcznie. Poza tym instalujemy pyserial i pymcu tak jak w przypadku Linuksa.

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.

Miganie diodą LED z pyMCU
Schemat układu

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
Wykonanie skryptu powinno zapoczątkować miganie diody. W przypadku Linuksa trzeba zwrócić uwagę na uprawnienia. Jeżeli skrypt twierdzi że nie podłączono żadnego urządzenia to zapewne nie mamy uprawnień dostępu do niego i trzeba wykonać skrypt poprzez sudo, albo dodać wpis do udeva.

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

Układ z diodą LED i fotodiodą
RkBlog

Elektronika i Python, 3 June 2013

Comment article
Comment article RkBlog main page Search RSS Contact