Getting Started with BPI-QCar

From Banana Pi Wiki
Revision as of 00:15, 24 February 2021 by Sinovoip (talk | contribs) (Q-Car 配合BPI:Bit 使用Arduino环境编程)
Jump to: navigation, search


About BPI-QCar

BPI Q-Car with micro:bit
BPI Q-Car with BPI-Bit
BPI-QCar with BPI-AI board

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。

Q-Car Motor Test.gif

Arduino程序链接:https://github.com/BPI-STEAM/Q-Car/tree/master/SoftWare/Web_Bit_Arduino/Motor_Demo

氛围灯控制

学习目标:了解Q-Car的RGB氛围灯的基本使用方法

程序效果展示:底部RGB氛围灯红、绿、蓝三色混合渐变显示出多种颜色,呈现出彩色呼吸效果。

Q-Car Pixel Test.gif

Arduino程序链接:https://github.com/BPI-STEAM/Q-Car/tree/master/SoftWare/Web_Bit_Arduino/Pixel_Demo

超声波传感器控制

学习目标:掌握Q-Car的超声波传感器的使用方法

程序效果展示:串口显示超声波测得的距离数据。

Q-Car Ultrasonic Test 1.gif

Q-Car Ultrasonic Test 2.png

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前进后退以及转弯

Q-Car IR Control.gif

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接口。

Q-Car Avoidance Demo.gif

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”选项栏目中找到,此积木可以自行编辑想要输出的图形

Microbit-screenshot (display graphics).png

右键积木可对积木进行一些操作,如添加注释,删除复制积木,以及查阅积木对应的说明文档,这个对于初次上手的人来说能提供很大的帮助。

MakeCode编程环境有自带模拟程序运行效果的仿真器可以实时查看效果,通常显示在左上方

MakeCode编程环境也支持从外部导入项目文件,如经过MakeCode编译生成的.hex文件

例程项目文件:https://github.com/Wind-stormger/Makecode/blob/master/microbit-display-graphics.hex

注意:正确的.hex文件导入方式是将上文链接中的.hex文件下载到本地然后将其导入到MakeCode中,而不是直接将此链接导入,外部项目链接导入MakeCode的方式与此处不同

Makecode(import file).png

项目文件下载到本地后可导入MakeCode中查看和再编辑,也可直接通过USB烧录到Micro:Bit中直接运行

按钮控制Micro:Bit-基础

学习目标:使用Micro:Bit上的AB两个按钮控制LED矩阵所要输出的图形

在章节“使用MakeCode编程点亮Micro:Bit”的基础上,在MakeCode中“input”选项栏目中找到应用按钮控制的积木“on button A pressed”来进行编程

例程如下图,实现按一下A按钮显示英文字符“A”,按一下B按钮显示英文字符“B”,同时按下AB按钮后显示一个形似香蕉的图案

Using the button.png

例程项目文件: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”选项栏目中的积木镶嵌组合,参照下图例程

Using the button 2.png

此时,我们就实现了在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串口中读取到左右轮转速

Q-Car velocity measurement module.png

Q-Car velocity measurement module Serial port.png

例程项目文件: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

Q-Car Motor control module.png

例程项目文件: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一周期循环彩虹光效

Q-Car Pixel.png

例程项目文件: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连接

Q-car Ultrasonic ranging.png

可以从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上的蜂鸣器将循环两次播放曲子

Q-car Music Arrangement.png

例程项目文件:https://github.com/Wind-stormger/Makecode/blob/master/microbit-Q-car_Music_Arrangement.hex

项目文件下载到本地后可导入MakeCode中查看和再编辑,也可直接通过USB烧录到Micro:Bit中直接运行