Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Altium Designer Computer ControlsAltium Designer Computer Controls
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Bascom] SWUSB - Klawiatura USB Atmega8

elektronockaut 06 Dec 2020 16:14 37140 10
  • [Bascom] SWUSB - Klawiatura USB Atmega8

    Witam,
    Temat odgrzany, i nie mojego autorstwa, ale warty przypomnienia.
    Potrzebowałem aby pewne urządzenie wystawiało mi do PCta kilka klawiszy klawiatury. Słyszałem już kiedyś o projekcie SWUSB pisanym w jedynym języku który choć trochę znam - Bascom. Zaprojektowałem jednostronną niewielką płytkę PCB w której większość portów Atmegi wyciągnąłem na goldpiny i zabrałem się za sklecenie, uporządkowanie kodu i uruchomienie projektu. Nie jestem biegłym programistą, więc ogarnięcie kodu autora i uruchomienie urządzenia zajęło mi pół dnia ;) Autor biblioteki SWUSB nie podzielił się kodem jako gotowcem, i niestety nie zamieścił też schematu. Ten zapożyczyłem z programatora USBASP. Myślę że nie jestem jedyny i znajdą się i tacy których poziom programowania podobny jest do mojego, więc postanowiłem się podzielić i wszystko podać gotowe na tacy.

    [Bascom] SWUSB - Klawiatura USB Atmega8

    Klawiatura działa świetnie. Można obsłużyć wszystkie klawisze, w tym enter, backspace, esc, del i inne funkcyjne. Można też dopisać kawałek kodu i używać wejścia ADC atmegi. Autor projektu przewidział też możliwość pracy SWUSB jako mysz i joystick.

    Strona autora
    Posiłkowałem się jeszcze różnymi stronami znalezionymi w google.


    Code: vbnet
    Log in, to see the code


    W załączniku:
    - Kod Bascom
    - Biblioteka SWUSB którą należy przegrać do folderu LIB w Bascom
    - Wzór płytki PCB PDF i Lay6 (Sprint Layout 6)
    - Layout montażu PDF


    Mam kilka pomysłów co można z tego zrobić ;)
    Może kogoś to zainspiruje...

    - Modyfikacja starego keybordu, żeby można było sobie pograć z PC
    - Odzyt i wysyłanie danych z suwmiarki do excel
    - Sprzętowe symulatory samochodu, samolotu, helikoptera :D
    - Klawiatura specjalistyczna dla specjalistycznych programów (np CNC)
    Ciekawe co z tego wszystkiego kiedyś wyjdzie... :D

    Pozdrawiam!

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    elektronockaut
    Level 9  
    Offline 
    elektronockaut wrote 406 posts with rating 280, helped 0 times. Been with us since 2019 year.
  • Altium Designer Computer ControlsAltium Designer Computer Controls
  • #2
    mmaker
    Level 19  
    Fajny projekt, może komuś się przyda bądź zainspiruje do stworzenia własnego sterowania. Sam ostatnio potrzebowałem takiego sprzętu do emulacji klawiatury PC, ale u mnie zamiast przycisków jest pilot podczerwieni w standardzie NEC. Można skonfigurować różne przyciski, wgrać program i testować. Potrzebowałem takiego rozwiązania do sterowania systemu LibreElec w aucie ;)
  • #3
    trippo1
    Level 12  
    Fajny projekt. Kiedyś wyciągnąłem płytkę z kablem usb z klawiatury i odczytywałem poszczególne klawisze ale z tym było mnóstwo pracy. Projekt pozwala zaoszczędzić długich godzin na zwieranie pinów. Zastosowanie jakie widzę do tego projektu to program muzyczny i symulacja instrumentów np. Piezzo + powyższy projekt i wtyczka vts perkusji.
  • Altium Designer Computer ControlsAltium Designer Computer Controls
  • #4
    maras52
    Level 14  
    Projekt którego szukałem swego czasu (tyle że w C) do zmajstrowania streamdeck'a. Ostatecznie skończyłem na zewnętrznym numpadzie i sofcie HIDmacros ;)


    PS Wymyśliłem już pewne zastosowanie w pewnej grze które potępiam i gardzę jego użytkowaniem dlatego wybaczcie nie opiszę szczegółów.
  • #7
    fotomh-s
    Level 22  
    W tym celu najlepiej sprawdza sie płytka blue pill na STM32. Sprzętowe USB wyprowadzone jako micro USB, więcej pinów, cena 7zł za całą płytkę.

    Oczywiście można robić na Mega8, tylko na blue pill jest taniej, szybciej i bardziej praktycznie. Tutaj autor zrobił tak bo sam napisał że zna tylko Bascoma, ale nie należy się bać przesiadki, coś o tym wiem. Teraz sam żałuję że tak późno się przesiadłem, na przełomie 2018/2019 roku. Nie tylko AVRami i Bascomem się żyje i zachęcam autora do spróbowania.

    Quote:
    Modyfikacja starego keybordu, żeby można było sobie pograć z PC

    To już MIDI, też można na blue pill zrobić MIDI USB plug and play. Planuję taki projekt jako kontroler do GrandMA 2 onPC.
  • #8
    andrzejlisek
    Level 28  
    Jeden z pomysłów to programowana klawiatura do komputera. Swego czasu ja sam chciałem coś takiego zrobić na USB, ale z uwagi na prostotę skorzystałem z adapteru PS/2 i oprogramowałem protokół PS/2.

    https://www.elektroda.pl/rtvforum/topic3622288.html

    Wobec mojego rozwiązania (nie pod względem technicznym, tylko pod względem idei), wszystkie komputertowe "klawiatury dla graczy" się chowają, bo to jest ciągle jedna i ta sama klawiatura, tylko lepiej zrobiona niż standardowa, a programowana poprzez sterownik. Moja jest programowana poza komputerem, jedynie daje niezbędne informacje poprzez symulację naciskania klawiszy, a więc jedynym programem potrzebnym do zaprogramowania klawiatury jest edytor tekstu taki, jak Notepad w Windows, GEdit w Linux itp.

    Można rozwinąć dalej i oprócz modułów 16-przyciskowych można np. dać moduł z jednym lub kilkoma impulsatorami, gdzie impuls w jedną stronę to naciśnięcie jednego klawisza, a impuls w drugą stronę to naciśnięcie innego klawisza (można ustawić, które klawisze ma zastępować dany impulsator). Jakby co, służę pomocą przy implementacji PS/2 lub komunikacji między modułami a centralką (w obecnym rozwiązaniu da się obsłużyć do 16 modułów 16-przyciskowych).

    Głównym (i w zasadzie jedynym) zastosowaniem mojej klawiatury modułowej jest obsługa emulatorów innych maszyn, np. ZX Spectrum, gdzie ZX ma trochę inny układ klawiszy i można łatwo zaetykietować każdy klawisz, żeby nie trzeba było pamiętać, ani mieć ściągi, który klawisz co uruchamia. Analogicznie, w podobny sposób można mieć klawiaturę taką, jaka była używana na egzaminach na prawko przed rokiem 2013 (od tego czasu egzamin jest zupełnie inny i nie wiem, czy używa się specjalnych klawiatur).


    Innym zastosowaniem jest niezależny od sprzętu terminal do mikrokontrolera. Coś tam sobie programujesz na mikrokontrolerze, testujesz, a jak chcesz śledzić zachowanie Twojego programu, to wysyłasz informacje do tego terminala, a terminal wysyła je do komputera czy smartfonu bez żadnych sterowników, wystarczy tylko wspomniany Notatnik.
  • #9
    czareqpl
    Level 30  
    andrzejlisek wrote:
    Coś tam sobie programujesz na mikrokontrolerze, testujesz, a jak chcesz śledzić zachowanie Twojego programu, to wysyłasz informacje do tego terminala, a terminal wysyła je do komputera czy smartfonu bez żadnych sterowników, wystarczy tylko wspomniany Notatnik.


    To po co przejściówki USB<=>UART TTL?
  • #10
    andrzejlisek
    Level 28  
    czareqpl wrote:
    andrzejlisek wrote:
    Coś tam sobie programujesz na mikrokontrolerze, testujesz, a jak chcesz śledzić zachowanie Twojego programu, to wysyłasz informacje do tego terminala, a terminal wysyła je do komputera czy smartfonu bez żadnych sterowników, wystarczy tylko wspomniany Notatnik.


    To po co przejściówki USB<=>UART TTL?

    Oczywiście lepiej i prościej wykorzystać taką przejściówkę i terminal. Tematem były możliwości rozbudowy i zastosowania symulatora klawiatury komputerowej.
  • #11
    tplewa
    Level 39  
    parafka wrote:
    Panowie, a czy jest gdzieś projekt działający w drugą stronę?
    tj. podłączenie do Atmegi fabrycznej klawiatury numerycznej(USB).


    Niestety aby podłączyć jakiekolwiek urządzenie do mikrokontrolera (klawiaturę, pendrive itp.) potrzebujesz mikrokontrolera z obsługa USB OTG (urządzenie musi pracować jako host, a nie jak w przypadku tego projektu jako device).

    Oczywiście można znaleźć takie AVR-y, PIC-e czy STM32 (zawierające USB OTG).

    Przykład obsługi pendrive i myszki np. tutaj:
    http://ww1.microchip.com/downloads/en/AppNotes/doc8229.pdf