Skocz do zawartości

[C++] Jak polaczyc program z urzadzeniami zewnetrznymi PC?


Pomocna odpowiedź

Napisano

Witam, robotyka interesuje mnie juz od dawna, ale niestety nigdy nie mialem mozliwosci jej rozwijania. Znam sie za to troszke na elektronice, informatyce i co nieco umiem programowac w C++.Od razu mowie, ze jestem kompletnie zielony jezeli chodzi o laczenie tych dwoch dziedzin(informatyka/elektronika).

Chcialem zatem zapytac sie, jak za pomoca C++ mozna komunikowac sie z prostymi urzadzeniami zewnetrznymi takimi jak odbiorniki energii elektrycznej(led, silniki), czujniki itp. Chodzi mi poprostu o zamiane kompa za mikroprocesor, ktory jest czescia robotow;D.

Za pomoca PC, a konkretnie to napisac program, ktory bedzie nimi sterowal. Nie, nie sa jeszcze podlaczone, poniewaz nie wiem nawet gdzie powinny zostac one podlaczone. Wejscie w ktorym beda urzadzenia nie jest wazne. Moze byc to LPT, USB, jack. Najlepiej, zeby bylo to na poczatek w miare proste.

No niby można przez LPT zrealizować proste sterowanie, ale znacznie bardziej uniwersalna jest komunikacja przez port szeregowy - RS-232. Wystarczy przejściówka RS-232/USB i Twój komputer będzie mógł gadać z właściwie dowolnym mikrokontrolerem.

Mowilem juz, ze nie chce sie komunikowac z mikrokontrolerem, ani za jego pomoca. Chodzi mi o podstawowe odbiorniki energi elektrycznej (diody, silniki, fotorezystory itp).

Czesc,
Z tego co wiem, to jedynie port LPT pozwala na niezależne sterowanie swoimi wyjściami.

Ewentualnie porty COM oprócz wysyłania danych mają kilka pinów którymi można sterować.

Jednak podejrzewam, że działałoby to jedynie z portami wbudowanymi w płytę główną, a nie przejściówkami USB<-> coś.

Ewentualnie zainteresuje się ekspanderem USB <-> IO. Na przykład takim.

Jednak sprowadza się to do tego o czym pisali poprzednicy, czyli sterowanie mikrokontrolerem, który przy odpowiednich komendach wystawia odpowiedni stan na wyjściu.

Ostatecznie taki projekt jest dosyć prosty, że warto byłoby wykonać coś takiego samemu;)

Wyobraź sobie, że podłączasz swoje urządzenie przez usb. USB ma 2 przewody do transmisji danych, gdzie, w skrócie rzecz ujmując, wysyłasz ciąg 0 i 1 w odstępach czasu.

Teraz masz swoje diody, silniczki czy co tam chcesz. Jak chcesz nimi sterować mając do dyspozycji dwa kable? OK. Jeszcze na siłę pewnie mógłbyś zapalić diodę i gasić, ale trudniejszych operacji nie zrobisz. Już nie mówiąc o odp. do komputera.

Potrzebujesz mikrokontoler, żeby tym sensownie sterować. "Umawiasz się", że taki ciąg 0 i 1 to takie a takie operacje i już mikrokontoler steruje odpowiednio tymi elementami.

Jeżeli nie chcesz się uczyć programować mikrokontoler to zainwestuj w coś gotowego. Ponoć arduino jest dość proste w nauce, choć sam nigdy nie korzystałem. Lub coś na wzór tego: http://www.x-robo.com/pl/

Potrzebujesz mikrokontoler, żeby tym sensownie sterować. "Umawiasz się", że taki ciąg 0 i 1 to takie a takie operacje i już mikrokontoler steruje odpowiednio tymi elementami.
SIPO - wejście szeregowe, wyjście równoległe

http://pl.wikipedia.org/wiki/Rejestr_przesuwny_(elektronika)

Więc w sumie nie potrzeba do tego uC.

Z portu LPT idzie dużo zrobić w prosty sposób. Więc na początek może nim się zajmij, a potem (jak nic nie spalisz 😃) przerzuć się na coś trudniejszego.

Ja dopiero się uczę elektroniki, więc pierwszy raz słyszę o "rejestrze przesuwanym". O porcie LPT słyszałem, ale z praktyką gorzej. Dzięki - poczytałem.

Ale mam pewne "ale" 🙂

Chyba łatwiej kupić to o czym pisałem wcześniej i zrobić to szybciej / lepiej / bardziej wszechstronnie .

Jeżeli kogoś nie stać to może kupić sam uC i wykorzystać kodowy kod( w Google nie problem znaleźć kod do podstawowych programów wykorzystujących I/O ) do konkretnych celów. Wtedy sprowadza się głownie do połączenia elementów. A jak autor pisze, że zna C++ ,więc zrozumieć kod uC na tyle, żeby dostosować go do własnych celów to chyba nie jest, aż takie trudne.

Pozdrawiam

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...