Elektroda.pl
Elektroda.pl
X
CControls
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Kierownica do komputera na Mikrokontrolerze

Tomasz1902 30 Wrz 2017 20:54 903 22
  • #1 30 Wrz 2017 20:54
    Tomasz1902
    Poziom 3  

    Witam 😁
    Chciałbym państwa prosić o to aby panowie mi pomogli w sprawie zrobienia kierownicy do komputera na mikrokontrolerze atmega. Od razu chciałem wytłumaczyć że wiem o tym że można zrobić to na arudino ale tego nie chce bo po pierwsze jest to droższe rozwiązanie a po drugie chciałbym się nauczyć programować avr.
    Z góry dziękuję za pomoc
    Pozdrawiam 😃

    0 22
  • CControls
  • #2 30 Wrz 2017 21:04
    Paulo93
    Poziom 17  

    Jakie jest Twoje doświadczenie z elektroniką i programowaniem?

    0
  • CControls
  • #3 30 Wrz 2017 21:12
    Tomasz1902
    Poziom 3  

    Paulo93 napisał:
    Jakie jest Twoje doświadczenie z elektroniką i programowaniem?

    Z elektronika to filmy z YouTube i jakieś proste układy a z programowaniem to jakieś proste programy na arudino a z atmega to dopiero zaczynam i narazie miganie dioda umiem. A Dodatkowo dodam że jestem w drugiej klasie w technikum na profilu mechatronik.

    0
  • #4 30 Wrz 2017 21:19
    zster

    Poziom 28  

    Jeśli dopiero zaczynasz z jakimkolwiek programowaniem, Arduino nie jest złym wyborem. Pozwala w miarę szybko i bezboleśnie zapoznać się z ogólnymi zasadami pisania kodu, algorytmów, pracą mikrokontrolera itp. A co najlepsze, wcale nie musisz kupować gotowej płytki Arduino by to robić - wystarczy jakaś ATmega czy nawet Xmega na płytce prototypowej, garść kondensatorów i gotowe. Nie trzeba nawet konwertera USB-UART. Później możesz przenieść się na inne IDE - AVR studio, Eclipse czy inne do wyboru. Ba - w konwencji Arduino możesz programowac nawet w AVR Studio.
    Jeśli masz już jakiekolwiek doświadczenie z jakimkolwiek programowaniem ( nie tylko uC ) spokojnie możesz pominąć Arduino IDE i od razu spróbować nauki "czystego" C dla AVR.

    0
  • #5 30 Wrz 2017 21:20
    Paulo93
    Poziom 17  

    Czy masz już jakąś konstrukcję kierownicy? Jakiś prototyp? Czy zaczynasz projekt całkowicie od zera?

    0
  • #6 30 Wrz 2017 21:28
    Tomasz1902
    Poziom 3  

    Paulo93 napisał:
    Czy masz już jakąś konstrukcję kierownicy? Jakiś prototyp? Czy zaczynasz projekt całkowicie od zera?

    Nie, całkowicie od zera ale mam już filmiki jak zrobić kierownicę i h-shifter tylko pozostaje mi kwestia elektroniki.

    Dodano po 1 [minuty]:

    zster napisał:
    Jeśli dopiero zaczynasz z jakimkolwiek programowaniem, Arduino nie jest złym wyborem. Pozwala w miarę szybko i bezboleśnie zapoznać się z ogólnymi zasadami pisania kodu, algorytmów, pracą mikrokontrolera itp. A co najlepsze, wcale nie musisz kupować gotowej płytki Arduino by to robić - wystarczy jakaś ATmega czy nawet Xmega na płytce prototypowej, garść kondensatorów i gotowe. Nie trzeba nawet konwertera USB-UART. Później możesz przenieść się na inne IDE - AVR studio, Eclipse czy inne do wyboru. Ba - w konwencji Arduino możesz programowac nawet w AVR Studio.
    Jeśli masz już jakiekolwiek doświadczenie z jakimkolwiek programowaniem ( nie tylko uC ) spokojnie możesz pominąć Arduino IDE i od razu spróbować nauki "czystego" C dla AVR.

    Rozumiem cię a czy byłaby możliwość zrobienia kierownicy na arudino a potem przerzucić ją na atmega i żeby sama pracowała?

    0
  • #7 30 Wrz 2017 21:33
    Paulo93
    Poziom 17  

    Tomasz1902 napisał:
    Rozumiem cię a czy byłaby możliwość zrobienia kierownicy na arudino a potem przerzucić ją na atmega i żeby sama pracowała?

    Nie koniecznie. 1:1 będzie ciężko pewnie, nie wspominając już o języku programowania, ale sama konfiguracja pinów uC.
    Okey, to jeśli masz już coś, to zacznij od schematu i będziemy powoli ruszać do przodu. :)

    0
  • #8 30 Wrz 2017 21:38
    zster

    Poziom 28  

    Oczywiście że tak. Robisz prototyp na gotowej płytce Arduino czy po prostu kupujesz sam mikrokontrolel, garść elementów montujesz na płytce prototypowej, programujesz i jeśli efekt Cię zadowala, budujesz gotowy układ i montujesz w nim tą samą ATmegę. Same płytki Arduino to nic innego jak taki prosty Development Kit dla AVR - cały sekret i "magia" Arduino znajduje się w IDE i jego "języku programowania" ( z którego z resztą łatwo przenieść się na czyste C - ba! W Arduino IDE można programować i w "czystym" C, choć samo IDE jest ubogie w funkcjonalność ).

    Dodano po 4 [minuty]:

    Paulo93 napisał:
    Nie koniecznie. 1:1 będzie ciężko pewnie, nie wspominając już o języku programowania, ale sama konfiguracja pinów uC.


    Ależ można napisać program w Arduino IDE na Arduino UNO a potem ten sam program wrzucić na gotową płytkę z ATmega328P i wszystko działa jak powinno. A po drobnych modyfikacjach nawet można wrzucić na inną ATmega.

    0
  • #9 30 Wrz 2017 21:43
    Tomasz1902
    Poziom 3  

    A jeśli zrobiłbym proste arudino bez żadnych bajerów tak żebym zaprogramował je w ide i były wtedy kompromis nie musiałbym marnować arudino tylko wykorzystałbym atmega.

    0
  • #10 30 Wrz 2017 21:43
    Paulo93
    Poziom 17  

    zster napisał:
    Ależ można napisać program w Arduino IDE na Arduino UNO a potem ten sam program wrzucić na gotową płytkę z ATmega328P i wszystko działa jak powinno. A po drobnych modyfikacjach nawet można wrzucić na inną ATmega.


    Ale jakieś modyfikacje zawsze będą potrzebne :D

    0
  • #11 30 Wrz 2017 21:45
    Tomasz1902
    Poziom 3  

    zster napisał:
    Oczywiście że tak. Robisz prototyp na gotowej płytce Arduino czy po prostu kupujesz sam mikrokontrolel, garść elementów montujesz na płytce prototypowej, programujesz i jeśli efekt Cię zadowala, budujesz gotowy układ i montujesz w nim tą samą ATmegę. Same płytki Arduino to nic innego jak taki prosty Development Kit dla AVR - cały sekret i "magia" Arduino znajduje się w IDE i jego "języku programowania" ( z którego z resztą łatwo przenieść się na czyste C - ba! W Arduino IDE można programować i w "czystym" C, choć samo IDE jest ubogie w funkcjonalność ).

    Dodano po 4 [minuty]:

    Paulo93 napisał:
    Nie koniecznie. 1:1 będzie ciężko pewnie, nie wspominając już o języku programowania, ale sama konfiguracja pinów uC.


    Ależ można napisać program w Arduino IDE na Arduino UNO a potem ten sam program wrzucić na gotową płytkę z ATmega328P i wszystko działa jak powinno. A po drobnych modyfikacjach nawet można wrzucić na inną ATmega.

    I pewnie tak zrobię.

    Dodano po 53 [sekundy]:

    Paulo93 napisał:
    zster napisał:
    Ależ można napisać program w Arduino IDE na Arduino UNO a potem ten sam program wrzucić na gotową płytkę z ATmega328P i wszystko działa jak powinno. A po drobnych modyfikacjach nawet można wrzucić na inną ATmega.


    Ale jakieś modyfikacje zawsze będą potrzebne :D

    A czy dałbym sobie z tym radę i z waszą pomocą?

    0
  • #12 30 Wrz 2017 21:46
    Paulo93
    Poziom 17  

    Tomasz1902 napisał:
    A po drobnych modyfikacjach nawet można wrzucić na inną ATmega.

    Drobne modyfikacje pewnie będą potrzebne :D o tym właśnie pisałem wcześniej.
    Tomasz1902 napisał:
    I pewnie tak zrobię.

    No to zaczynaj działać :D

    0
  • #13 30 Wrz 2017 21:50
    Tomasz1902
    Poziom 3  

    No to zabieram się do pracy :)
    Dziękuję panom i będę pisał jak będę miał problem 😂

    0
  • #14 30 Wrz 2017 21:53
    zster

    Poziom 28  

    Tomasz1902 napisał:
    A jeśli zrobiłbym proste arudino bez żadnych bajerów tak żebym zaprogramował je w ide i były wtedy kompromis nie musiałbym marnować arudino tylko wykorzystałbym atmega.


    Oczywiście że nic nie stoi na przeszkodzie. Wrzucasz sobie ATmegę na płytkę, może być nawet w układzie docelowym, montujesz złącze ISP, kupujesz lub robisz prostu USBASP ( programator ) i programujesz w czym tylko chcesz i w czym Ci wygodniej. Możesz napisać w Arduino IDE i bedzie działało. Jeśli zechcesz później nauczyć się czystego C dla AVR i uzycia innego środowiska, to przeprogramujesz uC i gotowe.

    Paulo93 napisał:
    Ale jakieś modyfikacje zawsze będą potrzebne

    Tylko, jeśli napiszesz program dla Arduino UNO z ATmega328 a potem będziesz chciał wrzucić program na inny typ ATmega który akurat nie posiada peryferii, których używasz w swoim programie ( np. ATiny, czy ATmega8 ) . Ale to też żaden problem - przeprogramowujesz uC tak często, jak Ci się podoba, do skutku. I dotyczy to każdego języka programowania oraz każdej architektury uC.

    0
  • #15 30 Wrz 2017 21:54
    Paulo93
    Poziom 17  

    Spoko, ktoś na pewno pomoże :)
    Zacznij od schematu i przedstaw tutaj, ewentualnie zapytaj o wątpliwości :)

    zster napisał:
    Ale to też żaden problem - przeprogramowujesz uC tak często, jak Ci się podoba, do skutku. I dotyczy to każdego języka programowania oraz każdej architektury uC.

    Dokładnie tak. :) Chociaż osobiście wolę programować od razu na takim sprzęcie na którym ma to działać :D

    0
  • #16 30 Wrz 2017 22:21
    zster

    Poziom 28  

    Paulo93 napisał:
    Chociaż osobiście wolę programować od razu na takim sprzęcie na którym ma to działać


    I ja :) Ale nie zależy to od wybranego języka programowania. Kolega może sobie zaprojektować super wypasioną PCB z jakąś ATmegą, zamówić jej montaż w Chinach a potem... zaprogramować ja sobie w Arduino IDE ;) Nie gloryfikuję Arduino ale staram się uświadomić, że to nie tylko płytki, że można sobie samemu zrobić "arduino", że można programować w Arduino IDE nawet składnią asemblera nie wspominając o C. Dla kogoś, kto dopiero zaczyna, to całkiem niezły wstęp. I tani. A przeniesienie się na poważniejsze IDE nie stanowi później problemu.

    A co do tematu : najtrudniejsza jest tu chyba sama mechanika oraz dobór odpowiedniego enkodera. Następna w kolejności jest komunikacja z PC. Ale w sieci znajdziesz wiele wskazówek z czym to się je. W razie problemów zadaj konkretne pytania :)

    0
  • #17 30 Wrz 2017 22:25
    Tomasz1902
    Poziom 3  

    Rozumiem i jeszcze raz dziękuję 😃

    0
  • #18 30 Wrz 2017 22:40
    Ture11
    Poziom 34  

    W tym temacie też podrzucę hasło "MJoy" - gotowy, sprawdzony projekt dostępny w Internecie...

    0
  • #19 01 Paź 2017 18:16
    Tomasz1902
    Poziom 3  

    Ture11 napisał:
    W tym temacie też podrzucę hasło "MJoy" - gotowy, sprawdzony projekt dostępny w Internecie...

    A mógłby Pan i inni wypowiedzieć się na ten temat, gdyż znalazłem taką oto stronę z tam jak to zrobić od zera:
    https://sites.google.com/site/mjoy16/home
    tylko mam dwa pytania:
    1.Czy da rady to w grach nowych typu ets2, fs17 itp.
    2.Czy pomogli by mi państwo w tym aby przerobić jakiś ten obwód jakby była taka konieczność aby pracował z atmega8.
    Z góry dziękuje

    0
  • #20 01 Paź 2017 18:23
    Ture11
    Poziom 34  

    1. Nie powinno być problemu z jakimikolwiek grami, bo urządzenie instaluje się jako kontroler gier i zarządza nim system.
    2. Przejście na ATmegę8 wiązałoby się z koniecznością co najmniej zmian w kodzie sterującym i w projekcie, a i możliwe jest, że atmega8 będzie zbyt słaba do tego zastosowania. Załóżmy więc, że jest to ponad możliwości.

    0
  • #21 01 Paź 2017 18:29
    maly_ninja
    Poziom 13  

    Dołączę się do tematu. Też robiłem kontrolery na uC, ale użyłem do tego celu STM32 z obsługą USB HID. Polecam, ponieważ mikrokontroler ma już wbudowany interfejs USB co w dużej mierze ułatwia sprawę. Do tego biblioteka (np. HAL) i całe programowanie sprowadza się do ustalenia deskryptora HID, odczytu przycisków, adc do struktury i wysyłanie tego przez gotową funkcję przez USB.
    Jeśli nie chcesz bawić się z elektroniką, na początek możesz z ebaya/aliexpress kupić płytkę STM32F103 za ok. 6zł. Ten uC posiada USB.

    0
  • #22 01 Paź 2017 18:43
    Tomasz1902
    Poziom 3  

    Ture11 napisał:
    1. Nie powinno być problemu z jakimikolwiek grami, bo urządzenie instaluje się jako kontroler gier i zarządza nim system.
    2. Przejście na ATmegę8 wiązałoby się z koniecznością co najmniej zmian w kodzie sterującym i w projekcie, a i możliwe jest, że atmega8 będzie zbyt słaba do tego zastosowania. Załóżmy więc, że jest to ponad możliwości.

    a co pan myśli o tym projekcie ? O MJoy8 ?

    0
  • #23 02 Paź 2017 09:48
    Sparrowhawk
    Poziom 21  

    Jeśli ktoś ma ochotę zrobić joystick to polecam zapoznać się z tematem MMJOY2, np tutaj: http://simhq.com/forum/ubbthreads.php/topics/3899105/4

    Współpracuje z wieloma gotowymi modułami (polecam na początek Arduino Micro), a do tego dostajemy znakomity kreator konfiguracji. Po pierwszym uruchomieniu nie potrzebujemy nawet programatora, aby zmienić konfigurację, ustawienia osi, martwych stref itd.

    0