Story
In a previous project we showed we showed how to use the Pulse Train Hat and wireless Xbox controller to control our Mecanum Bot.
Information and the project overview can be found on the following link:
https://www.hackster.io/cnc-design/pulse-train-hat-for-raspberry-pi-mecanum-bot-example-75fcd6
We now have created a platform on Hackster.IO for the Pulse Train Hat, if you could help us by becoming a member, then it would help us a lot as we need 25 members to get it featured.
https://www.hackster.io/pulse-train-hat
For this project, we want to add a few parts to the Mecanum Bot and also expand a little more on the design and the workings of it.
Here is a picture of the Mecanum Bot with extras added.
First a little information on the Mecanum Wheel.
The Mecanum wheel is one design for a wheel which can move in any direction. It is sometimes called the Ilon wheel after its Swedish inventor, Bengt Ilon, who came up with the idea in 1973 when he was an engineer with the Swedish company Mecanum AB.
The angle between rollers axis and central wheel could have any value but in the case of conventional Swedish wheel it is 45”.The angled peripheral rollers translate a portion of the force in the rotational direction of ht wheel to a force normal to the wheel direction .Depending on each individual wheel direction and speed,the resulting combination of all these forces produce a total force vector in any desired direction thus allowing the platform to move freely in the direction of the resulting force vector,without changing of the wheels themselves.
Wireless Communication.
After playing around for a few days with our Mecanum Bot, we decided that control over Wifi was a little restricted if we wanted our Bot to roam further a field and also reduce the amount of signal drop outs we were seeing.
So we started to look into RC transmitter and receivers and chose the Turnigy TGY-i6S Transmitter than came with a TGY-iA6B 6 channel receiver that gave PWM out on 6 individual channels.
The thing with RC receivers is that they do not simply give you a On or Off signal for each channel. They give out a PWM signal for each channel. This allows small servos usually found in RC airplanes, boats, cars etc to be easily controlled with minimum wiring as the standards are all in place.
There is also PPM receivers that put all six pulses on one channel, but we will focus on the dedicated six channel receiver that has one PWM for each channel at the moment.
The PWM signal is typically a pulse train running at a frequency of 50hz (50 pulses a second) and a pulse width of between 1-2 ms.
So for example a joystick would have a channel for each direction. When the joystick is in the center position it will give out a pulse width of 1.5ms, when it is fully pushed up it would give a pulse width of 2ms and fully down, a pulse width of 1ms. Between these points it will give linear range.
Now we probably could of got the Raspberry Pi to monitor these pulses and do the pulse width calculations of each channel, but we were not confident in the accuracy due to it already doing a lot of other things and also the GPIO pins on the Raspberry Pi are not 5 volt tolerant. So with this in mind we opted to get a cheap ARM module that could easily calculate the pulse width on each channel and also that had 5 volt tolerant pins.
For more detail: Adding RC Transmitter/Receiver to Control Mecanum Bot