Visual C++ – komunikacja RS232 cz.1

Visual C++ – komunikacja RS232 cz.1
Razem głosów: 5 co stanowi: 100% całości.

ide_04

Tym razem w języku C++  poznamy podstawy komunikacji przez port COM. Wielu zakrzyknie że przecież portu COM już niema w żadnym komputerze , tak to prawda , ale są przejściówki na układach FTDI czy Microchipa i innych , które to udostępniają virtualny port COM poprzez USB. Ponadto połączenie RS232 przez port COM  to nadal podstawa wymiany informacji między wieloma urządzeniami z komputerem.

Obiektem naszego zainteresowania będzie sterowanie diodą z komputera  podłączoną do płytki Arduino , czy też innego klona tej platformy.  Nasz pierwszy program popełnimy w konsoli dla ułatwienia. To co zaczynamy ??

Przejdź do FILE ->NEW->Project i wybierz nowy projekt CLR CONSOLE APP jak widać na obrazku niżej. Nadaj nazwę projektowi np. „ArduinoComm” i kliknij OK.

58_92c232a09307d5b215bd81d8fea3252b

Wybierz Plik ArduinoComm.cpp i otwórz go dwuklikiem :

58_d3fe5c2b7de36bb5fef778fedd100b2a

Uff…. teraz musimy sobie ustalić co właściwie ma robić nasz program :)

  1. Poprosi użytkownika o wprowadzenie portu szeregowego który chcemy używać i przechowa jego nazwę w zmiennej PortName
  2. Następnie Spyta czy chcemy włączyć światło czy nie
    – jeśli tak zostanie wysłane 1 włączenia portu
    – jeśli nie zostanie wysłane 0 wyłączenie portu
  3. Program będzie pracował w pętli czekając na zadanie od użytkownika lub jego zakończenie
  4. Musimy tez ustalić szybkość transmisji użytej do komunikacji z naszą płytką

W tym celu dodamy do naszego programu parę linijek kodu z podstawowymi funkcjami:

I w ten prosty sposób już działa nasz port COM:) ale …. warto nadmienić, że …

.NET Framework zawiera gotowe klasy zdefiniowane dla portu szeregowego. Nazywa sie ona SerialPort i jest dostępna w przestrzeni nazw „SYSTEM:: IO:: Ports ”
Będziemy używać również innych metod w przestrzeni nazw SYSTEM dlatego na początek użyjemy tej: dopisując do naszego kodu linijki:

Port szeregowy jako obiekt potrzebuje nazwy portu i szybkości transmisji w swoim konstruktorze , dodamy więc następujące wiersze do kodu. W naszym przypadku Obiekt Serial PORT będzie się nazywał „ARDUINO”.


Otwarcie PORTU:

podobnie jak w przypadku plików tekstowych pierwszą rzeczą jaką musimy zrobić jest ich otwarcie:) Open jest metodą klasy portu szeregowego, która jest częścią stworzonego obiektu ARDUINO. Dopiszemy teraz więc metodę otwarcia:

W ten sposób możemy już otworzyć port i nawiązać połączenie.

PĘTLA:
W naszym Programiku użyjemy pętli „do while” W pętli tej zmiennej string przypiszemy przechowywanie odpowiedzi na 2 pytania :

  • Czy chcesz kontynuować?
  • Włączyć lub Wyłączyć diodę ?

Nasza pętla jest prosta , ale nieco pusta więc czas na …

Ciało pętli:

Wysyłanie danych ze zmiennej String do tablicy obiektu ARDUINO odbedzie sie za pomoca metody WriteLine. Dodamy następne linijki kodu, myślę że ich znaczenie jest oczywiste:

Jak widzicie to jest banalnie proste, a jakże skuteczne  :) Jednak żeby nie było niedomówień ….

NASZ pełny program w C++ :
powinien wyglądać następująco:

I to wszystko możemy projekt zapisać i skompilować , program od strony PC jest gotowy :) teraz jednak musimy napisać program dla naszej płytki żeby sprawdzić czy wszystko działa tak jak chcieliśmy:

arduino-log

Otwieramy zatem Arduino IDE i piszemy :

W zasadzie program jest tak banalny, ze nie musimy go omawiać , ale warto wspomnieć, że połączenie RS232 nawiązujemy z szybkością 9600bps. Teraz możemy skompilować nasz program i wgrać do mikrokontrolera.

I to na tyle , najprostsza metoda sterowania z poziomu komputera diodą led na naszej płytce ładnie działa. Pobawcie się trochę :)

A następnym razem stworzymy coś większego i z okienkami i przyciskami – oczywiście w Visual Studio C++ Express

ar_led

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay