Kontrola nad USB

0

Witam, chciałbym się nauczyć kontroli nad moim USB (albo którymś z portów COM).

Chciałbym np podłączyć do nich elektroniczny włącznik i móc sterować np wiatrakiem, za pomocą aplikacji na komputerze. Czyli np chciałbym wiedzieć, jak sprawić, by w porcie pojawiło się napięcie na którymś z pinów o odpowiednim natężeniu albo coś :P (to tylko przykład)

Nie wiem tylko w jaki sposób się do tego zabrać, i w jaki sposób szukać informacji nt tej dziedziny programowania.

0

Sprawdź na <url>www.elektroda.pl</url>. Tam jest dużo takich tematów, a nawet widziałem jak zrobić z wyświetlacza od nokii 3330 termometr tylko nie na COM, ani USB. Są też fajne tematy jak zrobić wyświetlacz na którym jest wyświetlana, temp. procesora, prędkość wiatraków, tytuł piosenki na winampie i jeszcze więcej bajerów to już na COM.

0

do obslugi portow COM polecałabym ci bibliotekę CPort, (jakbys nie mogl znalezc moge ci ją podeslac). Komponenty w tej bibliotece są stosunkowo łatwe w obsłudze

0

ilo - gdybyś miał chwilkę wolnego czasu to prosiłbym o tą biblioteke, ( [email protected] )

0

@up: Raczej miała.....

0

Sory jeśli zaszedł pomyłek xD

0

Kurcze Huher ja chętnie bardzo, ale chyba za wcześnie zaoferowałam pomoc. Wygląda na to, że nie mam w domu tego, jedynie w pracy. Tak więc musisz sam poszukać, albo poczekać do poniedziałku.

0

Ach komponenty, komponenty.. One tylko obudowują WINAPI - jeśli na coś one pozwalają i w nim można to samo zrobić.

Obsługa RS232 (COM) - pisane z pamięci; podaję tylko kluczowe argumenty:

var
  lCOM: THandle;
  lParam: TDCB;
begin
  lCOM := CreateFile('COM1', GENERIC_READ, 0, OPEN_EXISTING, 0, 0, nil);
  if (lCOM <> INVALID_HANDLE_VALUE) then begin
    GetCommState(@lParam);
    //ToDo: Zmiana parametrów portu COM
    SetCommState(@lParam);
    //Wysyłanie Writefile(lCOM, ...);
    //Odbieranie ReadFile(lCOM, ...);
    CloseHandle(lCOM);
  end;
end;

Z każdym urządzeniem (włącznie z USB, Firewire, itp) komunikacja może przebiegać identycznie. W inny sposób podaje się tylko nazwę urządzenia (tu 'COM1', tam trzeba ją wykryć [enumerować] dedykowanymi funkcjami) i w inny sposób konfiguruje się parametry urządzenia. Wysyłanie i odbieranie działa tak samo.

Zarówno RS232, jak i USB, są portami z sygnałami wyłącznie cyfrowymi. Nie masz wpływu na analogowe parametry transmisji. Dodając, że oba są portami szeregowymi, nie masz również wpływu na stan konkretnego pinu w określonej chwili, bo dane transmitowane są w paczkach, a w czasie braku transmisji linia wraca do stanu określonego w specyfikacji portu. Wyjątkiem są linie równoległe - modemowe portu RS232 (ustawiane przez SetCommState), oraz ogólnie całe porty równoległe, jak LPT.

0

Szczawik pewnie, że można, ale jak ktoś jest jeszcze małym raczkującym robaczkiem, jak ja na przykład, to pewniej czuje się na gotowych komponentach ;)
W pracy używam CPort i stosunkowo dobrze się obsługuje. Tylko, że ja mam do tego jeszcze super szefa, który wiele rzeczy potrafi mi wyjaśnić.

0

Ja nie mówię, że komponenty są złe: przyspieszają i ułatwiają pracę - to nie ulega wątpliwości. Po to są.

Ale nie mogą one być domyślnym rozwiązaniem, bo jak zmienisz język, kompilator czy środowisko, to posiadana o nich wiedza jest nic niewarta. Natomiast jak znasz zasadę działania - co właściwie opisuje WINAPI, udostępniając tylko podstawowe funkcje - w nowym systemie musisz jedynie poznać odpowiedniki tychże funkcji i gotowe.

Swoją drogą, przesadzanie z komponentami powoduje pokazywanie się na forum programistów, którzy szukają komponentów TQuake czy TProgramKtóryPotrzebuję. Bo ze wszystkim liczą na gotowca, zamiast poznać system, w którym piszą..

0

Komunikacja z RS232 jest zdecydowanie łatwiejsza niż z USB. Ale jeśli się bardzo chcesz USB to możesz też zbudować, oczywiście jeśli się znasz na elektronice emulator który podepniesz pod USB ale będzie widziany jako COM i będziesz się komunikował z nim jak z COM'em. Nie jest to trudne wystarczy skorzystać z dwóch układów FT232BM (konwerter magistrali USB na port szeregowy) oraz pamięć EEPROM 93C46 (opcjonalnie jeśli chcesz swoje urządzenie jakoś nazwać i przechowywać tam jakieś informacje). Dodatkowo kilka rezystorów i kondensatorów i masz gotowy układ który podłączasz do kompa. Takie urządzonko znacznie ułatwia pracę dodatkowo nie musisz się martwić jeśli w kompie nie ma COM'a np. laptopy. Jak chcesz to moge ci zapodać schemat i wykaz elementów do takiego urządzenia a jak już je zrobisz to komunikacją PC-RS232 poradzisz sobie bezproblemu czy to przy pomocy komponentów czy jak napisał szczawik WINAPI.

1 użytkowników online, w tym zalogowanych: 0, gości: 1