top of page
Categories

Change control method: from I/O to communication control.

Taesu Yim

I decided to use the same motors and motor drivers but change how they are controlled.

Previously, I used input/output (I/O) control, and now I use communication control.

In the previous post, I explained how to control I/O. Using the built-in Arduino in LattePanda, the motor rotates when the high or low signal is output according to the rules. The speed can also be adjusted using the PWM output.

Many BLDC motor drivers support both I/O and communication control.


I initially chose I/O control because it has the following advantages.


  • Direct Control: I/O control allows for precise and immediate control over motor functions, such as adjusting speed, direction, or torque.

  • Real-Time Operation: It is well-suited for real-time systems where timely response to changes in control inputs is critical.

  • Simpler Systems: For simple motor applications, I/O control systems can be straightforward and cost-effective to implement, with less complexity than communication control systems.


Despite these advantages, here's why I changed my approach.


  • Limited scalability: To control the motor in different ways, I needed to modify the Arduino code or circuit frequently. The initial design was simple, but with frequent modifications, the Arduino code became too complex.

  • Control precision: The Arduino Leonardo built into my LattePanda has an 8-bit PWM output resolution. This means that the speed of the motor can be adjusted in the range of 0 to 255. Using a 3000 RPM motor, adjusting PWM duty one would change about 11.7 RPM, which was less precise than I wanted. Also, when using two motors and two drivers, I often found that the speed was different, even if I entered the same duty on both sides. I was able to compensate for this through experimentation, but it was not a good symptom.


For this reason, it was decided that communication control was more suitable for precise control of OROHA. Communication control solved the above-mentioned shortcomings. Since the motor's RPM could be set directly, it could be controlled in 1 RPM intervals, and the actual speed of the motor was almost guaranteed to be accurate.


However, communication control does have its drawbacks.


  • Speed delay: In communication control, packets are sent back and forth, some delay is needed because sending and receiving packets too quickly can cause errors.

  • Difficult to implement: Compared to I/O control, it can be challenging to implement, especially if you don't understand serial communication, RS-485 communication, or Modbus protocols.

  • Communication unreliability: Unlike I/O control, where control rarely fails, communication can fail, and sometimes communication suddenly stops working.  With OROHA weighing about 50 kilograms, it would be an accident if it were to get out of control while



Anyway, for one reason or another, we use communication control (despite its drawbacks).


I've attached the communication protocol manual for my GGM 'GUX-9-400' motor driver.





In the next post, I will talk about how to test the communication.




6 views0 comments

Recent Posts

See All

コメント


bottom of page