Tag Archives: Arduino

Code name Iron-DR – Part 2 – The Brushless Motor Controllers


Brushless motor and controller

So I had sourced the relatively cheap motor / wheel assemblies from eBay, originally  used for those hover boards. The next issue was controlling them, I could easily make my own controller but I would want it to look good so would want a professional PCB made, which is all fine, i’m a design engineer I can do all that, but the cost soon adds up. So off to eBay again, sorry, and I run across some controller boards that cost around £7 have a voltage of 12 to 36 Volts and are said to handle 500 Watts if you put a heatsink on them. So I order a couple, a few weeks pass and they arrive from China, in the typical way with very lacking documentation, well none in fact just a jiffy bag and the boards. So I look over some other suppliers of the same board and find the pin outs. So I have some pins I need to pull high / low to choose direction and enable the motor then I have a variable voltage input (0-5 Volts) for the speed. RC network to the rescue coupled with the PWM output on an Arduino, bingo variable voltage output from a Micro controller. There is also a pulse counter output, I have not played with this, but should be useful to give an indication as to how much the motor has moved.

Motor Controllers Mounted

Anyways, I hookup one of the motors on the bench, start off with a pot to change the speed of the motor, all works great, nice and easy. so I start to mount all these bit up on some old copper clad board I had laying around, all the motor controls sit nicely in between the motors, Will clean up the wiring later. Next I start writing the Arduino code, start off simple and get one side working, first with a taranis remote control and then with serial data from a PC, no problem, then I pretty much copy the code I have written to control the extra motor controller. fire her up and one side works great the other side is anything but controlled, seemingly doing whatever it wants, strange, so double check wiring. All seems to be fine, start double checking code, all seems to be in order too. so I pull the motor controller board off and stick on a spare motor I have, it works as i expect, really strange, so I stick back in the robot, try again, its does not want to play, so with a bit of head scratching I think to myself its late will pick it up again tomorrow.

So next day I double check everything again, all in order, I even write some really simple code to make the other side work. But still no play.  So I admit defeat I pull the controller out again and try it on the bench, oh I see now, wont work on the bench with the spare motor either now, so a little more messing and it seems it just likes to do random things, sometimes works sometimes doesn’t, maybe its got different firmware of maybe its just got hit by static, in any case I order two more of the controllers, which have arrived now, but I’ve not had time to fit on in.  So I will post again about my adventures with these controllers, but at the moment its a 50/50 chance of the them working, I will give credit to one that does work though, its a great cheap large brushless motor controller when hooked up to the Arduino.

DC 12V-36V 500W Brushless Motor Controller Hall Balanced Car Driver Board U5Y

Genetic Algorithms, Making a Robot Evolve

genetic algorithms
genetic algorithms

Evolution is a fact of life, it is the defining characteristic of life itself, but that doesn’t mean a stupid robot can’t evolve. For his entry into the Hackaday Pi Zero contest, diemastermonkey is doing just that: evolution for robots built around microcontrollers and a Raspberry Pi.

The project is a physical extension to genetic algorithms. Just like DNA and proteins have no idea what they’re actually doing, microcontrollers don’t either. Instead of randomly switching up base pairs and amino acids, his project makes random connections pins depending on the values of those pins.

The potential of these randomly programmed robots is only as good as the fitness function, and so far he has seen some surprising success. When putting these algorithms into a microcontroller connected to a tilting table mechanism and a PIR sensor, the robot eventually settled on a bit of code that would keep a ball in motion. You can check out the video of this below.