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.

Nauka mikrokontrolerów od zera - czyli co trzeba umieć by zrobić klawiaturę :)

doman18 04 Kwi 2015 15:41 1149 12
  • #1 04 Kwi 2015 15:41
    doman18
    Poziom 17  

    Ogólnie kręcą mnie peryferia komputerowe. Szczególnie mam tu na myśli gampepady i urządzenia do gier typu nostromo, tartarus, orbweaver, saitek pz31a, logitech g13 itp. Jestem autorem ogólnych poradników dotyczących teorii gamepadów (interfejsy Xinput i Dinput, alternatywne oprogramowanie, emulator xpada itp) oraz szczegółowej recenzji pz31a. Ogólnie uważam że te urządzenia zasługują na znacznie większą uwagę i łatka "gadżetu" jest im niesłusznie przyczepiana. Ale nie ważne.
    Zawsze chodziło mi po głowie żeby zagłębić się w bardziej zaawansowane aspekty kontrolerów (elektronika) ale do tej pory myślałem że to zdecydowanie wyższa matematyka i bez 5 lat studiów elektronicznych nie ma co podchodzić. Jednak ostatnio przypadkiem trafiłem na te stronki.

    http://mikrokontrolery.blogspot.com/
    http://forbot.pl/blog/artykuly/recenzje/ksiaz...vr-od-podstaw-zaawansowanych-aplikacji-id1336

    Ogólnie autorzy tych stron rzucają tezę że programować mikrokontrolery może każdy, nawet (co zdumiewające dla mnie) ktoś to zna tylko podstawy elektroniki. Chciałbym wiedzieć na ile teza ta jest prawdziwa i czy np. przeczytanie/przerobienie...

    http://helion.pl/ksiazki/jezyk-c-dla-mikrokon...sz-francuz,jcmika.htm?nr=5314.&url=jcmika.htm

    http://helion.pl/ksiazki/usb-praktyczne-progr...ej-daniluk,usbppr.htm?nr=5314.&url=usbppr.htm

    a może też ...

    http://helion.pl/ksiazki/avr-uklady-peryferyj...sz-francuz,avrukp.htm?nr=5314.&url=avrukp.htm

    .. dało by możliwość napisania np. własnego kontrolera klawiatury i zrobienia czegoś takiego

    http://yager.io/keyboard/keyboard.html

    Oczywiście widzę że autor używa gotowca (Teensy) więc pewnie i ja na początek szedłbym tą drogą. Celem ostatecznym (ale oczywiście baaaaardzo odległym) jest zrobienie czegoś z własną pamięcią ustawień.


    Aha na koniec jeszcze możliwości. W pracy zajmuje się PHP (głównie strukturalnym ze względu na strony które przyszło mi rozbudowywać ) a w przeszłości dłubałem jakieś małe proste programy w c++. Dodam że wskaźniki nie były według mnie aż tak strasznym zagadnieniem jak je malują na forach.

    To jak? "Nadaje się"? xD

    -1 12
  • CControls
  • #2 04 Kwi 2015 15:46
    Kuniarz
    Moderator Projektowanie

    doman18 napisał:
    To jak? "Nadaje się"? xD

    Każdy się nadaje ;) Nie potrzeba 5 lat studiów elektronicznych, bo to akurat nic praktycznego Cię nie nauczy...
    Książka + jakiś zestaw rozwojowy + czas i samozaparcie. Klawiatura na USB nie jest dobra na początek, ale miganie diodą, komunikacja z PC po RS232, jakieś wyświetlacze LED / LCD.
    Po tej fazie wstępu, spokojnie zbudujesz urządzenie HID, przykładów w sieci jest masa.

    -1
  • #3 04 Kwi 2015 15:53
    doman18
    Poziom 17  

    Haha troszkę źle się wyraziłem. Klawiatura USB jest pierwszym "celem głównym" - czymś co motywowało by przy jakichś niepowodzeniach. Naturalnie rozumiem że naukę musiałbym zacząć od migających diodek bo z tego co zdążyłem się zorientować to takie "Hello World" w nauce elektroniki.

    A czy takie książki jak ta
    http://helion.pl/ksiazki/elektronika-od-praktyki-do-teorii-charles-platt,eleodp.htm#format/e

    nie są konieczne do montowania kitów z przykładów? Czy można się bez nich obejść? No i czy ten zestawi który wymieniłem pomógłby zdobyć wiedzę do realizacji celu głównego? Nieukrywam ta wielkanocna promocja na wersje elektroniczne jest dosyć kusząca dlatego pytam od razu o książki o USB i układy peryferyjne.

    -1
  • #4 04 Kwi 2015 16:08
    tmf
    Moderator Mikrokontrolery Projektowanie

    Wszystko zależy od tego jak szybko się uczysz i co już umiesz. Od strony elektronicznej to co chcesz zbudować nie jest dużym wyzwaniem, więc głębokiej wiedzy z elektroniki nie potrzebujesz, chociaż ona się przydaje na późniejszych etapach. Zakładam, że prawo Ohma znasz, wiesz, ze jest + i - i ogólnie jak prąd płynie - wiedza ze szkoły wystarczy.
    Skoro znasz PHP i C++ to raczej pójdzie ci z programowaniem MCU dobrze - warto tylko poczytać trochę o specyfice tego programowania. Skoro chcesz zaczynać od klawiatury - nie jest to kosmos, jeśli rozumiesz jak działa USB, jak są przesyłane dane, enumerowane urządzenia itd. Jeśli nie wiesz, to proponuję zakupić jakiś kit z MCU i USB z przykładami emulacji urządzeń HID. Np. na Xplained z XMEGA256A3BU odpalisz klawiaturę w ciągu minuty, bo w Atmel Studio jest gotowiec. Oczywiście zanim coś w nim sensownie zmienisz to mogą upłynąć tygodnie. Ale to już specyfika mikrokontrolerów - trzeba bardzo dogłębnie wejść w stronę techniczną każdego aspektu ich działania i działania wykorzystywanego protokołu - tu USB.
    O samych książkach, których linki podałeś jako ich autor wypowiadać się nie będę :)

    0
  • CControls
  • #5 04 Kwi 2015 18:13
    doman18
    Poziom 17  

    Tak czytam o początkach i pojawia się pierwsza wątpliwość. Z jednej strony na wspomnianych blogach optuje się za złożeniem najtańszego programatora. Z drugiej jednak strony na forach i w komentarzach pod książkami i tutorialami widzę sporą grupę ludzi która optuje za tym żeby kupić jakiegoś sprawdzonego gotowca ponieważ nic tak nie zniechęca jak walka z programatorem. Nie będę cytował wszystkich ale jeden konkretny komentarz jednego z autorów książek o programowaniu uC dla początkujących, który wydaje się być kwintesencją tego co piszą też inni ...

    http://mirekk36.blogspot.com/2013/08/zapowied...howComment=1378833178706#c5318418507592512004

    Dlatego jeżeli dojdę do wniosku że "jadę z tym koksem do przodu" to nie wiem która opcja lepsza - tani ebook i DIY programator czy zestaw książka + programator.

    0
  • #6 04 Kwi 2015 18:38
    dondu
    Moderator Mikrokontrolery Projektowanie

    doman18 napisał:
    Z drugiej jednak strony na forach i w komentarzach pod książkami i tutorialami widzę sporą grupę ludzi która optuje za tym żeby kupić jakiegoś sprawdzonego gotowca ponieważ nic tak nie zniechęca jak walka z programatorem.

    To są stricte działania marketingowe tej firmy mające wyrobić u czytelników przekonanie, że produkty konkurencyjne są gorsze. Musisz się uodpornić na reklamę, bo będziesz przepłacał wielokrotnie za coś co kosztuje 15zł na Allegro (USBasp) i działa wyśmienicie, a że z Hong Kongu ma to jakieś znaczenie?

    Byle BTM-222 kosztuje tam 99zł, podczas gdy jego cena rynkowa jest o połowę niższa.

    Jako oprogramowanie do programowania stosuj darmowe nakładki np. Extreme Burner i nie płać niepotrzebnych 50 zł za coś co jest dostępne za darmo:
    http://extremeelectronics.co.in/avr-tutorials...oftware-for-usbasp-based-usb-avr-programmers/


    Co do książek to nie będę się powtarzał więc podam tylko link: https://www.elektroda.pl/rtvforum/viewtopic.php?p=14580489#14580489

    Zanim więc cokolwiek kupisz zastanów się pięć razy i szukaj alternatyw, bo elektronika to studnia bez dna jeśli chodzi o wydatki, warto więc patrzeć na każdą wydaną złotówkę. Jest to istotne w szczególności na początku drogi, gdy nie masz jeszcze wyczucia i rozeznania rynku. Łatwo wtedy wpaść w szpony marketingowych wyjadaczy :)

    0
  • #7 04 Kwi 2015 18:39
    tmf
    Moderator Mikrokontrolery Projektowanie

    Dyskusji na ten temat było już dosłownie setki. Wszystko zależy jakie masz umiejętności i ile chcesz w to zainwestować kasy. Biorąc pod uwagę, że nie znasz się na elektronice, zbudowanie nawet relatywnie prostego programatora może być wyzwaniem samym w sobie. W dodatku USBAsp, który zapewne zbudujesz to raczej złom, już lepiej go kupić w necie za 15 zł. Tylko... mówimy o USB, sensownym wyborem jeśli chodzi o AVRy będą XMEGA serii U, ze sprzętowym USB, których przy pomocy takiego programatora nie zaprogramujesz. Jeśli ktoś ci doradzi ARM, to też go czymś takim nie zaprogramujesz. Więc ze względu na specyfikę tego co chcesz zrobić, takie tanie programatory odpadają. Są więc następujące opcje:
    - kupno AVRISP MkII lub klona (cena 50 do chyba 150 zł),
    - kupno Atmel ICE PCBA - cena koło 160 zł, ale za to programuje ARM i AVR i ma sprzętowy debugger - naprawdę super przydatna rzecz,
    - kupno płyty rozwojowej z wbudowanym programatorem - tu masz Xplained Pro z XMEGA lub SAM Dxx lub płyty np. Discovery z STM - tylko wtedy masz ARMy,
    - kupno płytki z prockiem wyposażonym w bootloader, która nie wymaga programatora - np., Xplained lub moduły z XMEGA firm LeonInstruments lub Modułowo.
    Jeśli masz kasę to polecam kupić do nauki gotowca + dobry programator - zaoszczędzi to wielu problemów jakie spotykają osoby początkujące. W przypadku kombinacji XMEGA U + programator + Atmel Studio odpalenie przykładu z HID keyboard to dosłownie minuta, w przypadku ARMów innych producentów dochodzi jeszcze kwestia konfiguracji IDE (co dla początkujących jest raczej procesem niełatwym).

    0
  • #8 04 Kwi 2015 18:56
    dondu
    Moderator Mikrokontrolery Projektowanie

    Tmf podaje Ci słuszne alternatywy - jak zwykle kierunków rozpoczęcia jest wiele.

    Ale dodam jeszcze:
    - najpierw określ jaki możesz przeznaczyć na początek budżet.
    - dobrze jest gdy ma się jakiś konkretny cel np. wykonanie gry na matrycy LED: http://mikrokontrolery.blogspot.com/2011/03/DIY-Gra-Snake-matryca-LED-8x8-ATmega8.html
    wtedy łatwiej planować początkowe zakupy.

    Następnie wypisz co chcesz kupić (wraz z książką - polecam wersje ebook - sporo tańsze) wraz z cenami i podsumuj - zobaczysz, że kwota wcale nie będzie mała, a to dopiero początek przyszłych wydatków.

    Gdy już zaplanujesz podaj tutaj swoje zestawienie, a rzucimy na to okiem.

    0
  • #9 04 Kwi 2015 19:16
    doman18
    Poziom 17  

    To znaczy komentarz podałem jako przykład. Tutaj jest drugi

    http://www.forbot.pl/forum/postlink/65886.htm#65886

    Co do USB to nadal jestem świadomy że pierwsze co będę musiał przerobić to te diody LED a nie interfejs USB. Więc nie wiem czy na początek od razu pchać się w coś droższego niż ten USBasp.

    0
  • #10 04 Kwi 2015 19:23
    tmf
    Moderator Mikrokontrolery Projektowanie

    Tak jak pisałem, docelowo potrzebujesz procka ze sprzętowym USB - a to zawęża wybór do AVR XMEGA (pomijam ATMega serii U, które mają wszelkie wady rodziny ATMega i nie zdobyły większej popularności) lub ARM. Tak się składa, że żadnej z tych rodzin nie zaprogramujesz przy pomocy USBAsp. Czyli musisz liczyć się z tym, że kupno tego programatora to trochę wyrzucanie pieniędzy w błoto. Ale w sumie 15 zł to nie tak dużo, więc jeśli nie jesteś pewien, czy w mikrokontrolery się wkręcisz to można wydać, spróbować i wyrzucić :) Jeśli jesteś pewien, że to będzie twoje hobby, to warto od razu kupić coś porządnego - moim zdecydowanym faworytem jest Atmel ICE - przyda się niezależnie czy wejdziesz w ARM, czy AVR. Druga opcją jest kupno modułu i programowanie procka przez bootloader - opcja za 100-160 zł.

    0
  • #11 04 Kwi 2015 19:24
    dondu
    Moderator Mikrokontrolery Projektowanie

    To że jakaś pojedyncza osoba miała problem (z reguły dot. własnego systemu i sterowników) nie oznacza, że jest to problem pozostałych tysięcy, którzy tych problemów nie mają.

    Zawsze sprawdzaj, kto Ci podpowiada i jakie ma doświadczenie ... i uodpornij się na marketing, bo jeśli tego nie zrobisz, będziesz miał pozłacany programator, książkę, kabelki, ... Twój wybór.

    0
  • #12 06 Kwi 2015 12:18
    doman18
    Poziom 17  

    To jeszcze tak z czystej ciekawości (nie to żebym się na to nastawiał) czy przerobienie jednej książki, ogarnięcie HID (USB) zrobienie projektu np. własnej klawiatury albo nawet miniklawiatury, z joystickiem i pamięcią ustawień klawiszy daje jakieś szanse na rynku pracy? Wiem że to może wydawać się śmieszne ale tak tylko z czystej ciekawości chciałbym wiedzieć.

    0
  • #13 06 Kwi 2015 13:37
    dondu
    Moderator Mikrokontrolery Projektowanie

    Każde umiejętności zwiększają szanse na zatrudnienie tym bardziej, gdy poparte są jakimiś własnymi projektami. Najgorszym bowiem jest sytuacja, gdy absolwent uczelni oprócz dyplomu, nie ma żadnych innych punktów (branżowych) w swoim pierwszym CV.

    0