hippy
Ex-Staff (retired)
The lazy dog ducked beneath the quick brown fox.
Code:
[color=Green][i]'AXE112 Colour module using PICAXE-08M
'Sorts coloured Smarties(TM) into correct position bin
; MODIFIED 05-08-2005
; FOR USE WITH HITEC HS-311 SERVO
; LIGHT SENSOR SUPPORTED BY 30mm+12mm SPACER
' ********************************************
' Servo Position Constants
' Predefined servo positions - will require editing for your setup!
' These positions need to be found by experimentation[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]pos_tube [/color][color=DarkCyan]= [/color][color=Navy]203 [/color][color=Green][i]' tube position[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]pos_scan [/color][color=DarkCyan]= [/color][color=Navy]178 [/color][color=Green][i]' scan position[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]pos_red [/color][color=DarkCyan]= [/color][color=Navy]143 [/color][color=Green][i]' red bin[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]pos_green [/color][color=DarkCyan]= [/color][color=Navy]110 [/color][color=Green][i]' green bin[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]pos_blue [/color][color=DarkCyan]= [/color][color=Navy]83 [/color][color=Green][i]' blue bin[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]pos_yellow [/color][color=DarkCyan]= [/color][color=Navy]124 [/color][color=Green][i]' yellow bin[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]pos_reject [/color][color=DarkCyan]= [/color][color=Navy]63 [/color][color=Green][i]' reject bin
' ********************************************
' PICAXE-08M input/output pins[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]LED [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=Green][i]' Colour sensor white LEDs (output 0)[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]S2 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Green][i]' Colour sensor select S2 (output 1)[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]ser [/color][color=DarkCyan]= [/color][color=Navy]2 [/color][color=Green][i]' Servo (output 2)[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]CSI [/color][color=DarkCyan]= [/color][color=Navy]3 [/color][color=Green][i]' Colour sensor pulse (input 3)[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]S3 [/color][color=DarkCyan]= [/color][color=Navy]4 [/color][color=Green][i]' Colour sensor select S3 (output 4)
' ********************************************
' Variables[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]counter [/color][color=DarkCyan]= [/color][color=Purple]b0 [/color][color=Green][i]' Counters for loops[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]counter2 [/color][color=DarkCyan]= [/color][color=Purple]b1[/color]
[color=Blue][b]symbol [/b][/color][color=Black]start_pos [/color][color=DarkCyan]= [/color][color=Purple]b2 [/color][color=Green][i]' Servo start position[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]end_pos [/color][color=DarkCyan]= [/color][color=Purple]b3 [/color][color=Green][i]' Servo end position[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]red_value [/color][color=DarkCyan]= [/color][color=Purple]w4 [/color][color=Green][i]' Colour sensor red content[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]blue_value [/color][color=DarkCyan]= [/color][color=Purple]w5 [/color][color=Green][i]' Colour sensor blue content[/i][/color]
[color=Blue][b]symbol [/b][/color][color=Black]green_value [/color][color=DarkCyan]= [/color][color=Purple]w6 [/color][color=Green][i]' Colour sensor green content
' Remember w4-w6 uses b8-b13!
' ********************************************
'initialise LED and move servo to tbe tube position[/i][/color]
[color=Black]init: [/color][color=Blue][b]low [/b][/color][color=Black]LED [/color][color=Green][i]' make LED pin an output
[/i][/color][color=Black]start_pos [/color][color=DarkCyan]= [/color][color=Black]pos_tube [/color][color=Green][i]' set start position
[/i][/color][color=Blue][b]servo [/b][/color][color=Black]ser, pos_tube [/color][color=Green][i]' move servo
[/i][/color][color=Blue][b]pause [/b][/color][color=Navy]300 [/color][color=Green][i]' delay for servo to move
' ********************************************
' scan and sort a sweet every 3 seconds[/i][/color]
[color=Black]main:
[/color][color=Blue][b]low [/b][/color][color=Black]ser [/color][color=Green][i]' servo off to save power
[/i][/color][color=Blue][b]pause [/b][/color][color=Navy]3000 [/color][color=Green][i]' wait three seconds
' vibrate sweet out of tube
[/i][/color][color=Blue][b]for [/b][/color][color=Black]counter2 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue][b]to [/b][/color][color=Navy]3
[/color][color=Black]end_pos [/color][color=DarkCyan]= [/color][color=Black]pos_tube [/color][color=DarkCyan]- [/color][color=Navy]2
[/color][color=Blue][b]gosub [/b][/color][color=Black]move
end_pos [/color][color=DarkCyan]= [/color][color=Black]pos_tube
[/color][color=Blue][b]gosub [/b][/color][color=Black]move_back
[/color][color=Blue][b]next [/b][/color][color=Black]counter2[/color]
[color=Green][i]' move to scanning position
[/i][/color][color=Black]end_pos [/color][color=DarkCyan]= [/color][color=Black]pos_scan
[/color][color=Blue][b]gosub [/b][/color][color=Black]move[/color]
[color=Green][i]' scan the colour
[/i][/color][color=Blue][b]gosub [/b][/color][color=Black]colour[/color]
[color=Green][i]' move to correct bin
[/i][/color][color=Blue][b]gosub [/b][/color][color=Black]move
[/color][color=Blue][b]pause [/b][/color][color=Navy]100[/color]
[color=Green][i]' back to start
[/i][/color][color=Black]end_pos [/color][color=DarkCyan]= [/color][color=Black]pos_tube
[/color][color=Blue][b]gosub [/b][/color][color=Black]move_back
[/color][color=Blue][b]goto [/b][/color][color=Black]main[/color]
Last edited: