How the Speed Control Works

How cyber_bot_gripper_forward_object_with_fb360 Works

After importing the cyberbot feedback 360 modules, starting the feedback360.drive system with drive.connect(), and pointing toward the B button, the script goes into an endless while True: loop that monitors the micro:bit module’s B button.

# cyber_bot_gripper_forward_object_with_fb360

from cyberbot import *
from feedback360 import *

drive.connect()

display.show(Image.ARROW_E)

while True:

 

If the B button was pressed, the cyber:bot starts by rolling forward at 64 increments per second for ½ a second, then stops.  An increment is a 64th of a turn, so it means the wheel is turning one revolution per second, or 60 revolutions per minute (RPM). 

The routine is appended with a sleep(1000) call to make sure the cyber:bot has completely come to rest.  Once at full stop, the script uses bot(15).servo_angle(30) to close the Gripper.  It is followed by sleep(1500) to give the gripper time to close and lift, and also to make a slight pause between picking up the object and starting to move.  

   if button_b.was_pressed():
        
        display.clear()

        bot(15).servo_angle(150)    # lower & open gripper
        sleep(1500)

        drive.speed(64, 64)         # Forward 0.5 s
        sleep(500)
        drive.speed(0, 0)
        sleep(1000)

        bot(15).servo_angle(30)     # close gripper & lift
        sleep(1500)

 

After lifting the object, this part of the script makes the cyber:bot roll forward for 1.25 s.  Then, it lowers and opens the Gripper, setting down the object.

        drive.speed(64, 64)         # Forward 1.25 s
        sleep(1250)
        drive.speed(0, 0)
        sleep(1000)

        bot(15).servo_angle(150)    # Lower & open gripper
        sleep(1500)

 

Finally, it backs up for 0.5 s so that the object is no longer between the Gripper paddles.

        drive.speed(-64, -64)       # Backward 0.5 s
        sleep(500)
        drive.speed(0, 0)
       
        display.show(Image.ARROW_E)