Purpose
Use TPBot to build a ball-tracking car.
Materials required
1 X TPBot
1 X ELECFREAKS Smart AI Lens kit
Hardware connections
Connect the AI Lens to the IIC port on TPBot.
Software
MakeCode Programming
Click “Advanced” to see more choices in the MakeCode drawer.
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.
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.
Sample Code
Initialize the AI lens kit in the On start brick and switch its function to balls recognition.
In forever brick, get an image from the AI lens and adjust TPBot’s movement by the balls recognized in the lens.
Complete code:
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.