Distance Control Script and Tests

Distance Control Script

This script moves the cyber:bot in 3.25 mm increments.  First, it rolls forward 32 increments, then picks up an object.  Next, it rolls forward 96 increments and sets down the object.  Finally, it backs up 32 increments.  

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

cyber_bot_gripper_forward_object_distance_with_fb360.hex

The script was created by entering the text below into the python.microbit.org editor.  The cyberbot.py and feedback360.py 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 before saving it as a .hex file as shown in Save & Edit Scripts.

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

Test script: cyber_bot_gripper_forward_object_distance_with_fb360

# cyber_bot_gripper_forward_object_distance_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.goto(32, 32)          # Forward 0.5 wheel turn

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

        drive.goto(96, 96)          # Forward 1.5 wheel turns

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

        drive.goto(-32, -32)        # Backward 0.5 wheel turns

        display.show(Image.ARROW_E)

 

Distance Control Tests

Speed matching isn’t just something the Feedback 360° servos do during speed maneuvers.  These servos also work to match each other during distance maneuvers.  So again, the tendency to curve strongly to the left or right is only a symptom of non-feedback continuous rotation servos.  Also, again, that’s also not 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, bends in the chassis, and slight slippages accumulating over distances.

  • Set the cyber:bot board's PWR switch to 2.
  • Press/release the micro:bit module’s B button and verify that:
    • The cyber:bot rolls forward 0.5 of a wheel turn and then stops.
    • The Gripper closes and lifts.
    • The cyber:bot rolls forward another 1.5 wheel turns and then stops.
    • The Gripper lowers and opens.
    • The cyber:bot rolls backward a half a wheel turn.
  • When you are done, set the cyber:bot board’s PWR switch to 0 to conserve battery power.