Hey Everyone!
This is my 1.5-2 year project that I have referenced to a couple times. I thought I would start a project log, since I'm kind of proud of it. Unfortunately I'm almost done with it, so this may be a rather short thread. Here it is still in construction:
I will upload some more photos later.
----------------------------------------------------
Some more photos:
The main boards with the ICs not on yet:
----------------------------------------------------
Yesterday I did some more work on it and got the front IR sensors mounted.
----------------------------------------------------
Did some more work on it the other day. Got the side IR sensors mounted. And a lot of wires hooked up. I hope to get the back IR sensors hooked up today. The Front:
The side with the sensors distance adjust pots:
My work space (kind of messy):
----------------------------------------------------
Well I got a lot more done today then I thought I would!I mounted the back sensors, and hooked up just about everything I could before I mount the main boards. I got the tires glued on to.
----------------------------------------------------
Well I just finished it. Got everything hooked up and the battery mounted. Then I flipped it on and IT DIDN'T WORK!!!!!!!It didn't even try to work. Nothing turned on at all. And also the battery are getting kind of hot.
I guess I have got a long day of trouble shooting tomorrow.
----------------------------------------------------
YAY!!I just tested one of the main boards and the + and - terminals are a dead short! That explains why the battery was getting hot and why nothing worked. I just hope thats all thats wrong with it. I will find out tomorrow!
----------------------------------------------------
Well I got it kind of working.The problem was I did not have the microcontroller hooked up to each other. And there was a small piece of wire stuck between two capacitor pins. Right now it turns in circles and some of the edge sensors don't work. Hopefully that will be an easy fix.
----------------------------------------------------
Well after a LOT of work, I got it going straight. One of the wheels is faster then the other one (I wonder how that happened), so I programed it to correct itself by going the other direction every 1 second. I think I have got most of it working, but I lost one of the main microcontrollers. Most likely I will find it by stepping on it with the pins up, or I will find it on my desk.Heres a photo of it:
Right now it weighs some where around 498g. The limit on weight for a robot sumo is 500g.And I still don't have the front on!
----------------------------------------------------
Well after some thought, I decided to just go ahead and post the whole project. Because it's not like I did anything new. And maybe one day someone else will build it, and possibly even learn something too!
Here's the schematic:
Link to Express PCB File
----------------------------------------------------
And here's the code:
NOTE: This code is some of the first PICAXE BASIC code I ever wrote. It can be simplified greatly and should be. It uses way to many gotos and has almost no comments. One day I will get around to totally rewriting it.
Code for U2:
Code for U7:Code:main1: high b.0,b.2 low b.1,b.3,b.5,c.4 pause 5000 high b.5,c.4 goto main main: let b0=0 pwmout b.4, 25, 51 low b.0,b.1,b.2,b.3 goto start start: if pinc.0=1 then goto cella endif if pinc.1=1 then goto cellb endif if pinc.2=1 then goto cellc endif if pinc.3=1 then goto celld endif goto main cella: if pinc.0=1 then pause 100 ;debounce if pinc.1=1 then goto cellab endif endif if pinc.0=1 then pause 100 ;debounce if pinc.2=1 then goto cellac endif endif goto cella2 cella2: high b.1,b.2 low b.0,b.3 pause 100 low b.0,b.2 high b.1,b.3 pause 1000 goto main cellb: if pinc.0=1 then pause 100 ;debounce if pinc.1=1 then goto cellab endif endif if pinc.3=1 then pause 100 ;debounce if pinc.1=1 then goto cellbd endif endif goto cellb2 cellb2: high b.0,b.3 low b.1,b.2 pause 100 low b.0,b.2 high b.1,b.3 pause 1000 goto main cellc: if pinc.2=1 then pause 100 ;debounce if pinc.0=1 then goto cellac endif endif if pinc.3=1 then pause 100 ;debounce if pinc.2=1 then goto cellcd endif endif goto cellc2 cellc2: high b.2 low b.0,b.1,b.3 pause 100 low b.0,b.1,b.2,b.3 pause 1000 goto main celld: if pinc.3=1 then pause 100 ;debounce if pinc.2=1 then goto cellcd endif endif if pinc.1=1 then pause 100 ;debounce if pinc.3=1 then goto cellbd endif endif goto celld2 celld2: high b.0 low b.1,b.2,b.3 pause 100 low b.0,b.1,b.2,b.3 pause 1000 goto main cellab: high b.1,b.3 low b.0,b.2 pause 1100 goto main cellcd: high b.2 low b.0,b.1,b.3 pause 100 high b.0 low b.1,b.2,b.3 pause 100 low b.0,b.1,b.2,b.3 pause 800 goto main cellac: high b.1,b.2 low b.0,b.3 pause 300 high b.0 low b.1,b.2,b.3 pause 300 goto main cellbd: high b.0,b.3 low b.1,b.2 pause 300 high b.2 low b.0,b.1,b.3 pause 300 goto main
Code:main1: low b.0,b.1,b.2,b.3 ;F if pinb.5=1 then pause 100 if pinb.5=1 then goto main endif endif goto main1 main: let w0=0 low b.0,b.1,b.2,b.3 ;F goto start start: if b2=10 then high b.2 ;L pause 650 low b.2 let b2=0 goto start endif if pinc.0=1 then pause 100 if pinc.0=1 then goto cella endif endif if pinc.1=1 then pause 100 if pinc.1=1 then goto cellb endif endif if pinc.2=1 then pause 100 if pinc.2=1 then goto cellc endif endif if pinc.3=1 then pause 100 if pinc.3=1 then goto celld endif endif if pinc.4=1 then pause 100 if pinc.4=1 then goto celle endif endif if pinb.4=1 then pause 100 if pinb.4=1 then goto cellf endif endif pause 100 inc b2 goto start cella: if pinc.0=1 then pause 100 if pinc.0=1 then if pinb.4 = 1 then pause 100 if pinb.4=1 then goto cellaf endif endif endif endif goto cella2 cella2: inc w0 if w0=400 then goto main endif if pinc.0=1 then pause 100 if pinc.0=1 then if pinc.1=1 then pause 100 if pinc.1=1 then goto main endif endif endif endif high b.1,b.3 ;B low b.0,b.2 pause 10 goto cella2 cellb: if pinc.1=1 then pause 100 if pinc.1=1 then if pinc.2=1 then pause 100 if pinc.2=1 then goto cellbc endif endif endif endif goto cellb2 cellb2: inc w0 if w0=400 then goto main endif if pinc.0=1 then pause 100 if pinc.0=1 then if pinc.1=1 then pause 100 if pinc.1=1 then goto main endif endif endif endif high b.1,b.3 ;B low b.0,b.2 pause 10 goto cellb2 cellc: if pinc.2=1 then pause 100 if pinc.2=1 then if pinc.3=1 then pause 100 if pinc.3=1 then goto cellcd endif endif endif endif if pinc.2=1 then pause 100 if pinc.2=1 then if pinc.1=1 then pause 100 if pinc.1=1 then goto cellbc endif endif endif endif goto cellc2 cellc2: inc w0 if w0 = 400 then goto main endif if pinc.1=1 then pause 100 if pinc.1=1 then goto main endif endif high b.0 ;R low b.2,b.1,b.3 pause 10 goto cellc2 celld: if pinc.2=1 then pause 100 if pinc.2=1 then if pinc.3=1 then pause 100 if pinc.3=1 then goto cellcd endif endif endif endif goto celld2 celld2: inc w0 if w0=400 then goto main endif if pinc.1=1 then pause 100 if pinc.1=1 then goto main endif endif high b.0 ;R low b.2,b.1,b.3 pause 10 goto celld2 celle: if pinb.4=1 then pause 100 if pinb.4=1 then if pinc.4=1 then pause 100 if pinc.4=1 then goto cellef endif endif endif endif if pinc.3=1 then pause 100 if pinc.3=1 then if pinc.4=1 then pause 100 if pinc.4=1 then goto celled endif endif endif endif goto celle2 celle2: inc w0 if w0=400 then goto main endif if pinc.0=1 then pause 100 if pinc.0=1 then goto main endif endif high b.2 ;L low b.1,b.0,b.3 pause 10 goto celle2 cellf: if pinc.0=1 then pause 100 if pinc.0=1 then ;debounce if pinb.4=1 then pause 100 if pinb.4=1 then goto cellaf endif endif endif endif if pinc.4=1 then pause 100 if pinc.4=1 then ;debounce if pinb.4=1 then pause 100 if pinb.4=1 then goto cellef endif endif endif endif goto cellf2 cellf2: inc w0 if w0=400 then goto main endif if pinc.0=1 then pause 100 if pinc.0=1 then goto main endif endif high b.2 ;L low b.1,b.0,b.3 pause 10 goto cellf2 cellaf: inc w0 if w0=400 then goto main endif if pinc.0=1 then pause 100 if pinc.0=1 then if pinc.1=1 then pause 100 if pinc.1=1 then goto main endif endif endif endif high b.2 ;L low b.1,b.0,b.3 pause 10 goto cellaf cellbc: inc w0 if w0=400 then goto main endif if pinc.0=1 then pause 100 ;debounce if pinc.0=1 then if pinc.1=1 then pause 100 if pinc.1=1 then goto main endif endif endif endif high b.0 ;R low b.2,b.1,b.3 pause 10 goto cellbc cellcd: inc w0 if w0=400 then goto main endif if pinc.0=1 then pause 100 if pinc.0=1 then ;debounce if pinc.1=1 then pause 100 if pinc.1=1 then goto main endif endif endif endif high b.0 ;R low b.2,b.1,b.3 pause 10 goto cellcd cellef: inc w0 if w0=400 then goto main endif if pinc.0=1 then pause 100 if pinc.0=1 then ;debounce if pinc.1=1 then pause 100 if pinc.1=1 then goto main endif endif endif endif high b.2 ;L low b.1,b.0,b.3 pause 10 goto cellef celled: high b.0 ;R low b.2,b.1,b.3 if pinc.4=0 then pause 100 if pinc.4=0 then ;debounce if pinc.3=0 then pause 100 if pinc.3=0 then goto main endif endif endif endif goto celled
KeithM likes this.