Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

HID AVR - Komunikacja z PC

11111olo 07 Gru 2013 19:35
  • #1 07 Gru 2013 19:35
    11111olo
    Poziom 43  

    Witam

    Opanowałem wszelkie klawiatury, myszki, joysticki itp. na HID.

    Chcę pójść dalej i wymieniać dane z PC.
    Na początek nie musi to być nic spektakularnego. Wystarczy że jak coś na pc zrobię to zaświeci się led lub zgaśnie czy też naciśnięcie przycisku od strony AVR spowoduje "coś" na PC.

    Może jest to gdzieś opisane w postaci tutoriala?

  • #2 08 Gru 2013 01:39
    Szymon Tarnowski
    Poziom 27  

    W książce "USB Complete" Ian Axelson jest to dobrze rozpisane, zarówno od strony procka jak i PC.

  • #3 08 Gru 2013 09:32
    robiw
    Poziom 26  

    To nie rozumiem. Piszesz "Opanowałem wszelkie klawiatury, myszki, joysticki itp. na HID. " a pytasz o podstawy ze strony PC? robiw

  • #4 08 Gru 2013 10:09
    11111olo
    Poziom 43  

    Czego nie rozumiesz?
    AVR to nie PC!
    Na AVR potrafię zrobić klawiatury itd. na HID ale nie potrafię zrobić komunikacji opartej na HID między AVR i PC.

    Nie pytam o podstawy ale o jakieś przykłady. Znalazłem z wykorzystaniem biblioteki libusb ale nie o to mi chodzi.
    Przykład taki jest np.

    tu

    .
    Są też inne

    przykłady

    .

  • #5 08 Gru 2013 11:01
    YbKYW
    Poziom 9  

    11111olo napisał:
    Czego nie rozumiesz?
    AVR to nie PC!
    Na AVR potrafię zrobić klawiatury itd. na HID ale nie potrafię zrobić komunikacji opartej na HID między AVR i PC.

    Nie pytam o podstawy ale o jakieś przykłady. Znalazłem z wykorzystaniem biblioteki libusb ale nie o to mi chodzi.
    Przykład taki jest np.

    tu

    .
    Są też inne

    przykłady

    .


    Ale co to znaczy Na AVR potrafię zrobić klawiatury itd. na HID ? Bo później piszesz, że jednak nie potrafisz.

  • #6 08 Gru 2013 12:08
    11111olo
    Poziom 43  

    HID umożliwia komunikację bez dodatkowych sterowników, ale to pewnie wiesz. Klawiatura, mysz, joystick to urządzenia które przesyłają dane tylko w jedną stronę (klawiatura może w dwie) ale to są dla systemu urządzenia o "wiadomych" możliwościach i wykorzystanie ich w inny sposób jest możliwe.

    Opanowałem to dlatego że wymaga to jedynie oprogramowania mikrokontrolera.


    Czy teraz już jest wszystko jasne?

    Jak nie to dodam że HID można wykorzystać do przesyłu własnych danych i do tego dowolnych w obie strony tylko to wymaga napisania softu na PC i tylko dlatego założyłem ten temat aby ktoś mnie nakierował jak do tego podejść, podając jakieś przykłady.

  • #7 08 Gru 2013 17:49
    Marek_Skalski
    Poziom 31  

    11111olo napisał:
    Czego nie rozumiesz?
    AVR to nie PC!
    Na AVR potrafię zrobić klawiatury itd. na HID ale nie potrafię zrobić komunikacji opartej na HID między AVR i PC.

    Nie pytam o podstawy ale o jakieś przykłady....

    Niegrzecznie, nieładnie i najwyraźniej nie wiesz o co chodzi w klasie HID.
    Do przesyłania danych znacznie lepiej używać klas MSC, CDC, Audio, itp.
    HID, to tylko 64 bajty w raportach. Dobre do zapalania ledów na klawiaturze.
    I znowu... jeżeli zrobiłeś wszystkie rodzaje urządzeń, to znasz podstawową aplikację Atmela do przesyłania danych z urządzenia HID do PC i vice versa (AVR328). W oparciu o to możesz sobie napisać dowolny program na PC, w dowolnym języku.
    Jeżeli chcesz coś więcej, to zapoznaj się z takim (pozornie prostym) urządzeniem jak 3d Connection - Space Pilot Pro, albo Space Explorer czy inny z tej rodziny. Gwarantuję, że będziesz miał zajęcia na kolejne 2 lata.
    A tak poważnie, to jeżeli chcesz łączyć funkcjonalność to zrób urządzenie kompozytowe (połącz deskryptory), np. HID_KBD + CDC + MSC. Akurat AVRy dają tutaj dużo możliwości ponieważ udostępniają max. 16 EP. Do tego nie trzeba tutków (Ctrl+C/Ctrl+V), tylko trochę wybraźni.

  • #8 08 Gru 2013 19:10
    majeranek53
    Poziom 23  

    Witam.
    Polecam książkę: A. Daniluk "USB Praktyczne programowanie z Windows API w C++". Wyd. Helion.
    Na stronie wydawnictwa są załączone przykłady.

  • #9 08 Gru 2013 20:15
    Mat_91
    Poziom 25  

    Nie wiem czy pomogę ale jak byś ściągnął sobie bibliotekę USB od microchipa dla dowolnego procka z USB to tam masz przykłady z wykorzystaniem HID. Działa to mniej więcej w ten sposób że microchip udostępnia gotową bibliotekę hidclass.dll na podstawie której piszesz aplikację na PC. Są tam zawarte w sumie 4 funkcje (open, read, write, close). Gotowa aplikacja też jest oraz źródła do niej. Możesz sobie podglądnąć. Kiedyś z tego korzystałem i działało to bardzo przyjemnie:)

    Czy zadziała z AVR musisz sam sprawdzić. Ale przynajmniej masz jakąś bazę :)

  • #10 08 Gru 2013 22:32
    Szymon Tarnowski
    Poziom 27  

    Mat_91 napisał:
    Działa to mniej więcej w ten sposób że microchip udostępnia gotową bibliotekę hidclass.dll na podstawie której piszesz aplikację na PC. Są tam zawarte w sumie 4 funkcje (open, read, write, close). Gotowa aplikacja też jest oraz źródła do niej. Możesz sobie podglądnąć. Kiedyś z tego korzystałem i działało to bardzo przyjemnie:)
    Ale kolega nie chce gotowej dll'ki z resztą mu się nie dziwię, bo jest zbędna. Żeby znaleźć nazwę urządzenia wystarczy wywołać dwie funkcję WinAPI, a później tylko CreateFile, ReadFile i WriteFile.

  • #11 08 Gru 2013 22:36
    11111olo
    Poziom 43  

    Nie wiem jak to da się zrobić. Jak bym chciał użyć gotowej biblioteki to bym potrzebował sterownik, a tego nie chcę.
    Wiem że HID nie jest demonem prędkości ale do prostych rzeczy się nadaje świetnie.
    Sprawdzanie po VID/PID i coś jeszcze jest potrzebne. Założyłem temat bo nie mogę znaleźć przykładu jak to zrobić.

    Proszę do książek mnie nie odsyłać bo jak bym chciał którąś kupić to temat tego wątku by brzmiał zupełnie inaczej.

    Przykład

    z gotową biblioteką z której nie chcę korzystać.

  • #14 09 Gru 2013 13:38
    Mat_91
    Poziom 25  

    @11111olo

    Jesteś w błędzie. Użycie gotowej biblioteki nie narzuca Ci konieczności użycia dodatkowych sterowników. Hid to hid. Wkładasz wtyczkę do gniazda, sterownik klasy hid instaluje się sam o czym wiesz. Biblioteka o której mówię umożliwia Ci tylko komunikację z tym urządzeniem. Pobierz sobie przykłady od microchipa to zobaczysz jak to jest tam zrobione.

  • #15 09 Gru 2013 17:07
    slx
    Poziom 18  

    Przecież w

    BootloadHID

    masz przykład komunikacji PC <-> AVR z wykorzystaniem HID, bez żadnych dodatkowych sterowników i bibliotek.

  • #16 09 Gru 2013 19:05
    11111olo
    Poziom 43  

    HID AVR - Komunikacja z PC



    Cytat:
    Na początek nie musi to być nic spektakularnego. Wystarczy że jak coś na pc zrobię to zaświeci się led lub zgaśnie czy też naciśnięcie przycisku od strony AVR spowoduje "coś" na PC.


    Wiem że jest ten bootloader ale to skok na głęboką wodę.

  • #17 09 Gru 2013 19:16
    Marek_Skalski
    Poziom 31  

    No to skacz :)
    Boisz się, że się czegoś pożytecznego nauczysz?
    Rozwijaj się, nie stój w miejscu.

    Cytat:

    Chcę pójść dalej i wymieniać dane z PC.

  • #18 09 Gru 2013 19:53
    11111olo
    Poziom 43  

    Mój stopień zaawansowania w języku C określił bym raczej na "dolnej półce".
    C na AVR jest o wiele prostszy niż PC i chciałbym zacząć od najprostszych rzeczy.
    Z bootloader to na pewno na tym etapie nie dam rady :(

  • #19 09 Gru 2013 22:09
    Marek_Skalski
    Poziom 31  

    Jeżeli chcesz pisać wszystko, ale to wszystko od podstaw w swojej aplikacji, to rzeczywiście może być problem. Ale jeżeli chcesz skorzystać z dowolnego środowiska MS Visual C++ albo Borland C++ Builder, to nagle wszystko się okazuje dość łatwe.
    W oparciu o kilka dokumentów znalezionych w sieci, nie wiedząc nic o C, napisałem swoją pierwszą aplikację do komunikacji po RS232. Aplikacja sterowała silnikiem w oparciu o slidery + odczytywała i wyświetlała na ekranie kilka parametrów typu temperatura i ciśnienie.
    W oparciu o AVR328 napisałem i rozbudowałem aplikację (kopię przykładowego programu Atmela) w Borland C++. To środowisko dzisiaj jest chyba obiektem muzealnym, ale wtedy było jedynym dla mnie dostępnym.
    A skoro swój stopień zaawansowania oceniasz na dość niski, to właśnie masz możliwość nauczenia się czegoś przydatnego. Nie czekaj, żaden dzień nie wróci.
    Powodzenia!

  Szukaj w 4mln produktów
Przeglądaj produkty