Forum Klubu ROVERki.pl :: [R All]DIY Konwerter do sterowania z kierownicy.
GarażTechniczny FAQSzukajFAQRejestracjaZaloguj





Poprzedni temat «» Następny temat
[R All]DIY Konwerter do sterowania z kierownicy.
Autor Wiadomość
BigBoyPL 




Pomógł: 36 razy
Dołączył: 20 Sty 2012
Posty: 754
Skąd: Śląsk



Wysłany: Sro Maj 11, 2016 21:46   [R All]DIY Konwerter do sterowania z kierownicy.

Witam w moim projekcie :P Może jeszcze nie najwyższych lotów ale powoli do celu.

Do czego służy ten konwerter?
W obecnej sytuacji konwertuje on sygnał analogowy bezpośrednio z pilota przy kierownicy z R75/MG_ZT do postaci cyfrowej. W skrócie zamieniamy przyciski na coś w stylu klawiatury na USB.
Jednakże dzięki zastosowaniu Arduino można zaprogramować praktycznie wszystko, ograniczeniem jest tylko wyobraźnia.

Co jest potrzebne?
Potrzebna jest płytka Arduino. Program zadziała na wszystkich Arduino z procesorami ATMega: 8u2, 16u2, at90usb8, 32u2, 32u4 jednakże ja polecam wybrać coś z ATMega32u4, może to być klon Sparkfun "ProMicro", obecnie chyba najlepsza cena. Niektóre płytki różnią się też zasilaniem, dostępne są np. 5V oraz 3.3V. Dokładniejsza jest wersja 5V ponieważ od 0 do 5V mamy rozdzielczość 1024, w przypadku 3.3V jest mniejsza ale też będzie działać po drobnej modyfikacji programu.
Dodatkowo potrzebny jest oczywiście komputer z zainstalowanym środowiskiem Arduino, biblioteką HID by NicoHood oraz w przypadku płytek innych firm biblioteką dodatkowych płytek.

Jak wygląda kompatybilność?
Urządzenie jest wykrywane jako HID czyli tak samo jak mysz czy klawiatura USB. Testowane na 2 urządzeniach z różną wersją Androida i nie potrzeba żadnych dodatkowych programów czy sterowników. Działa również pod Windowsem jednakże czasami system może zapytać o sterowniki.

Schemat i podłączenie.

Słownie: Przy kostce od radia mamy 2 przewody od sterowania pilotem. Jeden podłączamy do pinu 5V, drugi do pinu A0, między pinem A0 a GND potrzebny jest rezystor 1KOm. Jeśli wcześniej mamy wpięty konwerter K-BUS YWQ100031 (biała obudowa za radiem)

Należy go wypiąć i połączyć przewody wychodzące z wchodzącymi bądź wpiąć się bezpośrednio przed tym konwerterem.

Instalacja.
Z Zainstalowaniem programu każdy powinien sobie poradzić. Link
Chciałbym się skupić co należy zrobić po zainstalowaniu.
Jeśli naszej płytki nie ma na liście należy ją zainstalować. Przykład Sparkfun ProMicro oraz inne klony z napisem ProMicro (ATMega32U4 5V).
Poradnik po angielsku
Podłączamy nasze Arduino do komputera, oczywiście sam nie znajdzie sterowników, pobieramy paczkę ze strony producenta płytki. Sterowniki nie mają certyfikatu podpisanego cyfrowo, jeśli macie windows 8, 8.1 lub 10 należy włączyć jednorazowo obsługę niecertyfikowanych sterowników. Instalujemy sterowniki tak jak na obrazkach,
następnie kiedy już nasze Arduino jest widoczne w systemie trzeba też zainstalować bibliotekę w środowisku. Klikamy Plik>Preferencje i wklejamy adres do dodatkowych płytek :
Kod:
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json
. Następnie wybieramy Narzędzia>Płytka...>Menadżer Płytek, w filtrze wpisujemy "Sparkfun AVR" i instalujemy. Od tej pory w Narzędzia>Płytka mamy już swoje urządzenie które wybieramy. Dodatkowo w menu Narzędzia wybieramy odpowiedni Procesor oraz wirtualny port COM. Należy pamiętać że przy zmianie gniazda USB zmienia się też numer portu COM i trzeba go od nowa wybrać.

Instalowanie dodatkowych bibliotek.
Wchodzimy w Szkic>Dołącz bibliotekę>Zarządzaj bibliotekami w filtrze wpisujemy "HID-Project" i instalujemy. To samo robimy jeśli w przyszłości będziemy potrzebować innych bibliotek, np. do Enkodera.

Jeśli wszystko jest ok możemy przystąpić do wgrywania pierwszego, testowego programu. Jeśli mamy oryginalne Arduino (np. Leonardo) możemy wgrać program z Plik>Przykłady>Basics>Blink. Na płytce jest dioda led o nazwie L podłączona do pinu 13. Jeśli mamy niestandardową płytkę i nie mamy żadnej testowej diody led, są tylko RX i TX możemy posłużyć się kodem z linku Blink, wystarczy usunąć wszystko ze szkicownika i wkleić skopiowany kod.
Następnie klikamy ptaszek w kształcie V w lewym górnym rogu (Zweryfikuj), jeśli wszystko zakończy się pomyślnie dostaniemy tylko komunikat zwrotny o zajętości pamięci w Arduino, w przeciwnym wypadku wyświetli się błąd z pomarańczowym tekstem. Jeśli wszystko jest i nasze Arduino jest podłączone możemy kliknąć przycisk Wgraj (strzałka w prawo) i po chwili zobaczymy jak nasze arduino miga.

Jeśli mamy możliwość zaprogramować nasze arduino w samochodzie możemy najpierw sprawdzić działanie pilota oraz czy połączenia są poprawne.
Otwieramy program Plik>przykłady>Basics>AnalogReadSerial. Polecam zmienić delay(1); na delay(100); w naszym przypadku jest to szybkość wyświetlania wartości wciśniętych przycisków.
Weryfikujemy program, jeśli wszystko jest ok klikamy Wgraj. Nie zamykamy środowiska Arduino, klikamy Narzędzia>Monitor Szeregowy.
Klikamy po kolei każdy przycisk i zapisujemy jego wartość. Warto to sprawdzić ponieważ czasami tolerancja rezystorów może wyjść poza zakresy jakie przyjąłem. Przy okazji sprawdzamy działanie całego układu oraz wszystkich przycisków.

Na końcu możemy wgrać (a przede wszystkim przeczytać) ten program:
http://pastebin.com/Sp1FKkPX
Dla każdego przycisku mamy przedziały wartości jak w matmie ;] Wszystko powinno się zgadzać ale trzeba po prostu sprawdzić czy wszystko jest na 100% ok. W razie czego trzeba po prostu zmienić odpowiednio przedziały.
Ostatnio zmieniony przez BigBoyPL Czw Paź 20, 2016 20:53, w całości zmieniany 1 raz  
 
 
SPAMU¦






Wysłany: Sro Maj 11, 2016 21:46   Post o charakterze reklamowym. Każde Twoje kliknięcie zwiększa nasze szanse przeżycia ;)




 
 
dawidd 




Pomógł: 44 razy
Dołączył: 02 Wrz 2007
Posty: 3431
Skąd: Czestochowa/Radomsko



Wysłany: Czw Maj 12, 2016 06:01   

:brawo:
czekam na płytkę i robię :)
Na pewno nie tylko w roverach Twój projekt wyląduje. Kawal dobrej roboty
_________________
Ekspresy do kawy, serwis 504602363
juz nie mój MG ZR160: https://forum.roverki.eu/viewtopic.php?t=108158
 
 
Remigiusz 




Pomógł: 375 razy
Dołączył: 12 Gru 2007
Posty: 7743
Skąd: Podkarpacie

Rover 45

Wysłany: Czw Maj 12, 2016 06:13   

Powinieneś dodać jeszcze bibliotekę

Kod:
https://github.com/NicoHood/HID/blob/master/src/HID-APIs/ConsumerAPI.h


do projektu :) Jeżeli dobrze rozumiem to to tylko daje sygnał na Tableta :P :roll:
_________________
( ͡° ͜ʖ ͡°) Diagnostyka i Chip Tuning Rover/MG Diesel oraz kodowanie pilotów
 
 
 
BigBoyPL 




Pomógł: 36 razy
Dołączył: 20 Sty 2012
Posty: 754
Skąd: Śląsk



Wysłany: Czw Maj 12, 2016 06:49   

Dlatego właśnie trzeba zainstalować hid-project. Służy on do definiowania niestandardowych funkcji. Bez niego można zrobić tylko prostą klawiaturę a-z ctrl shift itp. oraz funkcje myszki.
Wymagana jest nowsza atmega przynajmniej 8u8 bo ma w środku bezpośredni konwerter usb a nie rs232 do usb jak starsze. Tylko dzięki temu można zmieniać typ wykrywanego urządzenia USB.
 
 
dawidd 




Pomógł: 44 razy
Dołączył: 02 Wrz 2007
Posty: 3431
Skąd: Czestochowa/Radomsko



Wysłany: Nie Maj 22, 2016 20:45   

Dziś zmontowałem pilota i sprawdziłem w aucie. Generalnie działa, przyciski bez korekt rezystancji w programie są zidentyfikowane poprawnie. Pisze generalnie, bo jest jedno ale. W programie nie ma nic o wykluczeniu drgań styków w mikroswitchach co skutkuje tym, ze przy jednokrotnym wciśnięciu przycisku w tablecie wywołuje akcje kilkukrotnego wciśnięcia przycisku. BigBoyPL, poradzisz coś?
Ale sam projekt jest bajecznie prosty, instalacja arduino opisana tak ze tylko głupi by sobie nie poradził. Naprawdę BigBoyPL, zrobiłeś kawał dobrej roboty. Dzięki wielkie, bo chyba ja Ci najwięcej trułem i dalej truje w temacie pilota :)
_________________
Ekspresy do kawy, serwis 504602363
juz nie mój MG ZR160: https://forum.roverki.eu/viewtopic.php?t=108158
 
 
BigBoyPL 




Pomógł: 36 razy
Dołączył: 20 Sty 2012
Posty: 754
Skąd: Śląsk



Wysłany: Pon Maj 23, 2016 14:47   

Jedyna rzecz jaką można zmienić bez kombinowania to zwiększenie wartości delay. Jak dasz mniej to 1 krótkie naciśnięcie zmieni ci od razu głośność do skrajnej. Jak dasz za dużo to trzeba będzie długo trzymać.
 
 
dawidd 




Pomógł: 44 razy
Dołączył: 02 Wrz 2007
Posty: 3431
Skąd: Czestochowa/Radomsko



Wysłany: Pon Maj 23, 2016 19:36   

zmieniłem delay na 150, na "stole" było ok, ale w aucie jeszcze drgania styków dają o sobie znać. Jeszcze zmienię do 200 i powinno byc ok. Generalnie pilot działa jak trzeba. Jeszcze raz wielkie dzięki.
_________________
Ekspresy do kawy, serwis 504602363
juz nie mój MG ZR160: https://forum.roverki.eu/viewtopic.php?t=108158
 
 
_Matt_ 



Dołączył: 18 Kwi 2015
Posty: 10



Wysłany: Pon Maj 23, 2016 19:40   

Właśnie przyszło do mnie dzisiaj Pro Micro więc na dniach też będę montował i zdam relacje :)
 
 
Remigiusz 




Pomógł: 375 razy
Dołączył: 12 Gru 2007
Posty: 7743
Skąd: Podkarpacie

Rover 45

Wysłany: Pon Maj 23, 2016 19:45   

BigBoyPL, Zamiast delay lepiej uzyc funkcji millis() i liczyc czas jak dlugo sie faktycznie naciska i przez to zrobic rozne mozliwosci czy sie naciska non stop czyli trzyma czy tylko naciska krotko.
_________________
( ͡° ͜ʖ ͡°) Diagnostyka i Chip Tuning Rover/MG Diesel oraz kodowanie pilotów
 
 
 
BigBoyPL 




Pomógł: 36 razy
Dołączył: 20 Sty 2012
Posty: 754
Skąd: Śląsk



Wysłany: Wto Maj 24, 2016 20:48   

Oczywiście że można zrobić sporo. Nie piszę tego z sarkazmem. Jeśli dobrze kojarzę tutorial opisuje nawet cały kod Debounce dla przycisków z wykorzystaniem millis.
Remigiusz, widziałem gdzieś na forum twój projekt z wyświetlaczem. Jako osobie która dopiero poznaje Arduino oraz C++ zajęłoby mi to sporo czasu ;]

Wracając na ziemię mogę powiedzieć że już dawno mógłbym popisać coś odnośnie enkodera, podpatrzeć w gotowcach i przykładach itp.
Jedna wymówka jest taka że praktycznie codziennie robię coś jakiemuś znajomemu albo sobie związanego z elektroniką a druga jest taka że z natury jestem leniwy ;d
 
 
dawidd 




Pomógł: 44 razy
Dołączył: 02 Wrz 2007
Posty: 3431
Skąd: Czestochowa/Radomsko



Wysłany: Pią Maj 27, 2016 06:48   

BigBoyPL, a jest możliwość dopisania do kodu takiego polecenie żeby po podaniu stanu wysokiego na któreś wejście w płytce uruchamiał sie konkretny program, w moim wypadku easycap viewer?
_________________
Ekspresy do kawy, serwis 504602363
juz nie mój MG ZR160: https://forum.roverki.eu/viewtopic.php?t=108158
 
 
BigBoyPL 




Pomógł: 36 razy
Dołączył: 20 Sty 2012
Posty: 754
Skąd: Śląsk



Wysłany: Pią Maj 27, 2016 17:22   

Musisz mieć do tego aplikacje na androida działającą w tle, np. External Keyboard Helper. Później możesz skorzystać z przykładów klawiatury.
 
 
_Matt_ 



Dołączył: 18 Kwi 2015
Posty: 10



Wysłany: Nie Maj 29, 2016 13:37   

Ok wszystko podłączone i działa. Nie obyło się bez problemów ale to była wina sterowników. Faktycznie dobrze jest ustawić wartość delay na min. 200 bo przy 100 ciężko jest włączyć play :mrgreen: Wielkie dzięki :piwko: BigBoyPL
 
 
bartek_tychy 



Dołączył: 19 Paź 2015
Posty: 2



Wysłany: Pon Lip 11, 2016 20:13   

Witam

A ja niestety mam problem, faktem jest ze projekt nie laduje w roverze tylko chevrolecie ale mniejsza o to.
Komputer arduino widzi na krótko spięte z kompem niby działa niestety nexus juz w żaden sposób nie reagujemy w ogóle po usb nie daje zasilania dopiero po podłączeniu z zewnątrz 5v arduino ożywa ale dalej tablet nie reaguje.
Mam huba i podpiętego daca i to działa.

Może jakieś sugestie dzięki z góry
 
 
BigBoyPL 




Pomógł: 36 razy
Dołączył: 20 Sty 2012
Posty: 754
Skąd: Śląsk



Wysłany: Wto Lip 12, 2016 19:07   

Ciekawe ;]
Skoro DAC działa to znaczy że tablet jest w trybie OTG i daje zasilanie.
Z drugiej strony skoro Arduino świeci podłączone do komputera to też to zasilanie odbiera.
Za mało danych. Najlepiej foto jak to wszystko jest podłączone razem z przejściówkami itp.
 
 
bartek_tychy 



Dołączył: 19 Paź 2015
Posty: 2



Wysłany: Sro Lip 13, 2016 18:32   

Witam ponownie,

Panowie problem rozwiązany, a okazało się że mój hub usb był uszkodzony po wymianie na nowy DAC działa poprawnie, nie wiesza się i sterowanie z kierownicy ruszyło od razu po podpięciu.

BigBoyPL dzieki za opracowanie tego manuala, dzieki Tobie zrobiłem to czego najbardziej brakowała przy naszych samochodowych tabletach, przy okazji czy kod źródłowy programu może być rozpowszechniany dalej ?

Pozdro
 
 
BigBoyPL 




Pomógł: 36 razy
Dołączył: 20 Sty 2012
Posty: 754
Skąd: Śląsk



Wysłany: Czw Lip 14, 2016 16:45   

Oczywiście, nie ma z tym żadnego problemu. Jedynie jeśli to nie problem chciałbym wiadomość na pw gdzie to idzie żeby w razie czego mógłbym pomagać.
 
 
dooddie 



Dołączył: 02 Mar 2016
Posty: 4



  Wysłany: Pon Paź 17, 2016 16:13   

Witam
Na początku podziękowanie dla BigBoyPL-a za fajną prostą i dokładną instrukcje, świetna robota, osoby takie jak ja nie mające styczności z elektroniką powinny sobie poradzić. Ja sobie dałem rade.
Mam pytanie do fachwca.
W moim aucie pilot posiada trzy kabelki zamiast dwóch. Część przycisków vol+, next i mode idą na jednym kablu, a vol-, prev na drugim.
Żeby nie było łatwo to vol+ i vol- mają tą samą wartość (607), tak jak next i prev (865) . W załączniku przedstawiam schemat jak bym połączył kable pilot-arduino i szkic programu po przeróbce.
BigBoyPL proszę powiedz czy dobrze jest to zrobione?
Z góry dziękuje za pomoc.
Pozdrawiam
Dooddie
 
 
BigBoyPL 




Pomógł: 36 razy
Dołączył: 20 Sty 2012
Posty: 754
Skąd: Śląsk



Wysłany: Sro Paź 19, 2016 15:44   

Dziś akurat mam wolne, nazbierało mi się 6 stron z nowych tematów do przeczytania ale czytam po kolei :D
dooddie, y= analogRead(A2); ale to byś pewnie zauważył :)
Niestety nie napisałeś co to za pilot więc nie mogę sobie tego wyobrazić :)
Najprościej to podłącz wszystko tak jak na schemacie i wrzuć do Arduino przykład AnalogReadSerial, potem zobacz co ci wypluje Monitor portu COM dla każdego przycisku, następnie w programie zmień A0 na A2 i powtórz czynność :)

Warto byłoby wrócić do tego projektu, mam gdzieś radio z E39 i chyba wyciągnę z niego enkoder :)
 
 
thorgalxxx 




Dołączył: 14 Mar 2011
Posty: 281
Skąd: Ziębice



Wysłany: Czw Paź 20, 2016 19:05   

Napisałem w dziale tabletu zamiast tutaj. Zrobiłem pilota i wszystko jest ok poza vol -. Wartości przycisku zmierzone w aucie są na poziomie od 950 do 980. Co zmienić w kodzie żeby przycisk chodził. Próbowałem sam zmienić wartość na x<1000 i wartość wpisałem 980, co spowodowało zadziałanie przycisku, ale na stałe czyli jakby był wciśnięty ciągle.

Czy taki zapis będzie ok?

/*Car remote sketch by Bigboy™
Ten kod uzywa biblioteki HID od NicoHood
Zobacz dokumentacje Projektu HID aby dowiedziec sie wiecej.
https://github.com/NicoHood/HID/wiki/Consumer-API
idealne wartosci przyciskow 0 = nic 255 = mode 392 = prev 551 = next 749 = vol+ 1023 = vol-
rezystancje : pullup 2,2K, 3180R(1680+1500), 1680R(860+820), 860R(390+470), 390R, 0R
Wszystkie funkcje https://github.com/NicoHood/HID/blob/master/src/HID-APIs/ConsumerAPI.h

*/

#include "HID-Project.h"

void setup() {
Consumer.begin();
}

void loop() {
delay(200); //szybkosc dzialania przyciskow
int x;
x = analogRead(A0); //A0 to pin odczytu wartosci
if ( (x >= 900) && (x <= 1000) ) { //wartosc 970
Consumer.write(MEDIA_VOL_DOWN); //przycisk vol-
}
else if ( (x >= 700) && (x <=800) ) { //wartosc 749
Consumer.write(MEDIA_VOL_UP); //przycisk vol+
}
else if ( (x >= 500) && (x <=600) ) { //wartosc 551
Consumer.write(MEDIA_NEXT); //przycisk next
}
else if ( (x >= 350) && (x <=450) ) { //wartosc 392
Consumer.write(MEDIA_PREV); //przycisk prev
}
else if ( (x >= 200) && (x <=300) ) { //wartosc 255
Consumer.write(MEDIA_PLAY_PAUSE); //przycisk mode
}
}
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać załączników na tym forum

Wersja do drukuWersja do druku
Dodaj temat do ulubionych

Skocz do:  

Podobne Tematy
Temat Autor Forum Odpowiedzi Ostatni post
Brak nowych postów [R75] Podłączenie sterowania radiem z kierownicy
wingregor Car-audio, nawigacje, radia CB 3 Czw Lip 18, 2013 13:27
keda
Brak nowych postów [R75] Konwerter iPod do radia Alpine
xxxgrze Car-audio, nawigacje, radia CB 9 Pią Maj 09, 2008 17:09
Godlike
Brak nowych postów Jakiego koloru jest przewód do sterowania wzmacniaczem
arturwar Car-audio, nawigacje, radia CB 9 Wto Lut 23, 2010 22:36
Gość
Brak nowych postów [R75] Sterowanie radia z kierownicy
Matty Car-audio, nawigacje, radia CB 2 Pią Wrz 09, 2011 10:12
Matty
Brak nowych postów [R75] Sterowanie z kierownicy - joystick?
maryba Car-audio, nawigacje, radia CB 30 Nie Mar 13, 2011 18:58
maryba



Forum Klubu ROVERki.pl  
Powered by phpBB modified by Przemo © 2003 phpBB Group | © klub ROVERki.pl
Hosted by NETLink