HID-device и Windows только Leonardo Micro Да ну? Не верю.

art100
Offline
Зарегистрирован: 09.03.2014

В интернетах и на официальном сайте пишут что для Windows (Andorid) в качестве HID-устройств могут выступать только Arduino Leonardo и что-то специальное Teensy 2 за 30$ минимум.

В целом весь интернет перерыл 2 дня вроде как-бы да выбор невелик.

А дай думаю поищу на самых распространненых на распаянную новомодну ATmel16U2 прошивки какие есть USB-ишные.

Это микросхема сменила старую FT232 на последних версиях Arduino Uno R3 

 

Есть решение!!!

Да будет новым HID-joystick-ом больше на Arduino Uno R3

art100 to write 20140530
Оказывается Windows7 HID-устройствами могут быть только:
1.АрдуиныЛеонарды и МикроПро 
2.и клон Teensy за 30$ 
Да ну. :-0
Так написано официально.
http://arduino.cc Врёте!!! Что-то меня сомнения гложат.
 
Собираем
1. джойстик из комплекта ардуин
2. Atmel обмен загрузчиков, я взял последнюю но думаю это не важно чем шить лишь бы шилось.
например: Flip Installer - 3.4.7.112.exe 
выкладывают прошивальщикам как обычно сам Atmel например тут: http://www.atmel.com/tools/FLIP.aspx
3. !!! несовместимую якобы с HID-device дешевую Arduino Uno R3 на ней два чипа где USB обслуживает ATmel16U2
4. Windows7 32 бита но думаю это не важно лишьбы шилось.
 
5. Схема. Почему-то в мире схемы большой дифицит.
Втыкаем Джойстик в ArduinoUnoR3
 GND  - GND 
 5V   - 5V 
 X    - A0
 Y    - A1
 Fire - 4
 
Пример работы с джойстиком
6.Открываем ArduinIDE берем мой пример джойстика и вливаем классически в ArduinoUnoR3
тут ничего нового.
Правда?
 
Загоняем в HID-режим
7. Открываем "Устройства и Принтеры" и видим классический режим Arduino COM24 например. Ok
8. Ставим наш софт для прошивальщиков из п 2.
9. быстро коротим reset (крайние торчащие 2 пина у ATmel16U2 ) конечно только она перегружается в режим для прошивания,
и Windows обнаруживает некую подмену микросхему угадайте какую?
Правильно ATmel16U2
10. жмем батник JoystickHex.bat кторый шьет загрузчик UnoJoy.Hex только в ATmel16U2.
11. вынимаем вставляем USB платку
и о Чудо ;-)
 
12. появляется некий UnoJoy Joystick
Ну хорошо скажет старый программер НЕ ВЕРЮ.
 
13. правой клавишей мыши свойства калибруем.
Короче так же как и в Windows 95 калибруем в Windows 7.
Мой свежекупленный не заношенный сразу удачно стоял четко в центре и ничего не потребовалось калибровать.
 
14. Ставим игрушку древнюю например поедатель PacMan.exe
15. Громко кричим :0 AAAAAAAAAAAAAAA
16. Выламываем очередной джойстик вставляем свежий дальше кричим. :000000000
17. Выламываем очередной джойстик вставляем свежий дальше кричим. :000000000
18. Выламываем очередной джойстик вставляем свежий дальше кричим. :000000000
19. Выламываем очередной джойстик вставляем свежий дальше кричим. :000000000
 
Веселых криков.
Enjoy :)
 
20.возврат из HID-device режима в классический Arduino COMXXX режим соотвествующим батником ArduinoHex.bat
с классическим hex
Батники перед прошивками проверяют и шьют только ATmel16U2 так что небойтесь ничего не поломаете.
Прошивки проверены на двух экземплярах Windows 7 полет нормальный.
 
21.В принципе джойстиков и кнопок можно много навтыкать.
Мелких ~2 мегабайта для теста игрушек как-то не нашел за 2 часа брожения по интернету.
Может позже.
 
кино 18мегабайт как я режусь в pacman.exe на Windows7 джойстиком из набора arduino
 
 
классическая прошивка
HID-joystick-овая прошивка !!!
набор от Atmel под Windows7 для прошивания
методика как шить только Atmel16U2
рабочий код опрашиваюший однокнопочный и двухперенныйXY джойстик
 
8 мегабайт
 
 
 
 
теперь вопрос
Вот чудо каталонским языком что-то мутное про HID-клавитуру
Кто-то может понять эту схему?
щас попробую выложить

 

 

 

art100
Offline
Зарегистрирован: 09.03.2014

Pacman все тоже поедатель

 

джойстик за 3$


ArduinoUnoR3 после резета непосредственно штырков reset ATmel16U2 а не общей кнопки резет

О чудо появилось некое устрйтсво Atmel16U2 чтобы это могло быть?

 

калибруем выбираем куда джойстик воткнуть чтоб в Windows 7 совпало

Танцы с бубном

Айяй яй нога 4

Айяй яй анолог A0

Aйяй яй аналог A1

в принципе если бы была куча джойстиков можно было бы еще поугадывать модные нынче

поворты коловы 

камеры

десяток оружия

джойстиков маловато :(

 

 

art100
Offline
Зарегистрирован: 09.03.2014

Вопрос кто-нибудь может понять схему клавитуры?

http://www.dtic.upf.edu/~dgallardo/arduinohid/vullferneun.html

 

язык каталонский 

но в языке проблем нет

новость была по лживым euronews 

ах какие веселые затеи с этими HуманойдноIнтелектулаьнымиDевись-устройствами

как вы еще не развиваете интелект прогрессивными супер европейскими технологиями?

если европейцы дальше так будут разьяснять как применять

Нам надо переходить на МонголоРусский мат для описания схем.

 

 

art100
Offline
Зарегистрирован: 09.03.2014

такое впечатлениея что я опять впереди планеты всей

опять монологи толкаю

:(

 

 

toly
Offline
Зарегистрирован: 17.05.2014

Похоже схема примитивная. Входы d2...d13 и a1...a5 подтянуты резисторами к +5, и кнопками просто замыкаются на общий. Какая кнопка к чему именно подключена лучше посмотреть в самом скетче, по мелким фото это непросто понять.

Vasia.Z
Vasia.Z аватар
Offline
Зарегистрирован: 30.11.2013

плохо вы искали на arduino.cc, однако http://arduino.cc/en/Hacking/DFUProgramming8U2

art100
Offline
Зарегистрирован: 09.03.2014

Vasia.Z пишет:

плохо вы искали на arduino.cc, однако http://arduino.cc/en/Hacking/DFUProgramming8U2

мыслишь правильно

только когда идешь по ссылке упираешся в некое чудо

SonyPlayStation3

про другие операционные системы все как-то глухо

китайцы уже девайсы готовые впаривают бракованные

а тут уникальную Arduino прошивку днем с огнем не найдешь

на свой страх и риск я от туда прошивку и h выдрал, а потом в windows занимался танцами с бубном

научным тыком занимался

тык это нога

тык нет другая

тык не сгорела еще

тык вроде нет

есть еще сайт но там про операционные системы нет

Щас буду архив от Atmel рассматривать не от туда повыковыривали эти уникальне прошивки?

А одночиповая ArduinoLeonardo меня не впечатлила для домашнего развлечения

2 штуки сгорели по аналоговым портам

а впаривали мне их по 25$ за штуку

Вобщем молодец что неверишь.

Я тоже не поверил. Проверил.

 

Если найдешь на официальном сайте Arduino HID-device прошивку маякни?

 

Я когда увидел что уже некая фирма из-за неотработанности этох HеловенческоIнтелектульнойDевайсов  уже свою только плату за 30$ предлагает. Понял что надо на один пост в мире побольше сделать

вон посмотри если купишь их совместимую с ArduinoIDE плату то получишь максмиально совместимые USB-HID-Device очевидно что без них это нелегко стало

заявлено что платки по 16$ вот только менее 23$ без доставки что-то не обнаруживается

да и неперспективно уникальными платами обкладываться

 

 

 

Vasia.Z
Vasia.Z аватар
Offline
Зарегистрирован: 30.11.2013

Оригинальные файлы для 8ю4 (usb-to-serial) 

https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/atmegaxxu2

А в конце странички http://arduino.cc/en/Hacking/DFUProgramming8U2 есть ссылка на https://code.google.com/p/unojoy/wiki/GettingStarted :) 

Да, не официальная прошивка, но неспроста эта магия с dfu описывается в разделе Hacking же! Это, так сказать, для продвинутых фича, не очевидная и далеко не всем нужная. Как из DFU и вашего кода собрать прошивку для 8ю4 можно просто нагуглить.

признаю, что на ородруино.цц не оень корректно написано, да. Но если знать что искать.. :)

art100
Offline
Зарегистрирован: 09.03.2014

спасибо щас посмотрю

что-то многа букАв у Atmel-а не могу осилить

ну все обозвали меня Hack

ну все согласно американским фильмам за мной будет бегать американское ФБР

что делать

побегу хаватся в бульбу

p.s.

посмотрел

вроде это стандартные

а я кричу что ардуино джопстик через ардуину в винду не втыкается

Типа Гуманные Девись Гуманные Девись

а как копнешь так совсем не гуманные

на LPT не помню чтоб такие секреты бали чтоб воткнуть на DOS Win3.11 Win95 Win98

как пошла чудо Win2000 с чудо USB все через косяк какой-то

смотрю до сих пор станки с ЧПУ гонят продукцию и управляются по LPT

все вроде везде есть а начнешь собирать фигни какой-то старой нет

промежуточной програмной хрени днем с огнем не сыщешь

насколько я понял HID девисов актуально всего два Клава да мышь остальное от них производные

копаю в сторону клавиатурного поля

код вроде есть но опять танцами с бубном попахивает где схемы

типа на верхней чудо-каталонец дурко резисторов 18 штук навтыкал а внятно какой код клавиши в комп летит мутно все как-то

пытаюсь откомпилировать безтолково неполно собранные комплекты

чужие косяки правлю чтоб компиляция проходить хоть начала

автор что-то перемудрил с таймерами

надо просто подождать 15 мин перед выключением

а тут какая-то муть на ровном месте да еще не компилируется

Ты с Timer-ами не игрался?

Что за чудо функция

timer.every

может где большие маленкие буквы потеряны

 

1powerLedTimer=timer.every(10,fadeOutPowerLight);//плавно гасим индикатор это я уже написал

 

1: error: no matching function for call to 'Timer::every(int, void (&)())'

насколько я понял автор ради задержки 15 минут

какуюто чудо библиотеку прикрутилъ

01/*
02 *      This program is free software; you can redistribute it and/or modify
03 *      it under the terms of the GNU General Public License as published by
04 *      the Free Software Foundation; either version 2 of the License, or
05 *      (at your option) any later version.
06 *
07 *      This program is distributed in the hope that it will be useful,
08 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
09 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 *      GNU General Public License for more details.
11 *
12 *      You should have received a copy of the GNU General Public License
13 *      along with this program; if not, write to the Free Software
14 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
15 *      MA 02110-1301, USA.
16 */
17 
18/*  * * * * * * * * * * * * * * * * * * * * * * * * * * *
19 Code by Simon Monk
21* * * * * * * * * * * * * * * * * * * * * * * * * * * * */
22 
23#ifndef Timer_h
24#define Timer_h
25 
26#include <inttypes.h>
27#include "Event.h"
28 
29#define MAX_NUMBER_OF_EVENTS (10)
30 
31#define TIMER_NOT_AN_EVENT (-2)
32#define NO_TIMER_AVAILABLE (-1)
33 
34class Timer
35{
36 
37public:
38  Timer(void);
39 
40  int8_t every(unsigned long period, void (*callback)(void*), void* context);
41  int8_t every(unsigned long period, void (*callback)(void*), int repeatCount, void* context);
42  int8_t after(unsigned long duration, void (*callback)(void*), void* context);
43  int8_t oscillate(uint8_t pin, unsigned long period, uint8_t startingValue);
44  int8_t oscillate(uint8_t pin, unsigned long period, uint8_t startingValue, int repeatCount);
45   
46  /**
47   * This method will generate a pulse of !startingValue, occuring period after the
48   * call of this method and lasting for period. The Pin will be left in !startingValue.
49   */
50  int8_t pulse(uint8_t pin, unsigned long period, uint8_t startingValue);
51   
52  /**
53   * This method will generate a pulse of pulseValue, starting immediately and of
54   * length period. The pin will be left in the !pulseValue state
55   */
56  int8_t pulseImmediate(uint8_t pin, unsigned long period, uint8_t pulseValue);
57  int8_t stop(int8_t id);
58  void update(void);
59 
60protected:
61  Event _events[MAX_NUMBER_OF_EVENTS];
62  int8_t findFreeEventIndex(void);
63 
64};
65 
66#endif

 

01/*
02 *      This program is free software; you can redistribute it and/or modify
03 *      it under the terms of the GNU General Public License as published by
04 *      the Free Software Foundation; either version 2 of the License, or
05 *      (at your option) any later version.
06 *
07 *      This program is distributed in the hope that it will be useful,
08 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
09 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 *      GNU General Public License for more details.
11 *
12 *      You should have received a copy of the GNU General Public License
13 *      along with this program; if not, write to the Free Software
14 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
15 *      MA 02110-1301, USA.
16 */
17 
18/*  * * * * * * * * * * * * * * * * * * * * * * * * * * *
19 Code by Simon Monk
21* * * * * * * * * * * * * * * * * * * * * * * * * * * * */
22 
23#ifndef Event_h
24#define Event_h
25 
26#include <inttypes.h>
27 
28#define EVENT_NONE 0
29#define EVENT_EVERY 1
30#define EVENT_OSCILLATE 2
31 
32class Event
33{
34 
35public:
36  Event(void);
37  void update(void);
38  int8_t eventType;
39  unsigned long period;
40  int repeatCount;
41  uint8_t pin;
42  uint8_t pinState;
43  void (*callback)(void*);
44  unsigned long lastEventTime;
45  int count;
46  void* context;
47};
48 
49#endif

 

такое обьявление чисто синтаксически наверно допустимо

Timer timer;

но как потом не запутаться кто кого вызывает

для приличия нормальные кодеры пишут хотябы

Timer timer1;

блин что-то от дурного когда голова кругом пойду чайку попью

вижу Monk  в примерах пишет грамотно

1int tickEvent = t.every(2000, doSomething, (void*)2);

и переменки 3 штуки вижу

а тут дурь какая-то

1usbOnTimer = timer.after(delayPowerOnUSB, doPeripheralsOn);

опять две переменки

бредятиной какой-то попахивает

 

Vasia.Z
Vasia.Z аватар
Offline
Зарегистрирован: 30.11.2013

С таймерами вообще почти что дела не имел, увы :с НО: 

http://playground.arduino.cc/Code/Timer --- Timer.every(промежуток,функция) выполняет указанную функцию каждый указанный промежуток времени

art100
Offline
Зарегистрирован: 09.03.2014

Vasia.Z пишет:

С таймерами вообще почти что дела не имел, увы :с НО: 

http://playground.arduino.cc/Code/Timer --- Timer.every(промежуток,функция) выполняет указанную функцию каждый указанный промежуток времени

спасибо

я так и думал

в стандартном компиляторе есть таймер

01#include "Timer.h"
02  Timer t;
03int pin = 13;
04 void setup(){
05  pinMode(pin, OUTPUT);
06  t.pulse(pin, 10 * 60 * 1000, HIGH); // 10 minutes 
07}
08 void loop(){
09  t.update();
10}

все прекрасно задерживается на 10 минут

так значит надо вычищать дурко код

типа

1usbOnTimer = timer.after(delayPowerOnUSB, doPeripheralsOn);

 

Kolaha
Offline
Зарегистрирован: 29.12.2016

Еще Мегу можно прошивать под HID, ту что с 16U2, но я пожадничал, 7 долларов все-таки. Уж лучше Про Микро, оно 3$ всего и крохотное, как раз в корпус геймпада помещается.

Вот сейчас разобрал свой старый Boeder Cross Check с разъемом Gameport. Убрал лишние детали и перемычки. Пришлось отказаться от потенциометра в рукояти(не центрировался почему-то). Сделал аналоговое подключение кнопок POV Thumb Stick. Осталось собрать и можно играть через USB.