Zedomax DIY121 - Как да направите своя собствена "PS3 SIXAXIS контролер" стил ОСНОВНИ програмируеми USB-устройство!
Натиснете тук за да видите в режим на цял екран
USB устройства са лесни за потребителите да инсталират и създаде (доколкото всичко работи правилно). Често, просто включете в USB устройство и работи веднага. Това е особено вярно за входни устройства, като мишки и клавиатури.
Тези устройства да съответстват на спецификацията пластове на върха на протокол за USB: Human Interface Device. Почти всеки възможен вид на въвеждане е определен; цялата "доклад от ЕВРОВОК" език се използва да каже на компютъра как да обработва входа. Това не е много лесно да се приложат; десетки конкретни искания трябва да се работи правилно. Има много стъпки между включвате USB устройство и да могат да я използват; те всички се проведе в няколко милисекунди и неспособност на всяка стъпка означава устройство няма да работи.
Какво става, ако не сте да се притеснявате за някоя от това? Какво става, ако бихте могли да използвате любимите си микроконтролера, направи "нещо" и входа се появява на компютъра в правилния формат? Не би трябвало да се тревожи за комплекс код USB, HID спецификации, или счупване на вашия USB код при добавянето на други функции, които се нуждаете. Не би трябвало да се тревожи много за писане оптимизиран код, или винаги получаване на пътя на USB прекъсва.
HID портал
Точно това реших да направя. А преди няколко години, аз разработил устройство, USB и премина през всички главоболия на получаването на USB HID горе и тичане. Тъй като вече имах твърдия свършената работа, реших да добавите метод за получаване на данни от друг микроконтролер и работа с данни, че като входни данни за потока на код скри. Исках да използвам един Cubloc основното програмируем контролер за обработка на моите входни данни и да го изпратите на HID портал. Молбата ми тест ще бъде акселерометър, базирани HID джойстика; просто включете устройството в компютъра и той ще работи.
Той не трябва да се джойстик, той може да бъде една клавиатура, мишка, или много други видове контрол, определени от стандарта скри. Това е възможно да добавите бутони за управление обем на устройството ... може би има верига ням вашия компютър, когато звъни телефона? Превърнете всяка входно напрежение в джойстика ос, всяко преминаване в един бутон? Всичко е възможно!
Актуализация: Реших да се свие на хардуера CUBLOC определяне на CB220, и годни всичко в един самолет, модел. Моделът бе избран за мач на самолет на разположение в героите на играта Тихия ние използва за тестване на интерфейса джойстика.
Хардуер Разяснения
В HID портал е на базата на стария проект на мина, на базата на MC68HC908JB8 микроконтролера и програмирани по монтаж език. За определени причини не мога действително съобщение на кода точно сега, но има много други проекти, USB там, които могат да бъдат пригодени за тази цел. Има един отворен произхождащи мека изпълнение USB за микроконтролера ATTINY, например.
Моят микроконтролера не са вградени в I2C или SPI, така че е необходимо за изпълнение на една от моите собствени. Аз също не са на разположение прекъсват игли, което означава, ми е необходимо решение да се основава на изборите. Когато всичко е казано и направено и оптимизирано, не можех да открие ръбове по-бързо от 16kHz. Това е около десет пъти по-бавно, отколкото на прехода продукция на разположение от администратора CUBLOC, така че не биха могли да използват това. Аз накрая написах моята собствена смени на рутинни в ОСНОВНИ за да получите данни за HID портал. Това би могло да бъде избегнато чрез използване на микроконтролер, който е SPI или I2C построена през вече, но JB8 е това, което имах на ръка.
Аз използват три сигнали, за да общуват с администратора CUBLOC. Първо, това е сигнал, CLK. В HID портал открива въстание край. В този момент, се чете на стойност до момента на линия ДАННИ. Това е изместен в регистър, докато един байт е бил получен, и кода премине към следващия байт. В / RST линия е начин за синхронизиране на началото на всеки обмен на данни в случай, че е имало съмнителни вход; НИСКО когато тя определя пакета и индексите малко до нула.
В HID Порталът в момента е програмиран да действа като джойстик с три оси и осем копчета. Аз също го тестват, както от клавиатурата. В бъдещото развитие, бих искал да направи HID портал по-гъвкави, нека външните контролер изберете тип на устройството и колко от всеки вход са задължителни. Това ще бъде най-гъвкаво, ако те директно любимци HID дескриптори доклад, но това отваря възможност да се направи повече грешки и да се свърши с неработен устройство.
В акселерометър е DE-ACCM3D от измерение Инженеринг. В CUBLOC просто чете напрежение на своя Адин пристанища и конвертира на стойност между -127 и 127.
Продължава на Next Page
















































