avrdude: stk500v2_ReceiveMessage(): timeout error for bluetooth arduino
Я пытаюсь подключить модуль Bluetooth к своему arduino UNO, чтобы по беспроводной сети запрограммировать робота. Единственная проблема, с которой я сталкиваюсь, заключается в том, что модуль Bluetooth, похоже, не принимает arduino.
Вот как модуль Bluetooth подключен к моему arduino:
Модуль Bluetooth подключается к моему компьютеру через ключ Bluetooth. Я знаю, что модуль Bluetooth работает на порту COM7. Затем светодиод на модуле Bluetooth быстро мигает. После этого я установил порт на правильный порт, который использует модуль Bluetooth:
Одна вещь, которая показалась мне странной, заключалась в том, что название платы arduino не появляется так же, как когда я использую USB для загрузки программы.
Когда я открываю последовательный монитор, светодиод на модуле Bluetooth начинает мигать медленнее, возможно, указывая, что он подключен. Затем я пытаюсь отправить команду AT через последовательный монитор на arduino, введя AT на последовательный вход в верхней части последовательного монитора и нажав enter, и ничего не происходит. Затем я попытался отправить 3 разных фрагмента кода отдельно на arduino по одному за раз:
Первый пример кода:
void setup() {
Serial.begin(9600);
while (!Serial) {
; // дождитесь подключения последовательного порта. Требуется только для собственного USB-порта
}
Serial.println("ASCII Table ~ Character Map");
}
int thisByte = 33;
void loop() {
Serial.write(thisByte);
Serial.print(", dec: ");
Serial.print(thisByte);
Serial.print(", hex: ");
Serial.print(thisByte, HEX);
Serial.print(", oct: ");
Serial.print(thisByte, OCT);
Serial.print(", bin: ");
Serial.println(thisByte, BIN);
if (thisByte == 126) {
while (true) {
continue;
}
}
thisByte++;
}
Второй пример кода:
#include <SoftwareSerial.h>
SoftwareSerial BTSerial (2,3);
void setup() {
Serial.begin(9600);
Serial.println("Enter AT Commands");
BTSerial.begin(9600);
}
void loop() {
if(BTSerial.available()){
Serial.write(BTSerial.read());
}
if(Serial.available()){
BTSerial.write(Serial.read());
}
}
Третий пример кода:
char inputByte;
void setup() {
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop() {
while(Serial.available()>0){
inputByte= Serial.read();
Serial.println(inputByte);
if (inputByte=='Z'){
digitalWrite(13,HIGH);
}
else if (inputByte=='z'){
digitalWrite(13,LOW);
}
}
}
(Следующая ситуация возникает для всех 3 образцов кода, которые я скопировал из Интернета). Когда я устанавливаю порт на COM7, а затем нажимаю загрузить на плату, IDE говорит "Загрузка", и светодиод начинает мигать медленнее, как я уже упоминал ранее с последовательным монитором. Через некоторое время, в конце концов, появились следующие сообщения об ошибках:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Я поискал ответы в Интернете. Интернет предложил использовать большую скорость передачи данных, поэтому я переключил ее с 9600 на 57600, а также одновременно переключился с новой строки на NL и CR. По-прежнему ничего не происходило, и я получил следующее сообщение об ошибке. Одно последнее предложение, которое я увидел в Интернете, состояло в том, чтобы разместить резисторный делитель/делитель напряжения на выводе RX (я этого не делал, так как не вижу, как это может что-то изменить, хотя я могу ошибаться, и это может иметь большое значение).
@DigitalRookie4, 👍0
Обсуждение1 ответ
Диапазон Bluetooth невелик, поэтому робот не может находиться далеко от компьютера для загрузки.
Чтобы решить проблему сброса для Bluetooth, вы можете добавить кнопку сброса на роботе и использовать ее, пока avrdude пытается загрузить скетч. Скорость передачи данных на HC-05 должна быть установлена на 115200 бод.
В качестве альтернативы у вас может быть USB - разъем на роботе. Вы можете использовать короткий удлинитель USB в качестве внутреннего кабеля от USB-разъема Arduino к внешней оболочке робота.
- TX,RX,ON,l светодиоды всегда были красными
- Arduino с модулем Bluetooth HC-05 | Данные не передаются
- Можно ли измерить скорость акселерометром? Насколько точно?
- Arduino Pro Micro, получить данные с контакта Tx?
- Хочу создать Bluetooth audio control (увеличение/уменьшение громкости, воспроизведение, пауза и т.д.) для смартфона
- Невозможно подключиться к Bluetooth hc-05.
- Проблемы с надежным подключением с использованием HC-05 в качестве ведущего устройства Bluetooth
- Как решить проблему AT+INQ ERROR (1F), AT+INIT ERROR(17) на модуле Bluetooth HC-05?
У вас нет способа перезагрузить Arduino в загрузчик. Вы не можете просто включить интерфейс Bluetooth и надеяться, что он сработает. Вам нужен какой-то способ инициирования сброса, как это делает интерфейс USB через сигнал DTR., @Majenko
Кроме того, вам необходимо вручную настроить скорость передачи данных HC05 в бодах в соответствии со скоростью загрузки загрузчика (IIRC 115200 бод), что вы можете сделать только через его контакты последовательного интерфейса., @Majenko
@Majenko Единственная проблема в том, что у меня нет такого опыта..., @DigitalRookie4
Тогда вам нужно читать, читать, читать. Прочитайте, как работает HC-05. Если есть что-то, чего вы не понимаете, тогда прочитайте об этом аспекте. Продолжайте читать, пока не поймете все это., @Majenko
@Majenko Есть ли способ, которым я мог бы использовать вывод сброса на arduino для решения проблемы?, @DigitalRookie4
Если вы можете придумать какой-нибудь способ удаленного переключения через соединение Bluetooth, да. Или нажмите кнопку сброса в нужный момент, но я думаю, что это как бы сводит на нет весь смысл bluetooth..., @Majenko
`Одна вещь, которая показалась мне странной, заключалась в том, что название платы arduino не всплывает"... с чего бы это? ... название происходит от USB-драйвера, @jsotola
@jsotola Честно говоря, я так и думал., @DigitalRookie4
Я не уверен, насколько вам удобно с пайкой, но посмотрите это видео, где кто-то показал, как сбросить Arduino с модуля Bluetooth: https://youtu.be/6GD3aNFrJ9I?t=401, @Fahad