Introduction: BAAAA---- BOT
Hi there! This is an instructable on making a semi utility, definitely adorable sheep resembling boe bot with working bumpers. This instructable will work you through the process of making the bumpers, give you all the code and a brief showcase of all the awesome aesthetics!
Step 1: The Code!
So the code is really simple and honestly wouldn't take you more than 2 hours to fully understand and get a grasp of to do it on your own. But! For those that just wanna see the code and copy and paste it into the basic stamp editor program then here ya go!
Code:
'************************************************************************
' Name: Luca DeFilippis
' Title - BoeBump.bs2
' Date - 28 November 2017
'Description ' Create physical bumpers that trigger a command when it hits something ' to move the Boe Bot away from the obstacle.
' {$STAMP BS2} ' {$PBASIC 2.5}
****THIS ABOVE IS JUST THE INFO ABOUT WHO MADE IT AND BASIC STUFF LIKE THAT*******
'************************************************************************
' Code for Reset Start Stop
' this code makes the bot stop or start when reset is pressed = good for making sure bot doesnt run code on loading program
'************************************************************************
temp VAR Byte 'temporary store RunStatus DATA $00 'variable stored in ROM
READ RunStatus, temp 'READ the variable from ROM temp = ~temp 'invert the value 0 TO 1 OR 1 TO 0 WRITE RunStatus, temp 'WRITE the variable back TO ROM IF (temp>0) THEN END 'Check IF the value is 1 ' IF so END the program
'************************************************************************
' Pins Setup
'************************************************************************
LMotor PIN 13 RMotor PIN 12
'************************************************************************
' Constants Setup
'************************************************************************
LStop CON 750 RStop CON 750
'************************************************************************
' Variables
'************************************************************************
X VAR Word
'************************************************************************
' Main Program
'************************************************************************
DO
HIGH 1 'Turn cathodes on
HIGH 2
HIGH 3
HIGH 9
HIGH 10
HIGH 11
DEBUG ? IN14, ? IN4,CR
IF (IN14 = 1) AND (IN4 = 1) THEN 'No contact on bumpers, sub Forward
DEBUG "Forward",CR 'debug to see what movement command occurs
LOW 1
LOW 2 'Turn cathodes on and flash red and blue
LOW 9
LOW 10
GOSUB Forward
ELSEIF (IN14 = 0) AND (IN4 = 0) THEN 'Contact with both bumpers, sub BothBump = back up go forward to right
DEBUG "BothBump",CR
LOW 1 'long pause of both lights green
LOW 3
LOW 9
LOW 11
GOSUB BothBump
ELSEIF (IN14 = 0) AND (IN4 = 1) THEN 'Contact with left bumper, sub BumpRight = back up go forward to right
DEBUG "BumpRight",CR
LOW 9 'right light will go blue left will go green
LOW 11
PAUSE 200
GOSUB BumpRight
ELSEIF (IN14 = 1) AND (IN4 = 0) THEN 'Contact with right bumper, sub BumpLeft = back up go forward to left
DEBUG "BumpLeft",CR
LOW 1 'left light will go blue right will go green
LOW 3
PAUSE 200
GOSUB BumpLeft
ENDIF
LOOP
END 'Stop Program before Sub Procedures run by accident
'************************************************************************
' Sub Procedures
'************************************************************************
Forward: 'Forward for 25 cm
' FREQOUT 6, 200, 1600 'optional police siren frequencies for note e high and e flat, this slows down bot and is very quiet
' FREQOUT 6, 100, 800
FOR X = 1 TO 500
PULSOUT RMotor, 700
PULSOUT LMotor, 850
NEXT
PAUSE 20
RETURN
'****************************************************
' Code to reverse and turn when both bumpers are hit
'****************************************************
BothBump: 'REVERSE 20cm
FOR X = 1 TO 150
PULSOUT RMotor, 850
PULSOUT LMotor, 650
NEXT
PAUSE 200
FOR X = 1 TO 200 'Turn Left 60 degrees
PULSOUT RMotor, 650
PULSOUT LMotor, 760
NEXT
PAUSE 20
RETURN
'****************************************************
' Code to reverse and turn left when the right bumper is hit
'****************************************************
BumpLeft: 'REVERSE 20cm
FOR X = 1 TO 150
PULSOUT RMotor, 850
PULSOUT LMotor, 650
NEXT
PAUSE 200
FOR X = 1 TO 200 'Turn Right 45 degrees
PULSOUT RMotor, 740
PULSOUT LMotor, 850
NEXT
PAUSE 20
RETURN
'****************************************************
' Code to reverse and turn left when the right bumper is hit
'****************************************************
BumpRight: 'REVERSE 20cm
FOR X = 1 TO 150
PULSOUT RMotor, 850
PULSOUT LMotor, 650
NEXT
PAUSE 200
FOR X = 1 TO 200 'Turn Left 60 degrees
PULSOUT RMotor, 650
PULSOUT LMotor, 760
NEXT
PAUSE 20
RETURN
'********************************************************
' End of Sub Procedures
'********************************************************
The comments in the code should give you an idea of how everything works and why certain code is present but here goes a brief explanation anyways.
Ok so the way this code works is like this. The bot will run a loop code of checking the inputs of the bumpers that act like buttons. So whenever there is no detection (1,1) the forward sub procedure will run and the bot will go forward. This same idea works with whether there is left, right, or even both bumper detection!
The cathodes use the high and low commands to show light based on inputs from the bumper. They should flash blue and red like a cop car when no detection has been taken place and they should turn the corresponding left or right light bumper to turn green if said bumper has any detection. The sub procedures tell the bot to move back and turn right or left based on the hit to avoid the obstacle it made contact with. This works exceptionally well in mazes because the turn is very slight meaning that the bot will be careful not to turn exceedingly much and exit the maze.
Attached to the forward sub procedure is a freqout command to allow for sound to be transmitted while moving forward. The frequencies given should sound like a cop siren, thus adding to the aesthetic of having cop lights.
Thats it really! Nothing too crazy to understand, I hope this was helpful and straightforward!
Step 2: The Construction!
------------------------------------------------------------------------------------------------------------------------------------------------------
What you will need:
------------------------------------------------------------------------------------------------------------------------------------------------------
6 1k resistors
2 10k resistors
2 3 colour cathodes
1 speaker (optional)
any small sized capacitor (also optional (for the speaker!))
Multitude of wires
2 popsicle sticks
Aluminum foil
Small pieces of cardboard
Hot Glue
Tape
------------------------------------------------------------------------------------------------------------------------------------------------------
The Bumpers!
------------------------------------------------------------------------------------------------------------------------------------------------------
Ok so lets begin with the bumpers! To make them you are gonna need to use the aluminum foil, cardboard, wire and hot glue to mantle it to the board.
1. Cut out 2 similar sized cardboard rectangles and fold them in half
2. Hot glue the 2 pieces to the same popsicle stick and then hot glue the other side of the cardboard pieces to another seperate popsicle stick.
3. Now you need to fold aluminum foil into some hefty squares big enough to fit 2 on each cardboard piece, attach the pieces of foil to the cardboard via staples, or any other conductor. I used staples.
4. Now it is important to attach 2 wires to each cardboard piece and make sure they have clear secure connection to the aluminum foil
They should look something like the first image
5. Finally now you have to attach the 4 wires to the board. Do so by connecting 2 to Vss and one to anywhere in the 6th row, and one anywhere in the 14th row.
To attach the bumpers to the bot, you can do this many ways, I do it by taping the bots front and gluing the stick to that tape.
And really thats it with assembling the bumpers! Now is a matter of actually using them!
------------------------------------------------------------------------------------------------------------------------------------------------------
The Wiring of Everything
------------------------------------------------------------------------------------------------------------------------------------------------------
Now this next part is a little complicated to explain but I will try my best to do so with massive visual help. Reference image 3, 4, 5 to just plug in the components as you see them.
So youre going to want to insert the cathodes on the right side of the board and follow 3 1k resistors into each cathode which would eliminate your 6 1k resistors.
When this is complete you are going to want to wire a ground or vss to the 2nd pin of each cathode, the longest wire.
That completes the cathodes, so the next thing to do is connect your 10k resistors from the vdd to the places you put the 2 bumper wires on the board.
Next is too use a wire and connect pin 6 for the right bumper to the most right 10k resistor and bumper wire.
Follow the past step for the left most 10k resistor.
This next step is optional for the speaker and that is to connect your small capacitor to pin 7 and too the board.
You will then want to connect the speaker negative end to the capacitor and finally connect the positive end to the VSS.
This should conclude the wiring and be sure to reference image 3, 4, 5 for more help!
Step 3: THE BAAAAAA------ Feature!
Along with having police lights and an optional police siren. Your BoeBot will be king of all others by being dressed as a sheep!
Seen in the title image, I made mine look like one!
To do this is really simple, all you need is:
Puff balls
Masking Tape
1. Simple lay out layers of tape and make sure they are all connected with stickyness left on them to stick the puff balls
2. Layer on the sticky part puff balls.
3. This is the part when you attach the furry coat to the bot, you can do this many ways
--> Add inverted tape to the ends of the fluff and wrap the tape around the bot like a rope
OR --> Tape the bottom of the bot and hot glue the loose ends of the tape mesh to the tape at the bottom of the bot
I did the first option for faster and easier access to the board if something goes wrong!
And that's it! Hopefully now your Boe Bot will be the best in town cruising with its amazing features.