Balls Tracking with TPBot

Balls Tracking with TPBot

Purpose

Use TPBot to build a ball-tracking car.

Materials required

1 X TPBot

Balls Tracking with TPBot

1 X ELECFREAKS Smart AI Lens kit

Balls Tracking with TPBot

Hardware connections

Connect the AI Lens to the IIC port on TPBot.

Balls Tracking with TPBot

Software

MicroSoft MakeCode

 

MakeCode Programming

Click "Advanced" to see more choices in the MakeCode drawer.

Balls Tracking with TPBot

We need to add a package for programming. Click "Extensions" in the bottom of the drawer and seach with "tpbot" in the dialogue box to download it.

Balls Tracking with TPBot

We need to add a package for programming the AI Lens kit. Click "Extensions" in the bottom of the drawer and seach with `https://github.com/elecfreaks/pxt-PlanetX-AI` in the dialogue box to download it.

Balls Tracking with TPBot

Sample Code

Initialize the AI lens kit in the On start brick and switch its function to balls recognition.

Balls Tracking with TPBot

In forever brick, get an image from the AI lens and adjust TPBot's movement by the balls recognized in the lens.

Balls Tracking with TPBot

Complete code:

Balls Tracking with TPBot

Link

Link:https://makecode.microbit.org/_TY634U7x5RaH

You may also download it directly here:

Python Programming

Add TPBot extension: https://www.elecfreaks.com/learn-cn/microbitKit/TPbot_tianpeng/TPbot-python.html

Add AI Lens extension https://www.elecfreaks.com/learn-cn/microbitplanetX/ai/Plant-X-EF05035-python.html

Code

from microbit import *
from AILens import *
from TPBot import *

tp = TPBOT()
ai = AILENS()
# Set the function of AI Lens in balls recognition
ai.switch_function(Ball)

while True:
    # Get an image
    ai.get_image()
    buff = ai.get_ball_data()
    # "buff[1]" means the Y coordinates data of the ball detected in AI lens 
    if (buff[1] > 80):
        # "buff[0]" means the X coordinates data of the ball detected in AI lens
        if (buff[0]< 80):
            tp.set_motors_speed(-30,0)  
        elif (buff[0] > 144):
            tp.set_motors_speed(0,-30)
        else:
            tp.set_motors_speed(25,25)
    else:
        tp.set_motors_speed(0,0)

Result

The TPBot moves with the ball and it stops while walking in the right front of the ball.

FAQ

Q: TPBot doesn't work with the sample code.

A: It is probably due to the lack of battery power, please try adding the speed of the TPBot or replacing with new batteries.

Q: The AI Lens is not working, and it does not go to the function page with the sample code.

A: Please try replacing with new batteries.