Introduction: Android APP to Control a 3DPrinted Robot

Picture of Android APP to Control a 3DPrinted Robot

This instructables is made to explain how to control one of my EEZYbotARM or EEZYbotDELTA using a Smartphone (or a tablet). This is made via Arduino board equipped with a bluetooth module, and an Android app made with MIT App inventor 2.

video:

In the video I use it to control my EEZYbotDELTA that is a 3Dprinted parallel robot and can be downloaded for free from my Thingiverse account here http://www.thingiverse.com/thing:1249297 . Also my previous EEZYbotARM can be driven with. I made an instructables here http://www.thingiverse.com/thing:1249297 and can be dowloaded for free here http://www.thingiverse.com/thing:1249297

The code doesn't come from me but I have to give tribute to " Arduino Robotics LabVIEW Solidworks " that in this video explain very clearly to develop it. I modified it just to manage four servo only and add a splashscreen.

MIT Appinventor2 it's really a cool and simply way that allow you to make Android App. I made some, one is helpful for some calculation in 3DPrinting and can be found for free in my GooglePlay account https://play.google.com/store/apps/details?id=app...

Step 1: Materials

Picture of Materials

Hardware that you need:

· an EEZYbot ( or 4 servos)

· an Arduino Uno or other Arduino types( Yes I used a clone but, if you can, please consider to use original items)

· Bluetooth module I used an HC-06 for this project but also an HC-05 can be used

· a breadboard (but not necessary)

· some connecting wires

· a smartphone or a tablet

· a PC for the code

Software

- EEZYservoDRIVE.ino ( firmware to install on your arduino board )

- EEZYservoDRIVE.apk ( Android app to install in your smartphone )

Step 2: MAKE IT WORKS

Picture of MAKE IT WORKS

How to make it works

Connect all the bot's servos following the Fritzing circuit diagram in attached picture. ( sometimes could happen servos jittering, so to avoid this, it is important to connect one ground pin of arduino to the ground of servos supply)

Connect arduino to the PC and transfer the arduino code to the board.

If everything works correctly you can see the red led of the Bluetooth module flashing. This mean that is ready but disconnected.

I supplied the servos using a dedicated board attached on the breadboard, this is a comfortable way but is not necessary, it is only important to supply them separately from the Arduino board. Servos have a supply range from 4,8 to 6 V .

Install the ready made apk on the smartphone, launch it, and after the splashscreen you will be asked for permission to turn on the Bluetooth of the phone (if OFF), press yes. (if already ON no request).

Now you are in the main screen of the APP

Press the Bluetooth logo and choose the *********HC-06

You return in the previous screen while the flashing red led on the bluetooth module turns to steady.

The text below the bluetooth button is now green and become CONNECTED.

Now (if everything works) you are able to move the bot wireless using the slides (and impress friends) :-)

It is a very simply app and for sure can be improved a lot, but it is a good starting point to explore other possibility.

Happy making !

Comments

TimM106 (author)2016-03-14

Hi. I've made the arm and successfully controlled it using the Maestro. But when I try this method the arm jerks violently as it moves. Even if i unplug one of the servos the arm jerks when I move the slider in the app. I'm using an HC-05, if that makes any difference.

Any help would be appreciated.

theGHIZmo (author)TimM1062016-04-16

Hi, sorry for the delay on answering.
I do not think the problem is related to the bluetooth module.
If you do a search on the web about servo jitter a lot of material is available.
Mainly I have understand that depends on HighFrequency RF noise on the signal cable of servos.

I almost solved the problem applying all the suggestion I found around
- twist servo cables
- apply ferrite rings to servo cables
- apply capacitor bridge between servos supply
- connect ground pin of arduino to the ground of servos supply

I changed the sketch adding this connection

AndrewA201 made it! (author)theGHIZmo2017-08-24

Hi Ghizmo,

Thank you! I tried ferrite core, capacitors and everything. The servo jitter is caused by software serial. The timing is unreliable and it is possible to get it to work but you must write device-specific code with custom timers.

For simplicity, I used a Mega AT2560, since it has 4 hardware serial channels. This worked perfectly since this cost only $10 here.

I am able to power both servos and arduino from either 4 AA, or USB power on my Macbook.

If you would like my code, please message me and I can email my ino.

I want to next write my own version of this Android app next. Grazie molto!

AndrewA201 (author)AndrewA2012017-08-27

Followup, I used the pro mini's one hardware serial to talk to the bluetooth module, and did not use software serial at all. When you need to download to the arduino, you must disconnect the bluetooth since they share the same serial channel. I am able to have a free standing arm running on 4 rechargeable AA's.

TimM106 (author)theGHIZmo2016-04-17

Hi.

I've done a bit of research on this. There seems to be a known conflict between the software serial and servo libraries. I'm still new to arduino programming, but I gather there may be alternate libraries that address this.

Thanks again for the great design!

preraks25 (author)2017-06-16

Hi,
So I made this project as said(btw great Instructable) ok so I connected everything as required when I control it using the app it just jerks and doesn't move..I think the servos are too small for the load but I may be wrong. None of the servos work as intended. I have very less experience with servos so I don't know what the issue is. The arm just jerks in it's place and nothing moves. Any help would be great thanks.

About This Instructable

22,160views

90favorites

License:

More by theGHIZmo:EEZYbotARM Mk2 - 3D Printed RobotExact Scale Images for Laser EngravingDIY Laser Engraver - Reference Board
Add instructable to: