12/04/2006 USB 2.0 10 бит джойстик на 18f2550 -- схема и исходники на С. Обновлено 10/05/2006


На страничке файлы лежит прошивка моего собственного изготовления для USB 2.0 джойстика (joystick) на pic18f2550. Схему, со встроенным программатором на 1 (одном) транзисторе кт315, выложу попозже (Уже, см. ниже). Программа для прошивки контроллеров PIC, очень хорошая, лежит вот здесь: ссылки

Чтобы купить pic18f2550 или 18f4550, надо позвонить в Центр технической поддержки Микрочип, компанию "Тритон"
Они могут посоветовать, где контроллер есть в Москве. По выходным на Митинском рынке есть точка, но надо на неделе сначала позвонить в "Тритон" и заказать микросхему.

Про Orbiter и как добиться хорошей точности при малых углах малыми же усилиями попозже выложу... (Подсказка: "Низковольтный однополярный ОУ". Измерительный мост я пробовал, но очень уж он требователен к питанию)
Реально все оказалось гораздо проще :-0 (Опять же, см. ниже).

А теперь загрузить чего-нибудь... (Прошивку, например)

А вот и схема (пока только встроенного программатора)

Интерфейсный файл к WinPic -- "SimpleResLVPOnLptPort.ini", должен быть помещен в папку Interfaces и выбран в программаторе

[Info]
Purpose=One transistor LVP on parallel port

[ProgrammerControlLines]
DataIn=ack
OkButton=nc
VppOnOff=D7
VddOnOff=nc
Connect=nc
ClockOut=D4
DataOut=!D5
DataOutWhileReading=1
PullMclrDown=nc
ClkEnable=nc
OutEnable=nc
RedLed=nc
GreenLed=D6

Есть одна маленькая засада: На выводе ACK у моего "LPTнаМаме" почему-то сидит примерно 2.6в, поэтому, хотя контроллер прекрасно прошивается и читается, WinPic пишет, что не может опознать программатор. Не обращайте на это внимания, как я.

Теперь схема собственно джойстика 8 осей, хатка и 12 кнопок
Прошивка, как обычно, лежит на страничке с файлами.

Схема подключения датчиков осей и резисторов настройки чувтсвительности осей (Rref & Radjust)
Сама идея добиться таким образом полной разрядности по всем осям при неполных (и разных) углах поворота резисторов
не моя, а принадлежит одному хорошему человеку.

Схема подключения кнопок и хатки

После того, как контроллер собран и проверен, надо настроить
чувствительность осей, для получения реальной разрядности в 10 бит по всем осям,
при условии, что резисторы датчиков осей, как правило, поворочиваются лишь на долю
полного хода.

Методика настройки чувствительности осей такая:
1. Подключаем все резисторы осей к контроллеру, движки резисторов R adjust при этом
выводим в крайние положения (к земле и VDD, соответственно), чтобы исключить их влияние на начальном этапе.
Неиспользуемые оси закорачиваем на землю.
2. Включаем контроллер в USB.Запускаем любую программу чтения осей и добиваемся поворотом подстроечных резисторов
Vref+ и Vref- полного размаха отсчетов по оси с самым малым углом поворота резистора оси.
3. Подстройкой резисторов R adjust, не трогая резисторы Vref+ и Vref-, добиваемся полного размаха отсчетов по остальным
осям.
4. После прогрева контроллера настройку, возможно, придется немного уточнить или провести калибровку средствами Windows
для устранения мелких погрешностей.

Удачи и голубого неба!

Ах, да! Фоты контроллера и монтажа...

Сайт управляется системой uCoz