Getting Started with BPI-QCar
Contents
About BPI-QCar
Banana PI BPI Q-Car,which is a robot focusing on maker education.Compatible with Web:Bit(BPI: Bit) and Micro:Bit development boards.Small car body, highly integrated functions, plug and play, can quickly children's attention, complete the quick start of graphics programming, cultivate independent thinking and logical thinking ability
Key Features
- support Micro:bit, PBI:bit(Web:bit) and BPI-AI(WEB:AI) boards
- support Makecode graphical programming(with micro:bit),support Webduino graphical programming(with BPI:bit),and it also support MicroPython arduino(Micro:bit/BPI:bit)
- Compact body, strong integrity
- N20 Miniature reducer
- Infrared emission, infrared reception, line patrol, speed measurement, atmosphere lamp, I2C interface (support 3.3V and 5V), ultrasonic interface, buzzer, steering gear interface, needle row expansion port, expansion screw hole, etc...Fully functional, strong expansibility
- Easy to use it.
BPI-QCar with BPI:Bit for Arduino IDE
Arduino是一款便捷灵活、方便上手的开源电子原型平台。在社区的努力下,BPI:Bit可以通过Arduino环境编程,具体环境搭建教程可以参考BPI:bit_for_Arduino
电机控制
学习目标:掌握Q-Car的电机控制基本方法
程序效果展示:小车前进1秒,停100ms,后退1秒,停100ms,左转1秒,停100ms,右转1秒,停100ms。
Arduino程序链接:https://github.com/BPI-STEAM/Q-Car/tree/master/SoftWare/Web_Bit_Arduino/Motor_Demo
氛围灯控制
学习目标:了解Q-Car的RGB氛围灯的基本使用方法
程序效果展示:底部RGB氛围灯红、绿、蓝三色混合渐变显示出多种颜色,呈现出彩色呼吸效果。
Arduino程序链接:https://github.com/BPI-STEAM/Q-Car/tree/master/SoftWare/Web_Bit_Arduino/Pixel_Demo
超声波传感器控制
学习目标:掌握Q-Car的超声波传感器的使用方法
程序效果展示:串口显示超声波测得的距离数据。
Arduino程序链接:https://github.com/BPI-STEAM/Q-Car/tree/master/SoftWare/Web_Bit_Arduino/Ultrasonic_Demo
蜂鸣器的使用
学习目标:掌握Q-Car的蜂鸣器的使用方法
程序效果展示:蜂鸣器播放“小星星音乐”
Arduino程序链接:https://github.com/BPI-STEAM/Q-Car/tree/master/SoftWare/Web_Bit_Arduino/Buzzer_Demo
红外遥控
学习目标:掌握Q-Car的红外遥控
程序效果展示:红外遥控Q-Car前进后退以及转弯
Arduino程序链接:https://github.com/BPI-STEAM/Q-Car/tree/master/SoftWare/Web_Bit_Arduino/IR_Control_Demo
超声波避障
程序效果展示:开机小车前进,超声波检测前方距离,如果距离小于8cm,小车左右查看两边障碍物,选择距离更远的方向拐弯,避开障碍物。
配件准备:M2铜柱×2,M2螺丝×2,SR04超声波模块×1,超声波支架×1,舵机支架×1(支架下载地址),杜邦线若干,插入前方的SR04接口。
Arduino程序链接:https://github.com/BPI-STEAM/Q-Car/tree/master/SoftWare/Web_Bit_Arduino/Avoidance_Demo
巡线行驶
Q-Car 配合 BPI:Bit 使用MicroPython环境编程
Q-Car 配合 Micro:Bit 使用MakeCode环境编程
MakeCode编程点亮Micro:Bit
学习目标:熟悉基础的MakeCode的应用并在Micro:Bit的5*5LED矩阵上显示一些图形或文字。
打开Micro:Bit的MakeCode编程环境网页端:https://makecode.microbit.org/
新建一个项目,参照下图的例程连接MakeCode积木,例如其中第一个积木块“show leds”可以在“Basic”选项栏目中找到,此积木可以自行编辑想要输出的图形
右键积木可对积木进行一些操作,如添加注释,删除复制积木,以及查阅积木对应的说明文档,这个对于初次上手的人来说能提供很大的帮助。
MakeCode编程环境有自带模拟程序运行效果的仿真器可以实时查看效果,通常显示在左上方
MakeCode编程环境也支持从外部导入项目文件,如经过MakeCode编译生成的.hex文件
例程项目文件:https://github.com/Wind-stormger/Makecode/blob/master/microbit-display-graphics.hex
注意:正确的.hex文件导入方式是将上文链接中的.hex文件下载到本地然后将其导入到MakeCode中,而不是直接将此链接导入,外部项目链接导入MakeCode的方式与此处不同
项目文件下载到本地后可导入MakeCode中查看和再编辑,也可直接通过USB烧录到Micro:Bit中直接运行
按钮控制Micro:Bit-基础
学习目标:使用Micro:Bit上的AB两个按钮控制LED矩阵所要输出的图形
在章节“使用MakeCode编程点亮Micro:Bit”的基础上,在MakeCode中“input”选项栏目中找到应用按钮控制的积木“on button A pressed”来进行编程
例程如下图,实现按一下A按钮显示英文字符“A”,按一下B按钮显示英文字符“B”,同时按下AB按钮后显示一个形似香蕉的图案
例程项目文件:https://github.com/Wind-stormger/Makecode/blob/master/microbit-Using_the_button_1.hex
项目文件下载到本地后可导入MakeCode中查看和再编辑,也可直接通过USB烧录到Micro:Bit中直接运行
按钮控制Micro:Bit-进阶
学习目标:用MakeCode编程实现一个计数并显示的按钮控制程序
在前一章节的基础上,先在MakeCode中“Variables”选项栏目中新建一个变量名为“A_was_pressed_times”的变量,此时将在“Variables”选项栏目产生多个关于变量的积木
将“Math”选项栏目中的加法积木与“Variables”选项栏目中的积木镶嵌组合,参照下图例程
此时,我们就实现了在MakeCode编程并做出了一个利用加法计数的程序,按一次按钮A计数加1同时将计数值输出到LED矩阵中,按一次按钮B计数归0并清除LED矩阵的显示
例程项目文件:https://github.com/Wind-stormger/Makecode/blob/master/microbit-Using_the_button_2.hex
项目文件下载到本地后可导入MakeCode中查看和再编辑,也可直接通过USB烧录到Micro:Bit中直接运行
车轮测速
学习目标:用MakeCode编程实现读取Q-Car上用于车轮测速的红外对管的高低电平信号并用计数法算出车轮转速
例程如下图,将程序烧录进Micro:Bit,将Micro:Bit与Q-Car连接,此时旋转Q-Car左右轮,可以从USB串口中读取到左右轮转速
例程项目文件:https://github.com/Wind-stormger/Makecode/blob/master/microbit-Q-Car_velocity_measurement_module.hex
项目文件下载到本地后可导入MakeCode中查看和再编辑,也可直接通过USB烧录到Micro:Bit中直接运行
电机控制
学习目标:用MakeCode编程实现Q-Car左右电机正反转控制
例程如下图,将程序烧录进Micro:Bit,将Micro:Bit与Q-Car连接,左右电机将同时正转2s,同时反转2s,右电机单独正转2s,左电机单独正转2s
例程项目文件:https://github.com/Wind-stormger/Makecode/blob/master/microbit-Q-Car_Motor_control_module.hex
项目文件下载到本地后可导入MakeCode中查看和再编辑,也可直接通过USB烧录到Micro:Bit中直接运行
氛围灯控制
学习目标:用MakeCode编程实现对Q-Car上10颗WS2812B彩色氛围灯的控制
例程如下图,将程序烧录进Micro:Bit,将Micro:Bit与Q-Car连接,Q-Car上的10颗WS2812B彩灯将同时以1800ms一周期循环彩虹光效
例程项目文件:https://github.com/Wind-stormger/Makecode/blob/master/microbit-Q-Car_Pixel.hex
项目文件下载到本地后可导入MakeCode中查看和再编辑,也可直接通过USB烧录到Micro:Bit中直接运行
超声波传感器控制
学习目标:用MakeCode编程实现对Q-Car上HC-SR04超声波扩展模块的控制
例程如下图,将程序烧录进Micro:Bit,将Micro:Bit与Q-Car连接,将HC-SR04超声波扩展模块与Q-Car连接,将5V电源与Q-Car连接
可以从Micro:Bit的USB串口读取到超声波传感器检测到的距离以及Micro:Bit上的温度传感器数据,例程实现了对超声波传感器的温度校准
Distance=85.815|Temperature=21
例程项目文件:https://github.com/Wind-stormger/Makecode/blob/master/microbit-Q-car_Ultrasonic_ranging.hex
项目文件下载到本地后可导入MakeCode中查看和再编辑,也可直接通过USB烧录到Micro:Bit中直接运行
蜂鸣器的使用
学习目标:用MakeCode编程编写一段曲子并在Q-Car的蜂鸣器上播放
例程如下图,将程序烧录进Micro:Bit,将Micro:Bit与Q-Car连接,Q-Car上的蜂鸣器将循环两次播放曲子
例程项目文件:https://github.com/Wind-stormger/Makecode/blob/master/microbit-Q-car_Music_Arrangement.hex
项目文件下载到本地后可导入MakeCode中查看和再编辑,也可直接通过USB烧录到Micro:Bit中直接运行