microbit使用蓝牙控制树莓派摄像头拍照

嵌入式技术

1368人已加入

描述

 1、项目概览

     本文旨在实现这样一个功能:用MicroBit配合DFRobot出品的gamePad拓展板通过蓝牙控制树莓派上的摄像头进行拍摄,并可以通过gamePad方向键控制云台。主要涉及的知识点包括:

python控制摄像头及串口通讯

蓝牙串口通讯实现

云台控制

microbit编程实践

1.1 硬件需求

树莓派3B

树莓派摄像头

简易云台

microbit

gamePad for microbit

1.2 软件环境

picamera 用于控制摄像头

bluezero用于蓝牙通讯

bitty blue作为mb固件

此外还可以参考《Sending 'commands' from a micro:bit over Bluetooth》

2、项目实现——借力Micro:bit之蓝牙版RPi自拍照相机

首先我们通过蓝牙使microbit和RPi可以进行通讯。需要蓝牙串口通讯,以Python为例。其实相关已经有很多了,参考http://microbit.org/zh-CN/guide/raspberry-pi/,核心是mb和RPi通讯。以上都是通过有线串口通讯,我们想做的是基于BLE,https://ukbaz.github.io/howto/ubit_workshop.html。

2.1 设置树莓派端

我们需要在树莓派上安装Python3和bluezero包,以Raspbian为例,运行命令:

sudoapt install python3 python3-pipsudopip3 install bluezero

一执行,出错不少。

报SSLError,ERROR: The certificate of ‘files.pythonhosted.org’ is not trusted,

执行以下命令解决:

apt-get install python3-dbus gipip3 --trusted-host files.pythonhosted.org install setuptools bluezero

2.2 设置micro:bit

我们下载Bitty Blue Hex固件并烧录到microbit中,记得选择no pairing required固件。

microbit

烧录后首次运行microbit需要翻转一下直到microbit显示一个可随倾斜变化的圆点,之后就可以连接树莓派了。

2.3 使用树莓派连接micro:bit

受此链接树莓派和mb的时候需要确保mb在RPi的蓝牙已知设备列表里,这里借助bluetootlctl工具。这里RPi和mb的蓝牙地址以xx:xx:xx:xx:xx:xx 和 yy:yy:yy:yy:yy:yy 为例。

使用bluetoothctl

在树莓派上终端里输入bluetoothctl进入[bluetoothctl]#模式。此模式下输入help可以查看支持的命令。输入show可以查看RPi的蓝牙是否启用。

microbit

Powered为yes时表示启用状态,否则输入power on以启用。另外注意几下

扫描micro:bit

尽量把mb放的近一点,如果附近设备比较多的时候,扫到mb就停下。

scan onscan off

microbit

连接micro:bit

连接蓝牙需要指定蓝牙设备地址,然后选择connect。因为我们用的是no pairing required版,所以不需要进行密钥配对。连接上之后mb的LED矩阵会显示一个"C"字符。如图所示:

microbit

输入devices命令即可看到已连接的设备。输入exit退出bluetoothctl工具。

3、使用Python与mb进行蓝牙交互

从RPi上向mb发送消息

microbit

响应mb上的按钮动作

microbit


 

4、mb控制python拍照并实时预览

microbit

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分