По просьбе многих, открываю новый тред отпочковавшийся от
http://www.sukhoi.ru/forum/showthrea...&page=32&pp=25
----------------------------------------------------------------
Я тут практически закончил разработку USB контроллера для самодельщиков. Штука эта будет такая:
Модель 1:
http://www.lbodnar.dsl.pipex.com/joystick/
8 аналоговых входов по 10бит разрешения каждый
12 кнопок либо независимых, либо матрицей 6x6
(вариант 10 аналоговых 10битных входов + 10 кнопок или 5x5 матрица, но Win не видит больше 8 осей на одном джойстике, поэтому он будет виден под Виндами как два джойстика)
Модель 2:
6 квадратурных декодеров, два из которых с оцифровкой до скорости 150кГц (для кодеров типа 2000линий на оборот) с разрешением 20бит
8 цифровых кнопок
Модель 3:
100 кнопок в конфигурации матрицей 10x10.
Общие для всех трех:
Чип с 28 ножками в обычном DIP корпусе (Microchip PIC18F2550)
Все что нужно для подключения: 4MHz кварц, два конденсатора и USB разъем (или сразу кабель)
Питание от USB порта
Full-speed USB (12Mbit), частота обновления всех каналов - 1000 раз в секунду (период 1мсек)
Драйверы не нужны (стандартное устройство в Win/Mac/Linux)
Я не хочу делать плату контроллера потому что цены подкрадываются со спины: плата, кварц, сборка, упаковка, тестирование, etc.
Цена чипа: $15.
Где-то в середине года у меня будет просто ОДНА модель - чип, которых можно переключать в любую конфигурацию из интерфейсной программки под Win/Mac/Linux.
Честно говоря, я cтолько времени потерял с мышиными декодерами... это просто убийство времени, а результат - 30 импульсов на оборот. Самое мерзкое, что они теряют импульсы из-за фиговых сенсоров. Для мыши это не имеет значения, а в кодере после прогона 1000 импулсов в одну сторону обратно возвращаются только, например, 996, поэтому центровка джойстика постоянно дрейфует в процессе.
И тут я открыл глаза! Есть готовые декодеры типа http://www.encoder.com/model755a-shaft.html с разрешением 2000 импульсов на оборот (до 10000 если очень нужно) это уже что-то т.к. 2000 импульсов дают разрешение в 8000 позиций на оборот (считаем-то фронты). Аналоговые потенциометры отдыхают! Купить их можно на eBay за $20-30. Проблема в том, что если человек крутанет этот декодер (или все-таки энкодер?) с приличной скоростью, импулсы посыпятся с такой частотой, что даже хороший контроллер, если он еще хоть чем-то занят просто их не успевает обработать и все работа - насмарку, центровка опять съезжает. В ATMega16 нет USB контроллера, поэтому MJoy использует аппаратную работу с USB - разбирает его по битам и собирает обратно. Это занимает безумное количество времени и делает применение крутых кодеров невозможным. Собственно поэтому я и ввязался в то, что у меня получилось в итоге.
Идея такая - продавать самодельную плату типа MJoy16 людям, которые потом все равно все выходные с паяльниками сидят глупо. Поэтому я убиваю время над мудрым софтом внутри (USB - это не RS232!), а все остальное любой самодельщик может сделать буквально за 15минут и потратить на это $2-3. Вот такая вот идея.
Уффф, пальцы отваливаются!
P.S. Кстати, если все-же хочется сделать квадратурных кодер самому, то лучше раскурочить старый струйных принтер. Там часто используется осевой кодер на ~500 линий/оборот и линейный - такая прозрачная полоска с тоненькими линиями (720dpi?). Сенсоры (обычно Agilent) как бы обхватывают их и выдают уже хороший квадратурных сигнал TTL уровня. У них 4 ножки и им только нужно +5v для питания и все.