Как аппаратно удалить скетч (прошивку) из Arduino?
- Войдите на сайт для отправки комментариев
Сб, 02/01/2016 - 18:13
На ардуине можно собрать мышку и клавиатуру, ПК будет их видеть, как родные. Проблема в том, что если задаю траекторию движения мышки и нажатие разных клавиш, то при маленькой задержке между операциями не успеваю залить новый скетч. Т.е. при подключении платы к ПК, мышка начинает бегать по экрану, а клавиатура нажимать клавиши. Работать с большими задержками не удобно. В случае если что пойдет не так, как аппаратно удалить прошивку с ардуины?
Пример кода (лучше не запускайте при маленьких задержках), в котором мышка перемещается по вершинам квадрата 100x100px, после чего нажимается клавиша «R»:
#include "Mouse.h"
#include "Keyboard.h"
int responseDelay = 15000; // response delay of the mouse, in ms
int x,y;
void setup() {
Serial.begin(9600);
Mouse.begin();
Keyboard.begin();
}
void loop() {
x = 100; y = 0;
m(x, y);
x = 0; y = -100;
m(x, y);
x = -100; y = 0;
m(x, y);
x = 0; y = 100;
m(x, y);
//delay(responseDelay);
Keyboard.print("R");
//Mouse.click(MOUSE_RIGHT);
delay(responseDelay);
}
void m(int x, int y) {
Mouse.move(x, y, 0);
Serial.print(x);
Serial.print(" ");
Serial.println(y);
delay(responseDelay);
}
использую Arduino Leonardo (кстати, на Arduino Due под Win8.1 x64 не работает).
void setup() {} void loop() {}Как это залить в плату которая сразу же при подключении по USB к ПК перехватывает управление мышкой и клавиатурой?
Может оказаться что никак. Тогда по ISP заново загрузчик писать.
А вообще, отводится некий вывод, D8 например. С ним самим ничего делать не нужно, а в setup() написать:
а потом всё что в loop() поместить внутрь условия:
if(digitalRead(8)){ // main code here }и о чудо, мышка нажимается, но если замкнуть D8 на землю, она узбагоится.
void setup(){
delay ( 10000);
Serial.begin(9600);
Mouse.begin();
Keyboard.begin();
}
Как это залить в плату которая сразу же при подключении по USB к ПК перехватывает управление мышкой и клавиатурой?
зайди в Диспетчер устройств и отключи устройство
или кнопку ресет держи при втыкании
void setup(){
delay ( 100000000000000000000000000000000000000000000000000000000000000000000000000000);
Serial.begin(9600);
Mouse.begin();
Keyboard.begin();
}
Может оказаться что никак. Тогда по ISP заново загрузчик писать.
А вообще, отводится некий вывод, D8 например. С ним самим ничего делать не нужно, а в setup() написать:
а потом всё что в loop() поместить внутрь условия:
if(digitalRead(8)){ // main code here }и о чудо, мышка нажимается, но если замкнуть D8 на землю, она узбагоится.
Действенное и простое решение, как обезопасить себя в таких случаях, спасибо )
void setup(){
delay ( 10000);
Serial.begin(9600);
Mouse.begin();
Keyboard.begin();
}
Простое и эфективное решение, спасибо )
Всем, спавибо. Собрал, все работает отлично. И мышка и клавиатура видятся. В будущем буду еще с SD картой разбираться.