Как аппаратно удалить скетч (прошивку) из 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 не работает).
Как это залить в плату которая сразу же при подключении по USB к ПК перехватывает управление мышкой и клавиатурой?
Может оказаться что никак. Тогда по ISP заново загрузчик писать.
А вообще, отводится некий вывод, D8 например. С ним самим ничего делать не нужно, а в setup() написать:
а потом всё что в loop() поместить внутрь условия:
и о чудо, мышка нажимается, но если замкнуть 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() поместить внутрь условия:
и о чудо, мышка нажимается, но если замкнуть D8 на землю, она узбагоится.
Действенное и простое решение, как обезопасить себя в таких случаях, спасибо )
void setup(){
delay ( 10000);
Serial.begin(9600);
Mouse.begin();
Keyboard.begin();
}
Простое и эфективное решение, спасибо )
Всем, спавибо. Собрал, все работает отлично. И мышка и клавиатура видятся. В будущем буду еще с SD картой разбираться.