利用CAN BUS進行ODrive位置控制影片如下
延伸閱讀
- ESP32 + PIR + servo motor 充電式非接觸性感應垃圾桶(2021/11)
- Arduino 控制三顆馬達(2019/03)
- Arduino與光碟機的結合(2016/07)
- Arduino與硬碟無刷直流馬達(BLDC)正反轉測試(2021/09)
- Arduino Yun雲的應用-溫度監控系統(2019/05)
開發構想: 用ESP32透過UART與Arduino Mega2560溝通並透過ESP32的WiFi mesh的功能做指令的控制. 如下圖: 手機端的painless mesh的APP連接ESP32, ESP32利用UART2與Mega2560的UART1做指令的傳輸
下圖左為ESP32的com port訊息圖右為Mega2560的com port訊息在之前文章CAN BUS 通訊研究中, 利用了MEGA2560+MCP2515去做CAN BUS上接收和傳送資料. 最近看到一篇文章 可以用ESP32去做CAN BUS上的sniffer來分析.
CANHacker 參考 https://github.com/autowp/arduino-canhacker install library
其中是想利用他的windows端的軟體CANHackerV2.00.01.exe來做CAN bus analyzer
功能傳輸圖:
Purpose:
“ESP32 uses BT SPP Profile to connect with mobile phones or PCs and transmit strings through BT functions to perform specific functional actions for functional strings.”
#include <BluetoothSerial.h>
BluetoothSerial BT; //宣告藍芽物件,名稱為BT
void setup() {
Serial.begin(115200);
BT.begin("BT_Test"); // BTName為藍芽廣播名稱
}
void loop() {
BT.println("Hello World!"); //傳輸到藍芽裝置
//檢查藍芽內是否有資料
while (BT.available()) {
//讀取藍芽資料
String BTdata=BT.readString();
//顯示在序列視窗
Serial.println(BTdata);
BTprocessCommand(BTdata); // do something with the command
}
}
void BTprocessCommand(String data)
{
if (data == "LED_OFF")
{
Serial.println(F("LED_OFF"));
vTaskSuspend(hled);
}
if (data == "LED_ON")
{
Serial.println(F("LED_ON"));
vTaskResume(hled);
}
}
以上程序為ESP32端的code
手機端最簡單方式可以用現成的APP
Arduino Bluetooth Control