Finally, my robot worked well as shown in this video.
PCBWay thankfully supports this project.
Summary
In short, my project can be reproduced by ordering the following PCBs from a PCB supplier such as PCBWay
, producing the 3D-printed parts
, writing the following codes to the omni-wheel robot and remote controller
, preparing harnesses, motors, omni-wheels, screws, nuts, and spacers (8mm).
I will write a bit more detail on HW / SW in the following sections.
Hardware
The picture of the hardware is as follows. The white PCB controller controls the black omni-wheel robot remotely.
Parts selection
The parts selection criteria are summarized in the following link.
Circuit
The circuit for the omni-wheel robot and the remote controller are published in the github link.
The following articles are about the guidelines for circuit design.
- Remote controller design with ESP32-WROVER-B
- Schematic for omni-wheel robot
- PCB design of omni-wheel robot: use dxf file for edge.cuts layer
- Omni-wheel robot PCB redesign
3D printed parts
The following is the picture of the actual part.
stl files are provided in the following links.
The design and order process is summarized in the articles below.
- Design omni-wheel body and motor bracket by FreeCAD
- DMM.make にオムニホイールロボットのパーツを発注する
- Motor bracket design change
Harness
I have created 3 harnesses to convert from the 1.0mm pitch JST SH connector to the 2.54mm pitch QI connector for motors as in the following picture.
Software
Omni-robot
The source code is written here.
The code feature is…
- Establish a Bluetooth connection with the remote controller.
- Move a robot according to the command from the controller.
- Control frequency is 20Hz (cycle time is 50 ms).
- Light up an LED when a command is received from the remote controller or a button is pressed.
- Imu sensory data processing
Remote controller
The source code is written here.
The code feature is…
- Establish a Bluetooth connection with the omni-wheel robot.
- Transmit the data whether the buttons are pressed to the robot.
- Control frequency is 20Hz (cycle time is 50 ms).
- Light up an LED when any button is pressed.
Future improvement
Currently, the board has trouble booting up when the battery is connected through the red circle area though it succeeds when the USB cable is connected via the yellow circle place. This should be improved in the future version.
コメント