To make a robot like Navbot-EN01, Simple FOC is needed.
Arduino Library: Simple FOC (SimpleFOClibrary - Simple Field Oriented Control (FOC) library)
This library support STM32, ESP32, I compiled the sample angle_control.ino, compilation errors:
In file included from /home/rkuo/Arduino/libraries/Simple_FOC/src/SimpleFOC.h:116,
from /tmp/.arduinoIDE-unsaved2026221-45696-177nkm5.blyh/angle_control/angle_control.ino:22:
/home/rkuo/Arduino/libraries/Simple_FOC/src/sensors/MagneticSensorSPI.h:38:5: warning: “/*” within comment [-Wcomment]
38 | /**
|
In file included from /home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/system/component/soc/8735b/cmsis/rtl8735b/include/cmsis.h:35,
from /home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/system/component/mbed/targets/hal/rtl8735b/PinNames.h:32,
from /home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/variants/ameba_amb82-mini/variant.h:27,
from /home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/variants/ameba_amb82-mini/pins_arduino.h:20,
from /home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/cores/ambpro2/Arduino.h:185,
from /home/rkuo/.cache/arduino/sketches/265838927EC2F47C0A45A0FCB4E41887/sketch/angle_control.ino.cpp:1:
/home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/system/component/soc/8735b/cmsis/rtl8735b/include/basic_types.h:160:21: error: expected identifier before numeric constant
160 | #define ON 1
| ^
/home/rkuo/Arduino/libraries/Simple_FOC/src/sensors/Encoder.h:14:3: note: in expansion of macro ‘ON’
14 | ON = 0x00, //!< Enable quadrature mode CPR = 4xPPR
| ^~
/home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/system/component/soc/8735b/cmsis/rtl8735b/include/basic_types.h:160:21: error: expected ‘}’ before numeric constant
160 | #define ON 1
| ^
/home/rkuo/Arduino/libraries/Simple_FOC/src/sensors/Encoder.h:14:3: note: in expansion of macro ‘ON’
14 | ON = 0x00, //!< Enable quadrature mode CPR = 4xPPR
| ^~
In file included from /home/rkuo/Arduino/libraries/Simple_FOC/src/SimpleFOC.h:115,
from /tmp/.arduinoIDE-unsaved2026221-45696-177nkm5.blyh/angle_control/angle_control.ino:22:
/home/rkuo/Arduino/libraries/Simple_FOC/src/sensors/Encoder.h:13:27: note: to match this ‘{’
13 | enum Quadrature : uint8_t {
| ^
In file included from /home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/system/component/soc/8735b/cmsis/rtl8735b/include/cmsis.h:35,
from /home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/system/component/mbed/targets/hal/rtl8735b/PinNames.h:32,
from /home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/variants/ameba_amb82-mini/variant.h:27,
from /home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/variants/ameba_amb82-mini/pins_arduino.h:20,
from /home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/cores/ambpro2/Arduino.h:185,
from /home/rkuo/.cache/arduino/sketches/265838927EC2F47C0A45A0FCB4E41887/sketch/angle_control.ino.cpp:1:
/home/rkuo/.arduino15/packages/realtek/hardware/AmebaPro2/4.1.1-build20260320/system/component/soc/8735b/cmsis/rtl8735b/include/basic_types.h:160:21: error: expected unqualified-id before numeric constant
160 | #define ON 1
| ^
/home/rkuo/Arduino/libraries/Simple_FOC/src/sensors/Encoder.h:14:3: note: in expansion of macro ‘ON’
14 | ON = 0x00, //!< Enable quadrature mode CPR = 4xPPR
| ^~
In file included from /home/rkuo/Arduino/libraries/Simple_FOC/src/SimpleFOC.h:115,
from /tmp/.arduinoIDE-unsaved2026221-45696-177nkm5.blyh/angle_control/angle_control.ino:22:
/home/rkuo/Arduino/libraries/Simple_FOC/src/sensors/Encoder.h:16:1: error: expected declaration before ‘}’ token
16 | };
| ^
exit status 1
Compilation error: exit status 1