Hello, this is my first project on letsmakerobots so bear with me :)
I wanted to build an object avoidance robot with more than one ultrasonic sensor as i found using one sensor very limited. By using 5 sensors gives this robot a 180 degrees field of view allowing continuous speed adjustments servos motors (limits of atmega328 chip and interference between multiple sensors pings limit this to 30ish times a second).
I made the robot from layered card and glue which was pressed under alot of weight, produced a light, strong, and easy to work with material. It also has 16 leds in the base, these are animated at 30fps, wanted something similar to the bio luminesence flickering effect you see on some jelly fish. Went with blue leds as i had some old led Xmas lights and it worked out cheaper than buying new ones.
The robot has 3 modes of operation controlled via a andoid bluetooth app I wrote.
You can control it manually via the app, selecting the 3rd button turns AI on and robot will move forward avoiding all objects and walls. In manual doing nothing for 5 seconds will put it in Object tracking mode until a command is sent.
Code could do with a bit of fine tuning to smooth out turning and maybe add some noise to logic to allow more varied path choice.
For my next robot i will most likely use motors with encoders and a compass and try to get the robot to do some basic room mapping and pathfinding.
Object avoidance via 5 ultrasound sensors, basic object tracking via same sensors, bluetooth remote control via android
This is actually my second build, aside from general Arduino tinkering, my first was the dagu rover 5 explorer kit from dawn robotics. Great kit for learning basics but its like saying i can build furniture cos i bought a flat pack from Ikea, wanted to build one from scratch using what id learned, and learn more in the process
The app was something i wrote for the Rover 5, as you said there is nothing of much practical use on the marketplace. Started learning java from the ground up using Eclipse IDE, settled on using LibGDX for the UI and then researched and struggled with bluetooth for 3 months. Problem was all of the android methods for bluetooth wont work within LibGDX, nearly gave up until i found how to use interfaces for the android sdk within LibGDX. As far as I know things are similar but easier in Processing however the SDK is stuck at <2.2 and very clunky for me (also opengl is very slow this way).
The app still needs work, when changing the name of BT device to connect requires app restart to save the name, the + and - for speed control are not yet implemented, and communication is only single bytes one way at the moment. As part of my next robot I will be offloading route finding and mapping to the android processor (not expecting perfect results due to drift). This is what I will need 2 way communication for. Gonna give me a few headaches but watch this space
I can post a dropbox link for the app in its current state if you want to try it out, would post code but its a bit hard on the eyes at the moment.
Well, first scratch project - i still stand by my statement
I’ve had the same experience; spent an age waiting for an appropriate project to come along rather than mess around with kits and suchlike.
My project currently just receives single characters and triggers a corresponding void ;U,D,L,R for directions, E for Toggling Eye LEDs, 1 and 2 for triggering sounds from Wall-e’s original PCB. For this limited amount of control apps like BluControl and ArduinoRC have served me well, however the second revision of my build will feature many sounds on a memory card for triggering, plus 3 servos for arm and head movement - bespoke control territory.
Java and HTML and things like that i for some reason have been unable to get my head around. a dropbox link would be fantastic buddy. It would give me a chance to see how a working example is constructed. Soon I hope to be adding a second byte in to deal with speed, ha ha! My second project I’m lining up is going to involve a raspberry pi web server with the control buttons on the web page so i wont have to worry about apps ha ha!
Maybe try tinkering with the Processing IDE, its basically java and there are versions that compile apps for android, its got alot of support and a good place to get your head around the basics. Webservers would be good, multi platform staight off the bat
Arduino Bluetooth RC Car app worked ok for me at first but its not very resposive and very cluttered UI. I also found the buttons are too small on nearly all of the bluetooth apps which mean im constantly looking at my phone rather than the bot. Here is the link to the apk: https://www.dropbox.com/s/bldpi8088vsrfgc/Simple_BT_RC-android.apk
these are the commands sent from app at the moment:
STOP=‘S’ (constantly sent when no buttons are pressed)
AI ON='X’
AI OFF='x’
FORWARD='F’
BACKWARD='B’
TURN LEFT='L’
TURN RIGHT='R’
FORWARD LEFT='G’
FORWARD RIGHT='I’
BACK LEFT='H’
BACK RIGHT='J’
cant guarentee the app will work ok for you, as ive only tested it on my galaxy s4 and my girlfriends Note 2. But it should be ok, when you enter the device name it needs to be same as the paired device your connecting to (case sensitive), press device button to check the name saved then restart app and you should be able to connect (phone will vibrate).
Ill put up a link to source code at somepoint soon when ive refactored and cleaned it up, its like a teenagers bedroom at the moment lol
This is really cool! Nice that you have also enabled an Android App Control. I am also tinkering around with Eclipse and all right now. Is that the HM-05 bluetooth module?