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

Kierownica do komputera na Mikrokontrolerze

30 Wrz 2017 20:54 993 22
  • 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 😃
  • Poziom 17  
    Jakie jest Twoje doświadczenie z elektroniką i programowaniem?
  • 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.

  • 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.
  • Poziom 17  
    Czy masz już jakąś konstrukcję kierownicy? Jakiś prototyp? Czy zaczynasz projekt całkowicie od zera?
  • 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?
  • 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. :)

  • 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.
  • 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.
  • 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
  • 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ą?
  • 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
  • Poziom 3  
    No to zabieram się do pracy :)
    Dziękuję panom i będę pisał jak będę miał problem 😂

  • 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.
  • 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

  • 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 :)
  • Poziom 3  
    Rozumiem i jeszcze raz dziękuję 😃
  • Poziom 36  
    W tym temacie też podrzucę hasło "MJoy" - gotowy, sprawdzony projekt dostępny w Internecie...
  • 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
  • Poziom 36  
    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.
  • 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.
  • 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 ?
  • 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.