Skip to content

Instantly share code, notes, and snippets.

@flyboy74
Created March 16, 2017 12:33
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save flyboy74/ab9c96d20b49b769ad3e5c830da05f12 to your computer and use it in GitHub Desktop.
Save flyboy74/ab9c96d20b49b769ad3e5c830da05f12 to your computer and use it in GitHub Desktop.
Line Follower that detects green turn signs
Sensor.SetMode(1,4)
Sensor.SetMode(4,4)
Red_min[0] = 230
Red_min[1] = 40
Red_min[2] = 10
Red_max[0] = 350
Red_max[1] = 90
Red_max[2] = 70
White_min[0] = 130
White_min[1] = 130
White_min[2] = 130
White_max[0] = 300
White_max[1] = 300
White_max[2] = 300
Green_min[0] = 40
Green_min[1] = 140
Green_min[2] = 30
Green_max[0] = 90
Green_max[1] = 250
Green_max[2] = 100
Black_min[0] = 0
Black_min[1] = 0
Black_min[2] = 0
Black_max[0] = 240
Black_max[1] = 240
Black_max[2] = 240
Silver_min[0] = 300
Silver_min[1] = 300
Silver_min[2] = 300
Silver_max[0] = 1000
Silver_max[1] = 1000
Silver_max[2] = 1000
Sub dectect_colour
sensor1 = Sensor.ReadRaw(1,3)
Sensor4 = Sensor.ReadRaw(4,3)
If sensor1[0] > Red_min[0] And sensor1[0] < Red_max[0] And sensor1[1] > Red_min[1] And sensor1[1] < Red_max[1] And sensor1[2] > Red_min[2] And sensor1[2] < Red_max[2] then
sensor1_colour = "Red"
ElseIf sensor1[0] > Green_min[0] And sensor1[0] < Green_max[0] And sensor1[1] > Green_min[1] And sensor1[1] < Green_max[1] And sensor1[2] > Green_min[2] And sensor1[2] < Green_max[2] then
sensor1_colour = "Green"
ElseIf sensor1[0] > Black_min[0] And sensor1[0] < Black_max[0] And sensor1[1] > Black_min[1] And sensor1[1] < Black_max[1] And sensor1[2] > Black_min[2] And sensor1[2] < Black_max[2] then
sensor1_colour = "Black"
ElseIf sensor1[0] > White_min[0] And sensor1[0] < White_max[0] And sensor1[1] > White_min[1] And sensor1[1] < White_max[1] And sensor1[2] > White_min[2] And sensor1[2] < White_max[2] then
sensor1_colour = "White"
ElseIf sensor1[0] > Silver_min[0] And sensor1[0] < Silver_max[0] And sensor1[1] > Silver_min[1] And sensor1[1] < Silver_max[1] And sensor1[2] > Silver_min[2] And sensor1[2] < Silver_max[2] then
sensor1_colour = "Silver"
Else
sensor1_colour = "Unknown"
EndIf
If sensor4[0] > Red_min[0] And sensor4[0] < Red_max[0] And sensor4[1] > Red_min[1] And sensor4[1] < Red_max[1] And sensor4[2] > Red_min[2] And sensor4[2] < Red_max[2] then
sensor4_colour = "Red"
ElseIf sensor4[0] > Green_min[0] And sensor4[0] < Green_max[0] And sensor4[1] > Green_min[1] And sensor4[1] < Green_max[1] And sensor4[2] > Green_min[2] And sensor4[2] < Green_max[2] then
sensor4_colour = "Green"
ElseIf sensor4[0] > Black_min[0] And sensor4[0] < Black_max[0] And sensor4[1] > Black_min[1] And sensor4[1] < Black_max[1] And sensor4[2] > Black_min[2] And sensor4[2] < Black_max[2] then
sensor4_colour = "Black"
ElseIf sensor4[0] > White_min[0] And sensor4[0] < White_max[0] And sensor4[1] > White_min[1] And sensor4[1] < White_max[1] And sensor4[2] > White_min[2] And sensor4[2] < White_max[2] then
sensor4_colour = "White"
ElseIf sensor4[0] > Silver_min[0] And sensor4[0] < Silver_max[0] And sensor4[1] > Silver_min[1] And sensor4[1] < Silver_max[1] And sensor4[2] > Silver_min[2] And sensor4[2] < Silver_max[2] then
sensor4_colour = "Silver"
Else
sensor4_colour = "Unknown"
EndIf
EndSub
While "True"
dectect_colour()
If sensor1_colour = "Green" Then
Motor.MoveSync("AD", 15, 45, 300,"true")
ElseIf sensor4_colour = "Green" then
Motor.MoveSync("AD", 45, 15, 300,"true")
Elseif sensor1_colour = "Black" then
Motor.StartSync("AD",-3,40)
Elseif sensor4_colour = "Black" then
Motor.StartSync("AD",40,-3)
Elseif sensor1_colour = "Silver" or sensor4_colour = "Silver" then
Motor.Stop("AD","true")
Program.End()
Else
Motor.StartSync("AD",40,40)
EndIf
Endwhile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment