Created
March 16, 2017 12:33
-
-
Save flyboy74/ab9c96d20b49b769ad3e5c830da05f12 to your computer and use it in GitHub Desktop.
Line Follower that detects green turn signs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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