Skip to content

Instantly share code, notes, and snippets.

@flyboy74
Created March 14, 2017 21:51
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/b49b117dd3c4a07f0e815095b8399119 to your computer and use it in GitHub Desktop.
Save flyboy74/b49b117dd3c4a07f0e815095b8399119 to your computer and use it in GitHub Desktop.
Colour Detection for Lego EV3 Mindstrom
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] = 350
White_max[1] = 350
White_max[2] = 350
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] = 75
Black_max[1] = 75
Black_max[2] = 75
Silver_min[0] = 350
Silver_min[1] = 350
Silver_min[2] = 350
Silver_max[0] = 1000
Silver_max[1] = 1000
Silver_max[2] = 1000
While "True"
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 < Red_max[2] then
sensor1_colour = "Red"
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 < White_max[2] then
sensor1_colour = "White"
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 < 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 < Black_max[2] then
sensor1_colour = "Black"
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 < Silver_max[2] then
sensor1_colour = "Sliver"
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 < Red_max[2] then
sensor4_colour = "Red"
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 < White_max[2] then
sensor4_colour = "White"
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 < 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 < Black_max[2] then
sensor4_colour = "Black"
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 < Silver_max[2] then
sensor4_colour = "Sliver"
Else
sensor4_colour = "Unknown"
EndIf
TextWindow.WriteLine("Sensor 1 colour = " + sensor1_colour + " Sensor 4 colour = "+ sensor4_colour)
Program.Delay(1000)
EndWhile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment