Еще раз о связи с ПК
- Войдите на сайт для отправки комментариев
Просмотрел вроде весь форум но так и не получил для себя адекватного ответа.
Помогите разобраться новичку.
1. Как ардуинкой отслеживать нажатие клавиш на ПК? в основном нажатие стрелок и пробела и какая-то обработка при нажатии определенной клавиши. При этом хотелось бы не вызывать программы и терминалы, а просто при подключении по USB перехватывать (или в теневом режиме) получать код нажатой клавиши. Или это требует запуска какой-то внешней программы?
2. К этому следует и вопрос портирования - возможность подключения платы к любому ПК с сохранением работоспособности и не устанавливать ПО.
3. Микросхема FTDI помимо моста USB-UART поддерживает работу с SPI-памятью. Возможно ли получить доступ с Ардуинки к этой памяти? И возможно ли с этой памяти загружать требуемые драйвера и подпрограмки на ПК как с внешнего диска?
снова новички с адекватными вопросами...
1. Кнопа "расшарить клаву для всех" в системе отсутвует - делаем выводы, почему.
2. лепите железный логгер в разрез кабеля клавы и подслушиваете чужие пин-коды.
3. возможно.
По поводу пукта 1- можно как вариант написать программу которая будет отслеживать нажатие клавиш на клавиатуре ПК и отправлять на порт команду... получив опредильонную команду с порта ардуина выполнит некоторое действие. (ету программу можно поставить в автозагрузку в фоновом режиме при старте ОС) Без такого дополнительного ПО нужно копать в сторону драйвера платы ардуино установленого на ПК и драйвера клавиатуры.
По поводу пукта 1- можно как вариант написать программу которая будет отслеживать нажатие клавиш на клавиатуре ПК и отправлять на порт команду... получив опредильонную команду с порта ардуина выполнит некоторое действие. (ету программу можно поставить в автозагрузку в фоновом режиме при старте ОС) Без такого дополнительного ПО нужно копать в сторону драйвера платы ардуино установленого на ПК и драйвера клавиатуры.
Т.е прога должна определять на какой порт подключена ардуина и посылать туда команду - но как по запросу или постоянно??
2. лепите железный логгер в разрез кабеля клавы и подслушиваете чужие пин-коды.
3. возможно.
как раз пин-коды свои и хотелось без наворотов типа логгеров т.к программа дешифровки займет больше чем основная прога.
3.возможно - возможно что? кто-то делал что бы посмотреть как это в кодах?
в С# можеш зделать перебор портов и оприделение на каком порту ардуина, потом в потоке зделать обработчик который при нажати определонной клавиши будет на етот порт посилать команду - просто текст например: pressedup, presseddown, pressedleft.... а в ардуине уже зделать программу которая примет етот масив и сравнит ...если ето масив равен pressedup то зделать то, если равен presseddown то зделать другое...
Я нашел кто мне напишет прогу для винды, которая будет опрашивать клавиши и пересылать в компорт
Но посоветуйте как написать в ардуине опрос этого порта
Посмотрите стандартные примеры, например так
3.возможно - возможно что? кто-то делал что бы посмотреть как это в кодах?
как-то так
http://www.irongeek.com/i.php?page=security/homemade-hardware-keylogger-phukd
http://habrahabr.ru/post/153571/
http://habrahabr.ru/company/dsec/blog/141838/
3.возможно - возможно что? кто-то делал что бы посмотреть как это в кодах?
как-то так
http://www.irongeek.com/i.php?page=security/homemade-hardware-keylogger-phukd
http://habrahabr.ru/post/153571/
http://habrahabr.ru/company/dsec/blog/141838/
Это не овсем то что нужно - слишком дорого и наворочено чтобы просто тестить с клавиатуры ( со своей) нажатие клавиш
Больше интересует именно применение флеш-памяти на FTDI
Посмотрите стандартные примеры, например так
int incomingByte = 0; // переменная для хранения полученного байта
а надо использовать serial.flush() ? чтобы почистить или обнулить буфер компорта?
Если на порт с ПК отправить слово ON - загорится диод на 12 пине (и назад на компор ардуино отправит подтверждение выполненого дейстива слово Оn - ето не обезательно), если на компорт с ПК отправить OFF - потухнет диод на 12 пине и подверждение отправит слово Офф... если с ПК на порт отправить слово hello то ардуина в ответ на ком порт отправит строку Hello! My name is Arduin!
если к выше указаному коду добавить
когда ардуина получит команду которая не описана в коде то в ответ она отправит на компорт строку Error command!
Посмотрите стандартные примеры, например так
int incomingByte = 0; // переменная для хранения полученного байта
а надо использовать serial.flush() ? чтобы почистить или обнулить буфер компорта?
От Вас зависит, от логики того что пишете.
Если с читого листа начать и забыть что было раньше то надо.
В принципе надо опрашивать нажатие стрелок и пробела..
по идее считав из буфера код, его надо обнулить чтобы при повторном считывании не считать его повторно и ждать новый но ..
" Serial.flush()
Ожидает окончания передачи исходящих данных (до версии Arduino 1.0 функция очищала буфер последовательного соединения). "
очистится или нет?
Лень копаться в исходниках, но насколько я понимаю, после чтения обнулять не надо, повторно тоже самое не считаете. Там а-ля стек организован.
А флеш обнуляет стек, что дает уверенности что никакого наследства не досталось.
Посмотрите стандартные примеры, например так
int incomingByte = 0; // переменная для хранения полученного байта
Попробовал и этот
кроме двух забытых скобок в конце опять пишет
avrdude: stk500_getsync(): not in sync: resp=0x00