Panowie, chyba będzie mała zmiana planów.
Zacząłem szukać jakichś sensownych (niedrogich i dostępnych) przetworników AD dla bardziej precyzyjnych osi. Nie wygląda to za dobrze.
Cena takiego przetwonika będzie większa od całości płyki. Nie tędy droga.
Dlatego doszedłem do wniosku, że czas zmienić platformę na coś poważniejszego niź Arduino.
Mianowicie coś takiego:
http://www.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit-onboard-programmer-and
Zalety:
- koszt ok. 10$,
- wbudowany programator/debugger,
- darmowe IDE (PSoC Creator),
- dość wypasiony procesor Cortex M3 z natywnym USB2.0, ale nie to jest najważniejsze,
- ultra elastyczna 32 bitowa architektura, zamiast zestawu peryferii posiada 24 uniwersalne bloki, z których możemy zbudować sobie dowolne moduły typu I2C, UART itd.,
- 20bitowy ADC na pokładzie (!),
- drugi 12 bitowy ADC na pokładzie,
- remapowanie pinów, tylko niektóre są na stałe przypisane do funkcji, resztę można sobie poustawiać do woli,
- a wszystko konfiguruje się graficznie.
Spróbowałem właśnie skonfigurować moduł USB wg napisanej wcześniej biblioteki dla Leonardo... i działa. System wykrył płytkę jako joystick.
Następnie spróbowałem ile funkcji sprzętowych będę mógł upadkować w procesor:

Rezultat:
- 8 analogowych osi w pełnych 16bitach,
- 15 analogowych osi 12bit (przesunie się do 16),
- 2 sprzętowe wejścia dla enkoderów, z odkłócaniem i innymi bajerami,
- I2C - ten wykorzystamy do podłączenia MCP23017 i obsługi przycisków. Myślę, że nie warto marnować pinów w procesorze na tak trywialne rzeczy, jak guziki,
- UART i SPI jako okna do świata zewnętrznego i dalszej eskpansji (np. moduły z dodatkowymi enkoderami).
Chyba trzeba będzie założyć nowy wątek o tym projekcie, z Arduino nie będzie miał już nic wspólnego.