Having decided to have a go at making some drones, based on the fact that I have four plastic domes and Nanos I have now progressed to an initial prototype. My plan is to make four identical domed drones (I will now call them Dromes) which will be able to operate as a single entity or as four individual drones - well, why not!
I got off to a good start as I had two 360 micro servo motors, also called continuous servo motors, and as I want to make at least four I am 3D printing the chassis. In order to minimise the amount of assembling I designed a solid base with an indent the exact same outline as the micro servo motor so that it will just 'click' in and not need any further fixing. This all went well and I made a simple 3D test base. So, I ordered more 360 degree servo motors and hey presto - they are a different size!. The two I already had were Feetech FT90R but the new ones are Feetech FT90R which have a 1 mm longer body. I wondered what the difference between the FS90R and FT90r was, and now I know. So, a second 3D based was created and this time the servos fitted exactly with a satisfying 'click' and do not seem to need any additional fixing.
Normally I jump straight into the circuit as it is fun and wait until I have made my mobile robots before thinking about battery supply and encapsulation, which means I end up with a messy looking system. But this time I decided to start with the battery power supply as well as how to encapsulate it. LiPo seems the way to go being much smaller and lighter than AA or AAA batteries. Regretfully 1C LiPos only provide 3.7V and 2C LiPos will be too big - and expensive, so a DC-DC convertor is needed to boost the 3.7V to a better 5.5V needed by the Servos. This additionally means that I can use a 5V Nano rather than trying to mess about with 3.3V versions. Add a couple of 3D printed wheels with O ring tyres and a few wires and the initial prototype was created. See the circuit diagram below:
I've used 360 degree servo motors for mobile robots before so I just borrowed one of my existing programmes, simplified it a bit and made something that will move backwards and forwards for 1 second periods, just so I can make sure everything is working well. It is a simple programme using the servo.h library with an infinite while loop with three functions: mystop(), forwards() and backwards() - all fairly self-explanatory. The while loop is listed below.
while(1)
{
forward(170);
delay(1000);
mystop();
delay(1000);
backward(170);
delay(1000);
mystop();
delay(1000);
} /* while */
The following are the three functions used.
void backward(int speed)
{
myservo1.write(speed);
myservo2.write(max_speed - speed);
} /* backward */
void forward(int speed)
{
myservo1.write(max_speed - speed);
myservo2.write(speed);
} /* forward */
void mystop(void)
{
myservo1.write(stop_speed);
myservo2.write(stop_speed);
} /* mystop */
At the moment I am using a small protoboard for the Nano while the circuit is being developed so I just added an indent into the top of the battery casing. Sadly, despite measuring the protoboard twice I still made a mistake and it doesn't quite fit into the indent, but a bit of BlueTac fixed that problem. So now I have a fully working Drome!
At this point I realised that the Dromes will need some form of communication channel as I will need to provide control commands. At present I do not have any solutions in mind, other than possibly some sort of IR channel. I haven't used IR communications before so that should be interesting and fun, and hopefully cheap as well. I want to add an OLED graphic display to the top of the Drome chassis somewhere, to provide a face and some personality to each Drome. I have used an OLED graphic display before so this does not seem too difficult.
If all this goes well I might even add a few flashing LEDs just to make it a bit more fun.
Onward now to making a fully working Drome and then three more.
Dubbie
Top Comments