Запустив сабж.
Крім двох нових модулів, маю старий HC-06. На відміну від нових, старий працює. От з ним StandardFirmataPlus і злеті́ла.
Модуль жере під час роботи десь 30–40 мА, окрім самого Arduino (і той ще 20). З таким рівнем споживання не зробиш пристрій, що місяцями працює від батарейок. Але взагалі щось якось робити з цим можна.
А ще прошивка у мого старого HC-06, схоже, крім AT+NAME
не знає жодної команди. Тому я на ньому не можу змінити pin-код зі стандартного 1234 на щось інше; а саме сумне, що його швидкість там завжди 9600. Але цього для блимання світлодіодом вистачає.
Та до біса. Я додав всього кілька рядків коду до StandardFirmataPlus, і все запрацюва́ло, дашборд на Node-RED працює. Це ж кльово!
Оновлення 21 вересня: на всяк випадок ось StandardFirmataPlus з моїми змінами.
--- StandardFirmataPlus/StandardFirmataPlus.ino 2022-09-21 15:53:19.551743905 +0300
+++ StandardFirmataPlus_BT/StandardFirmataPlus_BT.ino 2022-09-20 22:25:21.343698266 +0300
@@ -746,6 +746,9 @@
previousPINs[i] = 0;
}
+ Firmata.setPinMode(10, PIN_MODE_IGNORE);
+ Firmata.setPinMode(11, PIN_MODE_IGNORE);
+
for (byte i = 0; i < TOTAL_PINS; i++) {
// pins with analog capability default to analog input
// otherwise, pins default to digital output
@@ -777,6 +780,8 @@
isResetting = false;
}
+SoftwareSerial BluetoothSerial(10, 11);
+
void setup()
{
Firmata.setFirmwareVersion(FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION);
@@ -795,14 +800,14 @@
// to use a port other than Serial, such as Serial1 on an Arduino Leonardo or Mega,
// Call begin(baud) on the alternate serial port and pass it to Firmata to begin like this:
- // Serial1.begin(57600);
- // Firmata.begin(Serial1);
+ BluetoothSerial.begin(9600);
+ Firmata.begin(BluetoothSerial);
// However do not do this if you are using SERIAL_MESSAGE
- Firmata.begin(57600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for ATmega32u4-based boards and Arduino 101
- }
+ //Firmata.begin(57600);
+ //while (!Serial) {
+ // ; // wait for serial port to connect. Needed for ATmega32u4-based boards and Arduino 101
+ //}
systemResetCallback(); // reset to default config
}