Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 4 gru 2024, o 10:20


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
 Tytuł: Sterownik USB
PostNapisane: 6 paź 2015, o 12:09 
Offline
Nowy

Dołączył(a): 15 lis 2014
Posty: 16
Pomógł: 0

Cześć!
Na wstępie chciałbym zaznaczyć że w kwestii łączenia układów opartych na mikrokontrolerach i OSa na komputerze doświadczenie mam zerowe. Stworzyłem kilka projektów (które wrzuciłem na forum) oraz studiuję 3 rok informatykę więc osobno - wiem z czym się te rzeczy je lecz nie mam pojecia jak je połączyć :) Na jeden z przedniotów na studiach chciałbym wykonać projekt w którym wykonałbym płytkę z klawiaturą multipleksowaną (bądż też po prostu z 6 przyciskami na sztywno wyprowadzonymi 6 liniami) z pomocą której możnaby emulować myszkę na Windowsie ( jeden przycisk to ruch w górę, drugi w dół, trzeci w lewo, czwarty w prawo, piąty PPm, szósty LPM ). Chciałbym aby dane z płytki były przerzucane za pomocą USB do komputera który... no właśnie który "jakoś" by to interpretował, tutaj pojawia się problem bo ta strefa jest dla mnie nieznana, wymaganie projektowe mówi aby "program operował na poziomie sterowników sprzętowych". Czy ktoś z Was może natrafił kiedyś na podobne projekty? Albo ktoś byłby w stanie podlinkować mi strony/materiały w których znajdę informacje jak zacząć i w którą stronę iść?
Pozdrawiam,
Jacek.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2015, o 12:40 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Tu masz to co chcesz tylko na Arduino:

https://www.arduino.cc/en/Tutorial/Keyb ... useControl

A jak nie chcesz się tak bawić to zainteresuj się ATmegą 32u4 (siedzi w leonardo) i napisz swoją bibliotekę w C na podstawie tej Ardionowej KLIK. I tyle. Filozofii tu nie ma.

Ewentualnie Atmel udostępnia API swoje dla USB:

http://www.atmel.com/tools/AVRUSBSERIES ... b=overview

------------------------ [ Dodano po: 10 minutach ]

a, jest jeszcze biblioteka V-USB czyli softwerowe rozwiazanie:

https://www.obdev.at/products/vusb/prjhid.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2015, o 13:33 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

elklepo napisał(a):
Chciałbym aby dane z płytki były przerzucane za pomocą USB do komputera który... no właśnie który "jakoś" by to interpretował, tutaj pojawia się problem bo ta strefa jest dla mnie nieznana, wymaganie projektowe mówi aby "program operował na poziomie sterowników sprzętowych".

Ale co ty masz zrobić na PC? Chyba nie masz napisać sterownika do tej myszki? Generalnie myszki korzystają ze standardowego sterownika HID a system operacyjny udostępnia jakieś API. Zakładam, że masz coś tam napisać z wykorzystaniem tego API, no to trzeba szukać przykładów programowania zwykłej myszki. Ja się na tym nie znam ale google pokazuje np. coś takiego: http://komputery.spryciarze.pl/zobacz/jak-programowac-w-c-winapi-8-obsluga-myszy
Co do strony mikrokontrolerowej to jest to dosyć proste, kolega w poście wyżej wspomniał o VUSB tu masz praktycznie gotowca: http://codeandlife.com/2012/02/11/v-usb-tutorial-continued-hid-mouse/. Dla lepszego zrozumienia działania V-USB wskazane jest zapoznanie z poprzednimi odcinkami tego tutoriala. Warto też zapoznać się ze specyfikacją HID (do znalezienia na stronach http://www.usb.org). Jak podany przykład się nie podoba to na stronach http://www.obdev.at jest mnóstwo opisów zrealizowanych projektów i można sobie coś wybrać.
Trzeba pamiętać że VUSB co prawda działa ale nie jest programowo i elektrycznie zgodny ze specyfikacją USB. Może więc lepiej skorzystać z mikrokontrolera ze sprzętowym USB np. jak wspomniany wyżej AVR ATmegą 32u4. Wtedy do obsługi USB jest framework LUFA, albo Atmelowski AVR USB Stack, albo jeszcze inny (http://www.fourwalledcubicle.com/files/LUFA/Doc/120219/html/_page__l_u_f_avs_atmel_stack.html). Te mikroprocki są trochę kłopotliwe bo nie ma wersji DIP ale można skorzystać ze wspomnianego wyżej Arduino Leonardo. Można także skorzystać z Arduino Uno, gdzie ten mikroprocek siedzi jako przejściówka USB-Serial (tzn. może nie ten konkretny ale jakiś z USB).

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2015, o 14:02 
Offline
Użytkownik

Dołączył(a): 20 lip 2015
Posty: 83
Pomógł: 6

Kilka przydatnych linków w kwestii USB i/lub emulacji urządzeń HID:

http://forum.atnel.pl/topic6137.html

http://rayshobby.net/hid-class-usb-serial-communication-for-avrs-using-v-usb/

http://4programmers.net/Z_pogranicza/Budowa_modu%C5%82u_kontrolnego_na_USB_przy_pomocy_mikrokontrolera_AVR


ewentualnie możesz zainteresować się DigiSparkiem, krótki opis i jak go zrobić jest tutaj (choć nie jestem pewien w 100% czy Ci wystarczy)

http://majsterkowo.pl/robimy-klona-digisparka/

Pozdro



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2016, o 10:23 
Offline
Nowy

Dołączył(a): 14 kwi 2016
Posty: 7
Pomógł: 0

Ja nie mogę tego ogarnąć. Ciągle coś mi się wysypuje...

_________________
Witam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2016, o 15:47 
Offline
Użytkownik

Dołączył(a): 20 lip 2015
Posty: 83
Pomógł: 6

arkilon napisał(a):
Ja nie mogę tego ogarnąć. Ciągle coś mi się wysypuje...


W pliku hid.cpp w lini 57 brakuje Ci średnika i zmień nazwę funkcji z run() na uruchom() , może Twój polski Windows nie rozumie po angielsku? :mrgreen:

A tak na serio, jak chcesz żeby ktoś Ci pomógł to załóż osobny wątek i opisz dobrze co Ci się "wysypuje"... :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2016, o 16:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

marmur napisał(a):
W pliku hid.cpp w lini 57 brakuje Ci średnika i zmień nazwę funkcji z run() na uruchom()
W załączonym kodzie brakuje funkcji main() :D

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO