Speed Control Script and Tests

Test Script

This script rolls forward for 0.5 seconds, picks up an object, rolls forward for another 1.25 seconds, sets down the object, backs up for 0.5 seconds, and then stops.

  • Right-click cyber_bot_gripper_forward_object_with_fb360.hex and select Save link as.

cyber_bot_gripper_forward_object_with_fb360.hex

The script was created by entering the text below into the python.microbit.org/v/2 editor.  The cyberbot and feedback360 modules were also added to the Project Files as shown in Add modules to your micro:bit.  The Script Name was set to cyber_bot_gripper_forward_object_with_fb360 before saving it as a .hex file as shown in How to Save and Reopen a Script in Python Editor v2.

  • Plug the battery pack’s barrel plug into the cyber:bot board’s barrel jack.
  • Set the cyber:bot board’s PWR switch to 1.
  • Click Connect, then Flash.
  • Set the PWR switch to 0.
  • Disconnect the USB from the cyber:bot robot’s micro:bit module.

 

Test script: cyber_bot_gripper_forward_object_with_fb360

# cyber_bot_gripper_forward_object_with_fb360

from cyberbot import *
from feedback360 import *

drive.connect()

display.show(Image.ARROW_E)

while True:
    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)

        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)

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

 

Tests

Feedback 360° servos correct to match each other’s speed, so there is no need to adjust for speed differences that would cause significant curving in the navigation.  That is only a symptom of non-feedback continuous rotation servos.  That isn't to say that there will be no curving at all, but any curving you observe is going to more likely be a result of things like slop in the angle of the servo’s output spline, subtle bends in the chassis, and slight slippages accumulating over distances.

  • Set the PWR switch to 2.
  • Press/release the micro:bit module’s B button and verify that:
    • The cyber:bot rolls forward half a second and then stops.
    • The Gripper closes and lifts.
    • The cyber:bot rolls forward for another 1.25 seconds and then stops.
    • The Gripper sets down and releases.
    • The cyber:bot rolls backward for a half a second, then stops again.
  • When you are done, set the cyber:bot board’s PWR switch to 0 to conserve battery power.