My first robot

UPDATED: Code on how to make this sort of navigation inserted below.


My first robot!

I did not have a clue to all the stuff you can buy, and so I thought I was the only one in the world making Robots, and was inventing eveything from scratch..

But.. I actually managed to make some pretty cool code, quite nice navigational system that I have been using in many projects afterwards:

Basics of the code:

Main routine:

Drive ahead!
Pan head from left to right, and back
Constantly return sonar range

When facing green areas:
if sonar range > “interesting” (if there is no obstacles even faaaaar away, an open door or similar to make us curious) and if we did not just do this several times already without seeing anything close, then stop turning head, and start to turn body till head faces an obstacle, or just something far away, or body-turning has ben done for a while. Then continue in main routine

When facing red areas:
if sonar range < “danger” (if something is close in front of us), and head is turned more left than right (in this example):
Turn body a little to the right (away from danger) while turning head a little to the left (towards the danger) - Keep this up until head is in green area, and then continue in main routine


1.000 pics, sorry if this is too much, but I was so much in love ;)


Thanks for asking about the code. i have made a simplified version (without all the extras of this particular robot), just the navigation.

Hardware setup needed for this to turn into something:
1 "Picaxe robot":
2 motors on a motor-driver
1 servo, on which is mounted 1 SRF05

The code below will make this setup navigate like my first robot, featured in video above - you can use belt-track or just a robot on 2 wheels - same code.

Feel free to ask or comment & have fun :)

CODE BEGIN:

EEEH! EEEH! EEEH! ALERT: Since this code is now slowly becoming a "standard" base for quite many projects, I am only updating it one place, you can find the latest version here from now on :)

Drives around and navigates via ultra sound sensors mounted on a servo. Also shoots "laser" and make sounds :)

  • Actuators / output devices: 2 servos, 2 geared motors, led's, speaker
  • CPU: Picaxe 28
  • Operating system: Picaxe
  • Power source: 7, 2V 33Mha Racing Pack, 3 AA cells
  • Programming language: Picaxe basic
  • Sensors / input devices: SRF005, bumper, Tilt sensor
  • Target environment: indoor, outdoor

This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/my-first-robot

Awesome!
This is really an amazing accomplishment for a first robot! I must say I’m a fan of your creations (and the way you create them).

Wicked Cool,

Any chance we can get the entire code you wrote? I would love to steal some snippits from it!

 

www.rocketbrandcustom.com baby!!

Yes, of course, I will post

Yes, of course, I will post the code, and I will also make a walkthrough. My wife just gave birth, so I am kinda hung up, but I have breaks, will post shortly!

/ Frits

There you go

Code inserted in the bottom of the post now :slight_smile:

/ Frits

Thanks fo’ da code…

Didn’t you read the subject line?

-Thanks-

www.rocketbrandcustom.com baby!!

where you get that fast

where you get that fast motor for the “laser”?

exuse my bad english -I’m from holland-

ok, the “laser” isn’t so big

ok, the “laser” isn’t so big so you don’t need a strong motor.

thanks!

ok, the “laser” isn’t so big

ok, the “laser” isn’t so big so you don’t need a strong motor.

thanks!

You got it!

Both there is no weight, and so you can use light and fast servos - and also, it looks faster because it is turning a light on a stick.

If you are just going for speed, you should consider the motors here (they sell them without the wheels at the site) https://www.robotshop.com/letsmakerobots/node/90

/ Frits

Hi Peterdwerg, and welcome

Hi Peterdwerg, and welsome here :slight_smile:

The "motor" is a standard mini-servo.

If you go to any hobby store where they sell servos, you will see that the standard ones mainly come in 2 sizes. And the one I used is the small one "mini-servo". It only has a weight of 9 grams.

Then you will also see that they come in different speeds. The slower they are, the stronger they are.

/ Frits

The navigation is

The navigation is surprisingly good, especially for your first robot.

One thing I noticed – did you make those tank treads yourself out of tape? That’s awesome :slight_smile:

Dan

The navigation is what I am

The navigation is what I am trying to push out everywhere;

https://www.robotshop.com/letsmakerobots/node/254

It IS surprinsingly good - not because I made it, but it always amazes me, sorry if I sound too happy for my own work :slight_smile: It is free for download, try it!

 

Tape is only on tracks to make them skid easier - They where rubber, and the robot suffered. Adding tape made it move MUCH more smooth, and still with plenty of grip.

https://www.robotshop.com/letsmakerobots/node/387

/ Fritsl

Next simple Step

when u say “sound” is it from a speaker?(duh?) or the motor? and the one that really puzzles me is the LED how did u make the code so that it only lights up on obstacles?

 

‘’’’’’’’‘Danger’’’’’’’’’’’’’’’’’’’’‘
ForwardLeft_middle:
Gosub RightSpin

if head > ForwardLeft and head < 150 then
head = head - 15
pause 50
servo Servopin,head
end if
gosub puls
if range < Danger then goto ForwardLeft_middle
gosub afterturn
If MayTurn < MaxNumberTurns then
MayTurn = MayTurn + 1
end if
return

’’’’’’’’’’’’’’’’’’’’’’’’’’’’’'
ForwardRight_middle:
Gosub Leftspin

if head > 150 and head < ForwardRight then
head = head + 15
pause 50
servo Servopin,head
end if
gosub puls
if range < Danger then goto ForwardRight_middle
gosub afterturn
If MayTurn < MaxNumberTurns then
MayTurn = MayTurn + 1
end if
return

 

iknow that i should add

servo 1,head

but how can i make it pause and light?

 

 

I am not sure I follow you

I am not sure I follow you 100%?!?

The robot navigates via Ultra Sound (The SRF05) - and makes sounds through a speaker.

It has multiple LED’s, I am not sure which you wonder about…? However, switching on an LED is just about as simple as it can get. It has to be conected to the output port (see the “start here-project, top menu” for more & links to more) - and then you just write high 2 to make the LED on pin 2 high.

I think perhaps you shouldtry and follow the “start here” - project, and simply just try some more stuff yourself: Make an LED blink, make a speaker say beep etc :slight_smile:

Hey Fritsl…

Hey, I’m new and i’m trying to build a robot for a school project. I would like to build a robot that acts like this first robot of yours. I don’t care how it looks i just want it to navigate around objects instead of running from them. My question is, will the “How to build your first robot” project act like this one? Or will it simply turn away and run rather than turning just enough to move past an obstacle? If not then are the differences in coding or in physical design? Thanks A TON

Kadaj :slight_smile:

Hi Kadaj!The physical design

Hi Kadaj!

The physical design would be the same.

Depending on the code you make, you will get a different acting robot.

The code for this one is atached the "Start here"-series.

**How do you find the servo’s position? **
how do you tell whether it is left or right?

You keep track of its

You keep track of its position when you do an obstacle check. If an obstacle isnt detected you can move on to the rest of the code. If an obstacle IS detected you recall what the last position you assigned to the servo is. Its very basic stuff benbo. If you tell the servo where to go, then of course you know what position it is.

Heavily loaded servos may not be in the exact position you want though.

 

i use pbasic currently
pulsout is all i know. is there a pbasic servo command?