Stronę tą wyświetlono już: 16883 razy
W starszych komputerach istnieją porty szeregowe RS-232 w nowszych komputerach portu tego raczej się nie uraczy. Jest jednakże światełko w tym ciemnym tunelu, gdyż sterowniki niektórych urządzeń USB emulują port szeregowy COM umożliwiając tym samym proste komunikowanie się z takim urządzeniem na nowszych maszynach. Do takich urządzeń należą płytki rozwojowe Arduino, ja (tak szczęśliwie się składa) jestem szczęśliwym posiadaczem klona Arduino MEGA 2560, który działa tak samo i jest o niebo tańszy.
Instalacja pakietu pyserial
Domyślnie pakiet pyserial nie jest zainstalowany, ale spokojna twoja rozczochrana głowa albowiem tak się składa, że z łatwością można doinstalować tenże pakiet za pomocą instalatora pakietów PIP wpisując w konsoli polecenie:
> pip install pyserial
co spowoduje zainstalowanie tegoż pakietu.
Collecting pyserial Downloading https://files.pythonhosted.org/packages/0d/e4/2a744dd9e3be04a0c090 7414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl (193k B) 100% |################################| 194kB 890kB/s Installing collected packages: pyserial Successfully installed pyserial-3.4
Konfiguracja połączenia z portem COM
Zanim zacznie się przygodę z komunikacją za pośrednictwem portu COM konieczne jest zapoznanie się z podstawami jego działania. Port ten przesyła dane dwukierunkowo za pomocą jednego pinu przesyłającego i jednego odczytującego dane. Dane przesyłane są zawsze z określoną prędkością mierzoną w bitach na sekundę. Standardowe ustawienie częstotliwości komunikacji z urządzeniem wynosi 9600 bitów na sekundę. Ważne aby wysyłać i odbierać dane z taką samą częstotliwością w przeciwnym przypadku dane nie będą odbierane przez urządzenie w sposób poprawny jak również komputer program nie będzie w stanie poprawnie odbierać danych.
Przy podstawowej konfiguracji konieczne jest również posiadanie wiedzy o nazwie portu. Pod Windowsem nazwy portów zaczynają się od COM i kończą liczbą określającą numer portu. Można sprawdzić w systemie, jakie porty COM są dostępne w Menadżerze urządzeń co też i widać na poniższym rysunku.
Pod Linuksem sprawa jest nieco inna, albowiem każdy port w tym systemie jest plikiem i jako nazwę portu należy tutaj podać ścieżkę do tegoż pliku. Najłatwiej będzie uruchomić Arduino IDE z uprawnieniami administratora i w menu Narzędzia → Port powinna być dostępna lista portów związanych z Arduino, które są ścieżkami do plików je reprezentujących.
Na Ubuntu płytka Arduino powinna być wykryta jako plik /dev/ttyACM0.
Kolejna sprawa to określenie długości wysyłanych pakietów, transmisja danych wymaga aby pierwszy bit był zarezerwowany jako bit startu a następnie w zależności od ustawień może być przesłany ciąg bitów zazwyczaj od 7-miu do 9-ciu bitów. Następnie jest jeszcze bit zakończenia transmisji danych. Koniec końców pod Windowsem konfiguracja komunikacji z Arduino może wyglądać następująco:
Wysyłanie danych portem COM
Wysyłanie danych za pomocą portu COM jest bardzo proste i wygląda następująco:
Przykład zastosowania komunikacji z Arduino MEGA 2560
Komunikację za pomocą portu szeregowego można wykorzystać np. do stworzenia wyświetlacza poziomu głośności muzyki z wykorzystaniem płytki adresowalnych diod WS2812 LED 5050 RGB 8x8 64.