MCore (Arduino) - Bluetooth-связь Python

ПК и Mcore с модулем Bluetooth сопряжены. Порт COM9 исходящий в ПК. Однако, когда я отправляю сообщение, Arduino ничего не получает. Я просто отключаю Arduino от ПК и пишу простой код в Mcore, который включает светодиод, когда входное сообщение равно 1. Однако все равно ничего. Это коды на стороне python и arduino:

import time
import serial

port="COM9"          #This will be different for various devices,COM port.
bluetooth=serial.Serial(port, 9600)         #Start communications with the bluetooth unit
bluetooth.flushInput()      #This gives the bluetooth a little kick
bluetooth.write(b'1')       #These need to be bytes not unicode
bluetooth.close()          #Otherwise the connection will remain open until a timeout

Код Arduino:

char a;

void setup()
{
  Serial.begin(9600);
  pinMode(13, OUTPUT);
}

void loop()
{
if(Serial.available()){a = Serial.read();}

if (a == '1'){
  digitalWrite(13, HIGH);
  }

  else{   
  digitalWrite(13, LOW);}

  delay(100);
}

Я попытался установить Pybluez для WIN10, но возникла ошибка. Как вы думаете, причина в этом?

Заранее спасибо

, 👍0

Обсуждение

сначала я бы удалил часть else для отладки, @Juraj

Я также увеличил задержку примерно на 3 секунды, но ответа все еще нет. От светодиода блютуз модуля чувствуется, что он что-то принимает, но то ли с форматом проблема, то ли он не работает должным образом., @Pasha

Я пробовал много комбинаций, включая ваше предложение., @Pasha

Я не могу добавить комментарий, поэтому добавьте ответ. Перейдите по этой ссылке, и вы получите свой результат. https://github.com/huberf/Компьютер-to-Arduino-Bluetooth, @Sayedur Rahman

Спасибо всем за ответы, но причина была очень проста: скорость передачи данных Mbot bluetooth была 115200 и, следовательно, он не мог получить правильные данные., @Pasha


2 ответа


0

пожалуйста, добавьте серийный вывод перед оператором if(if (a == '1')), чтобы увидеть, какое значение a получено, чтобы мы могли его отладить

,

1

Возможно, потому что вы никогда не вызывали bluetooth.open().

Было бы намного проще использовать pySerialTransfer и SerialTransfer.h, чтобы гарантировать надежную и надежную последовательную связь между Python и вашим Arduino.

pySerialTransfer устанавливается с помощью pip и совместим с разными платформами. SerialTransfer.h работает на платформе Arduino и может быть установлен через диспетчер библиотек Arduino IDE.

Обе эти библиотеки имеют высокоэффективные и надежные алгоритмы пакетирования/анализа с простыми в использовании API и снабжены примерами.

,