Skip to content
Snippets Groups Projects
Edmund Jochim's avatar
bca76a19

CSPM_MecanumWheelCar

Description

A mecanum wheel is an omnidirectional wheel design for a land-based vehicle to move in any direction. Source. A toy car with four mecanum wheels has been build up from building blocks (similar to LEGO bricks) and will be provided by supervisor. Each motor can be independantly driven by a seperate motor. The existing control is only a very simple on-off-control the motors. In the project, it should be replaced by an advanced control with PWM-based speed adjustment for each motor.

Tasks

  1. Hardware
  • Selection of hardware components, preferably based on available boards: 2S / 7.4V LiPo Battery and charger („BMS“), 5V-Output Step-Down-Converter for μC supply, μC-Board (Preferably ESP32), H-Bridge drivers for the motors
  • Wiring of the components (using jumper-wires, wago cage clamp connectors or similar)
  • 3D-printing of housing; this must be mountable on the car’s chassis
  • Selection of Gamepad / HID for user interaction
  1. Software (Mostly on ESP32)
  • Reception of steering commands via WiFi / UDP or bluetooth
  • Development of a suitable command list (e.g. 3x integer for: fw/rev, turn left/right, move left/right)
  • Transformation of steering commands to motor control PWM duty cycle
  • Optional: Use of 6-DOF or 9-DOF sensor for acceleration measurement and advanced control design
  • If WiFi / UDP is used: PC-Software (Python) to convert gamepad / user commands into UDP Datagrams being transfered to the car

Schematic

Schematic

Command list

Command Description Possible Response
move forward time x Drive forward for x milliseconds. x = 10-30000 ok/error
move back time x Drive backward for x milliseconds. x = 10-30000 ok/error
move right time x Drive to right for x milliseconds. x = 10-30000 ok/error
move left time x Drive to left for x milliseconds. x = 10-30000 ok/error
cw time x Rotate clockwise for x milliseconds. x = 10-30000 ok/error
ccw time x Drive counter-clockwise for x milliseconds. x = 10-30000 ok/error
move diagonal y time x Drive diagonal for x milliseconds in y direction. x = 10-30000 y = "rf": right front "rb": right back "lb": left back "lf": left front ok/error
rc x y z Apply speed to x y or z direction. x (backward - forward) = -127 - 127 y (left - right) = -127 - 127 z (rotation ccw - cw) = -127 - 127
stop Set all speed to 0. ok/error

Licence

Project is licensed under GNU GENERAL PUBLIC LICENSE Version 3 for the software components and CC BY-SA 4.0 for the hardware components.

Project developed as part of the module Case Study with Project Managing in the Control, Computer and Communications Engineering (CCCE) study programm in the IEM department at THM.

Technische Hochschule Mittelhessen | IEM