View attachment 18508Q is a 4 wheel drive bot am working on am using the 28x2 base shield two lm293D motor drivers and a 14m2 to control the servo. has four micro geared motors and four metal geared MG90 servo's, a quick pan around https://www.youtube.com/watch?v=0zpg2XtOaeYpowered by 4 AA read a little more over at http://www.letsmakerobots.com/robot/project/q this link http://www.picaxeforum.co.uk/showthread.php?26577-here-s-Q how to wire the ERF to the shield for wireless programming.
the code is quite raw at the moment but it is working main code on the 28x2and the 14M2Code:' simple serial Tx test 'wriiten by jinx 2014 'rev 1.0.0 '############ Directive ############### #com 7 #picaxe 28x2 #no_data #no_table #terminal 9600 '######### CONSTANTS ################## symbol toSD =c.6 symbol fromSD=c.7 symbol delay = 5000 symbol junk =w0 symbol S_pos = b3 '4= front right, 3= left front init: ' 1/2/3 /4 let dirsb = %11111111 pause 10 let pinsb = %00000000 main: ' let S_pos = 2 ' gosub senddata ' pause 10 ' let pinsb = %00000000 ' pause 1000 ' let pinsb = %01101001 pause 10 gosub slidergtfwd pause 1000 gosub slidelftback pause 1000 gosub spinLFT pause 5000 gosub spinRGT pause 5000 gosub FWD pause 1000 gosub BCK pause 1000 ' gosub RGT 'pause delay goto main senddata: high toSD,1 pulsin fromSD, 1, junk low toSD serout toSD,n2400_8, (S_pos) ' sertxd ("sent",#S_pos, cr, lf) return fwd: let S_pos = 1 gosub senddata pause 100 let pinsb = %00000000 pause 10 let pinsb = %10101010 pause 10 return BCK: let S_pos = 1 gosub senddata pause 20 let pinsb = %00000000 pause 10 let pinsb = %01010101 return RGT: let S_pos = 2 'done gosub senddata pause 20 let pinsb = %00000000 pause 10 let pinsb = %01101001 return LFT: let S_pos = 2 'done gosub senddata pause 20 let pinsb = %00000000 pause 10 let pinsb = %10010110 return slidergtfwd: let S_pos = 3 gosub senddata pause 20 let pinsb = %00000000 pause 10 let pinsb = %01010101 return slidelftback: let S_pos = 3 gosub senddata pause 20 let pinsb = %00000000 pause 10 let pinsb = %10101010 return slideLFT: let S_pos = 4 gosub senddata pause 100 return spinLFT: let S_pos = 5 gosub senddata pause 100 let pinsb = %00000000 pause 10 let pinsb = %10011001 pause 10 'both forward return spinRGT: let S_pos = 5 gosub senddata pause 100 let pinsb = %00000000 pause 10 let pinsb = %01100110 pause 10 'both forward return
sort test for wireless control using keyboard and erf https://www.youtube.com/watch?v=vWubjH-r9ks&feature=youtu.be https://www.youtube.com/watch?v=yzwOdP-ZN40&feature=youtu.beCode:' simple serial test ' reciever ' written by jinx 2014 ' rev 0,0,1 '######## Directive ################# #com 7 #picaxe 14m2 #no_data #terminal 4800 '######## constants ################## symbol fromMP = c.3 'connect to c.6 on the 28x2 symbol toMP = c.4 'connect to c.7 on the 28x2 symbol front_R = b.5 symbol front_L = b.4 symbol back_L = b.3 symbol back_R = b.2 '######## Variables ################## symbol S_pos = w0 symbol SDflag = pinc.3 '############################################## init: dirsc = %110111 low toMP servo front_R,120 pause 20 servo front_L,162 pause 20 servo back_L,125 pause 20 servo back_R,175 pause 20 '########### MAIN CODE ######################## main: do if SDflag = 1 then gosub getdata pause 100 ' ' pause 20 ' servo front_L,162 ' pause 20 ' servo back_L,125 ' pause 20 ' servo back_R,175 ' pause 1000 ' servo front_R,80 ' pause 20 ' servo front_L,120 ' pause 20 ' servo back_L,78 ' pause 20 ' servo back_R,130 ' pause 20 ' pause 2000 'pause 20 ' pause 1000 'gosub fwd 'pause 1000 'gosub side 'pause 1000 'gosub slideLFT 'pause 1000 'gosub slideRGT 'pause 1000 'gosub spin 'pause 1000 loop '######### SUBROUTINES ######################## getdata: pulsout toMP,5 serin fromMP,n2400_4,S_pos ' sertxd ("recieved ",#S_pos,cr,lf) select case S_pos case 1 gosub fwd case 2 gosub side case 3 gosub slideLFT case 4 gosub slideRGT case 5 gosub spin end select return fwd: ' sertxd ("forward ",cr,lf) servo front_R,120 ' pause 20 servo front_L,162 pause 20 servo back_L,125 pause 20 servo back_R,175 pause 20 return side: ' sertxd ("sidewards ",cr,lf) servopos front_R,210 ' sets the wheel for pause 20 servopos back_R,90 pause 20 servopos front_L,75 'either left or right pause 20 servopos back_L,215 pause 20 return slideLFT: servo front_R,170 pause 20 servo front_L,210 pause 20 servo back_L,170 pause 20 servo back_R,220 pause 20 return slideRGT: servo front_R,80 pause 20 servo front_L,120 pause 20 servo back_L,78 pause 20 servo back_R,130 pause 20 return spin: servo front_R,170 pause 20 servo front_L,130 pause 20 servo back_L,170 pause 20 servo back_R,133 pause 20 return