This function is used to analyze the image received as input from the stage, for QR Code.
Alert: This block processes the image input and updates the values in the other functions hence it needs to be put inside loops while making projects.
Function Definition: analysestage()
This function is used to analyze the image received as input from the stage, for QR Code.
Alert: This block processes the image input and updates the values in the other functions hence it needs to be put inside loops while making projects.
An IR sensor consists of 2 LEDs: one which transmits the IR light and one which receives the IR light. When the IR rays are transmitted, they bounce from the nearest surface and get back to the receiver LED. That’s how an IR sensor detects an object.
But to detect colors, we depend on the number of rays the surface reflects:
We can get the sensor values in PictoBlox and based on that value we can estimate whether the surface is black or white.
We will call the threshold value above which the sensor detects the black line. If the sensor value is less than the threshold, it means that the sensor hasn’t detected the line yet.
sprite = Sprite('Tobi')
quarky = Quarky()
quarky.cleardisplay()
quarky.setirthreshold("IRL", 3000)
quarky.setirthreshold("IRR", 3000)
while True:
if quarky.getirstate("IRL"):
quarky.setled(1, 1, [0, 255, 0], 20)
else:
quarky.setled(1, 1, [255, 0, 0], 20)
if quarky.getirstate("IRR"):
quarky.setled(7, 1, [0, 255, 0], 20)
else:
quarky.setled(7, 1, [255, 0, 0], 20)
Now, run the code by clicking the green flag and bringing the black line of the track close to the IR sensor. One of the following three conditions will happen:
Now modify the script to add the detection value for the right IR sensor.
sprite = Sprite('Tobi')
quarky = Quarky()
import time
quarky.showemotion('happy')
time.sleep(1)
quarky.showemotion('angry')
time.sleep(1)
quarky.showemotion('crying')
time.sleep(1)
quarky.showemotion('super angry')
time.sleep(1)
quarky.showemotion('surprise')
time.sleep(1)
quarky.showemotion('basic')
time.sleep(1)
quarky.showemotion('love')
time.sleep(1)
quarky.showemotion('nerd')
time.sleep(1)
quarky.showemotion('reject')
time.sleep(1)
quarky.showemotion('wave')
time.sleep(1)
quarky.showemotion('thinking')
time.sleep(1)
quarky.showemotion('giggle')
time.sleep(1)
quarky.showemotion('disco')
time.sleep(1)
sprite = Sprite('Tobi')
quarky = Quarky()
import time
quarky.showanimation('happy')
quarky.showanimation('happy')
quarky.showanimation('nerdy')
quarky.showanimation('nerdy')
quarky.showanimation('thinking')
quarky.showanimation('thinking')
quarky.showanimation('angry')
quarky.showanimation('angry')
quarky.showanimation('contempt')
quarky.showanimation('contempt')
quarky.showanimation('blink')
quarky.showanimation('blink')
quarky.showanimation('fear')
quarky.showanimation('fear')
quarky.showanimation('surprise')
quarky.showanimation('surprise')
quarky.showanimation('wink')
quarky.showanimation('wink')
quarky.showanimation('wave')
quarky.showanimation('wave')
quarky.showanimation('crying')
quarky.showanimation('crying')
sprite = Sprite('Tobi')
quarky = Quarky()
import random
quarky.cleardisplay()
for x in range(1, 8):
red = random.randrange(0, 255)
green = random.randrange(0, 255)
blue = random.randrange(0, 255)
quarky.setled(x, 1, [red, green, blue], 100)
sprite = Sprite('Tobi')
quarky = Quarky()
import time
curr_x = 4
curr_y = 3
brightness = 50
quarky.cleardisplay()
quarky.setled(curr_x, curr_y, (0, 255, 0), brightness)
while True:
if sprite.iskeypressed("up arrow"):
curr_y = curr_y - 1
quarky.setled(curr_x, curr_y + 1, (0, 0, 0), brightness)
time.sleep(0.2)
quarky.setled(curr_x, curr_y, (0, 255, 0), brightness)
if sprite.iskeypressed("down arrow"):
curr_y = curr_y + 1
quarky.setled(curr_x, curr_y - 1, (0, 0, 0), brightness)
time.sleep(0.2)
quarky.setled(curr_x, curr_y, (0, 255, 0), brightness)
if sprite.iskeypressed("left arrow"):
curr_x = curr_x - 1
quarky.setled(curr_x + 1, curr_y, (0, 0, 0), brightness)
time.sleep(0.2)
quarky.setled(curr_x, curr_y, (0, 255, 0), brightness)
if sprite.iskeypressed("right arrow"):
curr_x = curr_x + 1
quarky.setled(curr_x - 1, curr_y, (0, 0, 0), brightness)
time.sleep(0.2)
quarky.setled(curr_x, curr_y, (0, 255, 0), brightness)
time.sleep(0.2)
sprite = Sprite('Tobi')
quarky=Quarky()
import time
quarky.setbrightness(15)
while True:
quarky.drawpattern("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")
time.sleep(5)
quarky.showtext("2", [255,233,0])
time.sleep(1)
quarky.showtext("1", [255,233,0])
time.sleep(1)
quarky.drawpattern("ccccccccccccccccccccccccccccccccccc")
time.sleep(5)
quarky.showtext("2", [255,233,0])
time.sleep(1)
quarky.showtext("1", [255,233,0])
time.sleep(1)
sprite = Sprite('Tobi')
quarky = Quarky()
quarky.cleardisplay()
Y = 1
for i in range(0, 5):
X = 1
for i in range(0, Y):
quarky.setled(X, Y, [101, 255, 0], 100)
X += 1
Y += 1
sprite = Sprite('Tobi')
quarky=Quarky()
while True:
quarky.showanimation("blink")
quarky.showanimation("blink")
quarky.showscrollingtext("Quarky", 2, [0, 255, 0])
quarky.showscrollingtext("Robotics", 2, [0, 0, 255])
The purpose of servo motor calibration is to align the angle of your servo motor properly.
The Servo motor will be connected to the Quarky Servo Connector. There are two servo ports on Quarky. Always make sure that brown wire is on your left side.
Put the Ultrasonic Assembly on the servo shaft.
sprite = Sprite('Tobi')
quarky = Quarky()
import time
quarky.setorientation(2)
quarky.setirthreshold("IRL", 3000)
quarky.setirthreshold("IRR", 3000)
while True:
if quarky.getirstate("IRL"):
if quarky.getirstate("IRR"):
quarky.cleardisplay()
else:
pass
quarky.runrobot("LEFT", 100)
time.sleep(0.3)
quarky.stoprobot()
else:
pass
if quarky.getirstate("IRR"):
quarky.runrobot("RIGHT", 100)
time.sleep(0.3)
quarky.stoprobot()
else:
pass
quarky.showemotion("happy")
quarky.playsounduntildone("QuarkyIntro")
sprite = Sprite('Tobi')
quarky = Quarky()
cards = RecognitionCards()
cards.video("on", 0)
cards.enablebox()
cards.setthreshold(0.5)
quarky.setirthreshold("IRL", 3000)
quarky.setirthreshold("IRR", 3000)
quarky.initializelinefollower(35, 40, 10)
quarky.drawpattern("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
while True:
if not (quarky.getirstate(35) and quarky.getirstate(34)):
quarky.dolinefollowing()
else:
quarky.stoprobot()
cards.analysecamera()
if cards.isnumberdetected(1):
quarky.drawpattern("ccccccccccccccccccccccccccccccccccc")
break
quarky.runrobot("FORWARD", 40)
sprite = Sprite('Tobi')
quarky = Quarky()
import time
Angle = 0
while True:
for i in range(0, 18):
Angle += 10
moveservo("Servo 1", Angle)
time.sleep(0.01)
for i in range(0, 18):
Angle += -10
moveservo("Servo 1", Angle)
time.sleep(0.01)
sprite = Sprite('Tobi')
quarky = Quarky()
# User Defined Functions
def LED_Feedback():
if quarky.getirstate("IRL"):
quarky.setled(1, 1, [42, 255, 0], 100)
else:
pass
quarky.setled(1, 1, [255, 0, 0], 100)
if quarky.getirstate("IRR"):
quarky.setled(7, 1, [42, 255, 0], 100)
else:
pass
quarky.setled(7, 1, [255, 0, 0], 100)
quarky.setirthreshold("IRL", 3000)
quarky.setirthreshold("IRR", 3000)
while True:
LED_Feedback()
if (quarky.getirstate("IRL") and quarky.getirstate("IRR")):
quarky.stoprobot()
else:
pass
if quarky.getirstate("IRL"):
quarky.runmotor("R", "FORWARD", 40)
quarky.runmotor("L", "BACKWARD", 25)
else:
pass
if quarky.getirstate("IRR"):
quarky.runmotor("L", "FORWARD", 40)
quarky.runmotor("R", "BACKWARD", 25)
else:
pass
quarky.runrobot("FORWARD", 40)
sprite = Sprite('Tobi')
quarky = Quarky()
quarky.setirthreshold("IRL", 3000)
quarky.setirthreshold("IRR", 3000)
quarky.initializelinefollower(35, 40, 10)
while True:
if not (quarky.getirstate(35) and quarky.getirstate(34)):
quarky.dolinefollowing()
else:
quarky.stoprobot()
sprite = Sprite('Tobi')
quarky = Quarky()
quarky.runmotor("L", "FORWARD", 20)
quarky.runmotor("R", "FORWARD", 100)
The purpose of servo motor calibration is to align the angle of your servo motor properly.
The Servo motor will be connected to the Quarky Servo Connector. There are two servo ports on Quarky. Always make sure that brown wire is on your left side.
sprite = Sprite('Tobi')
quarky=Quarky()
quarky.moveservo("Servo 1", 90)
Put the Ultrasonic Assembly on the servo shaft.
sprite = Sprite('Tobi')
quarky = Quarky()
while True:
if sprite.iskeypressed("up arrow"):
quarky.runrobot("FORWARD", 50)
elif sprite.iskeypressed("down arrow"):
quarky.runrobot("BACKWARD", 50)
elif sprite.iskeypressed("left arrow"):
quarky.runrobot("LEFT", 50)
elif sprite.iskeypressed("right arrow"):
quarky.runrobot("RIGHT", 50)
else:
quarky.stoprobot()
sprite = Sprite('Tobi')
quarky = Quarky()
# imported modules
import time
# User Defined Functions
def Forward():
quarky.runmotor("L", "FORWARD", 100)
quarky.runmotor("R", "FORWARD", 100)
time.sleep(1)
quarky.stopmotor("L")
quarky.stopmotor("R")
def Backward():
quarky.runmotor("L", "BACKWARD", 100)
quarky.runmotor("R", "BACKWARD", 100)
time.sleep(1)
quarky.stopmotor("L")
quarky.stopmotor("R")
def Left():
quarky.runmotor("L", "BACKWARD", 100)
quarky.runmotor("R", "FORWARD", 100)
time.sleep(1)
quarky.stopmotor("L")
quarky.stopmotor("R")
def Right():
quarky.runmotor("L", "FORWARD", 100)
quarky.runmotor("R", "BACKWARD", 100)
time.sleep(1)
quarky.stopmotor("L")
quarky.stopmotor("R")
Forward()
Backward()
Left()
Right()
sprite = Sprite('Tobi')
quarky = Quarky()
# imported modules
import time
for i in range(0, 4):
quarky.runrobot("FORWARD", 100)
time.sleep(1)
quarky.stoprobot()
quarky.runrobot("LEFT", 100)
time.sleep(1.2)
quarky.stoprobot()