here's Q

jinx

Senior Member
pic3.PNGQ 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=0zpg2XtOaeY
powered 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 28x2
Code:
' 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
and the 14M2
Code:
' 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
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.be
 
Last edited:
Top