HID-device и Windows только Leonardo Micro Да ну? Не верю.
- Войдите на сайт для отправки комментариев
Сб, 31/05/2014 - 00:11
В интернетах и на официальном сайте пишут что для 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. джойстик из комплекта ардуин
например: 3$ http://www.aliexpress.com/item/Dual-axis-XY-Joystick-Module-for-Arduino-Free-Shipping/620290295.html
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-клавитуру
Кто-то может понять эту схему?
щас попробую выложить
Pacman все тоже поедатель
джойстик за 3$
ArduinoUnoR3 после резета непосредственно штырков reset ATmel16U2 а не общей кнопки резет
О чудо появилось некое устрйтсво Atmel16U2 чтобы это могло быть?
калибруем выбираем куда джойстик воткнуть чтоб в Windows 7 совпало
Танцы с бубном
Айяй яй нога 4
Айяй яй анолог A0
Aйяй яй аналог A1
в принципе если бы была куча джойстиков можно было бы еще поугадывать модные нынче
поворты коловы
камеры
десяток оружия
джойстиков маловато :(
Вопрос кто-нибудь может понять схему клавитуры?
http://www.dtic.upf.edu/~dgallardo/arduinohid/vullferneun.html
язык каталонский
но в языке проблем нет
новость была по лживым euronews
ах какие веселые затеи с этими HуманойдноIнтелектулаьнымиDевись-устройствами
как вы еще не развиваете интелект прогрессивными супер европейскими технологиями?
если европейцы дальше так будут разьяснять как применять
Нам надо переходить на МонголоРусский мат для описания схем.
такое впечатлениея что я опять впереди планеты всей
опять монологи толкаю
:(
Похоже схема примитивная. Входы d2...d13 и a1...a5 подтянуты резисторами к +5, и кнопками просто замыкаются на общий. Какая кнопка к чему именно подключена лучше посмотреть в самом скетче, по мелким фото это непросто понять.
плохо вы искали на arduino.cc, однако http://arduino.cc/en/Hacking/DFUProgramming8U2
плохо вы искали на 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$ без доставки что-то не обнаруживается
да и неперспективно уникальными платами обкладываться
Оригинальные файлы для 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 можно просто нагуглить.
признаю, что на ородруино.цц не оень корректно написано, да. Но если знать что искать.. :)
спасибо щас посмотрю
что-то многа букАв у Atmel-а не могу осилить
ну все обозвали меня Hack
ну все согласно американским фильмам за мной будет бегать американское ФБР
что делать
побегу хаватся в бульбу
p.s.
посмотрел
вроде это стандартные
а я кричу что ардуино джопстик через ардуину в винду не втыкается
Типа Гуманные Девись Гуманные Девись
а как копнешь так совсем не гуманные
на LPT не помню чтоб такие секреты бали чтоб воткнуть на DOS Win3.11 Win95 Win98
как пошла чудо Win2000 с чудо USB все через косяк какой-то
смотрю до сих пор станки с ЧПУ гонят продукцию и управляются по LPT
все вроде везде есть а начнешь собирать фигни какой-то старой нет
промежуточной програмной хрени днем с огнем не сыщешь
насколько я понял HID девисов актуально всего два Клава да мышь остальное от них производные
копаю в сторону клавиатурного поля
код вроде есть но опять танцами с бубном попахивает где схемы
типа на верхней чудо-каталонец дурко резисторов 18 штук навтыкал а внятно какой код клавиши в комп летит мутно все как-то
пытаюсь откомпилировать безтолково неполно собранные комплекты
чужие косяки правлю чтоб компиляция проходить хоть начала
автор что-то перемудрил с таймерами
надо просто подождать 15 мин перед выключением
а тут какая-то муть на ровном месте да еще не компилируется
Ты с Timer-ами не игрался?
Что за чудо функция
timer.every
может где большие маленкие буквы потеряны
1
powerLedTimer=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
20
<a href="http://www.simonmonk.org" rel="nofollow">http://www.simonmonk.org</a>
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
34
class
Timer
35
{
36
37
public
:
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
60
protected
:
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
20
<a href="http://www.simonmonk.org" rel="nofollow">http://www.simonmonk.org</a>
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
32
class
Event
33
{
34
35
public
:
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 в примерах пишет грамотно
1
int
tickEvent = t.every(2000, doSomething, (
void
*)2);
и переменки 3 штуки вижу
а тут дурь какая-то
1
usbOnTimer = timer.after(delayPowerOnUSB, doPeripheralsOn);
опять две переменки
бредятиной какой-то попахивает
С таймерами вообще почти что дела не имел, увы :с НО:
http://playground.arduino.cc/Code/Timer --- Timer.every(промежуток,функция) выполняет указанную функцию каждый указанный промежуток времени
С таймерами вообще почти что дела не имел, увы :с НО:
http://playground.arduino.cc/Code/Timer --- Timer.every(промежуток,функция) выполняет указанную функцию каждый указанный промежуток времени
спасибо
я так и думал
в стандартном компиляторе есть таймер
01
#include "Timer.h"
02
Timer t;
03
int
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 минут
так значит надо вычищать дурко код
типа
1
usbOnTimer = timer.after(delayPowerOnUSB, doPeripheralsOn);
Еще Мегу можно прошивать под HID, ту что с 16U2, но я пожадничал, 7 долларов все-таки. Уж лучше Про Микро, оно 3$ всего и крохотное, как раз в корпус геймпада помещается.
Вот сейчас разобрал свой старый Boeder Cross Check с разъемом Gameport. Убрал лишние детали и перемычки. Пришлось отказаться от потенциометра в рукояти(не центрировался почему-то). Сделал аналоговое подключение кнопок POV Thumb Stick. Осталось собрать и можно играть через USB.