文章目录

  • 前言
  • 一、串口传输
    • 1.引脚连接
    • 2.示例代码
  • 二、板载蓝牙
    • 1.前置要求
    • 2.代码编写
  • 总结

前言

使用树莓派进行图像处理的时候,一般需要通过串口将数据传输给主控,但由于靠杜邦线连接容易出现断连,故有时可通过板载蓝牙的方式传输信息。由于树莓派的mini串口性能差,故一般只在蓝牙传输和串口传输之间选其一,将选择的方式配置到AMA0即可。


一、串口传输

树莓派配置串口的教程网上很多,可以参考链接

这里主要存一下引脚和示例代码

1.引脚连接


右上角的TXD和RXD就是我们用来串口通信的两个引脚

2.示例代码

import serial
import struct
from time import sleep
A = 1
B = 2def serialConfig(port,baud):ser = serial.Serial(port,baudrate=baud,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS,timeout=1)      # Open port with baud rateser.flushInput()return serif __name__ == "__main__":ser = serialConfig("/dev/ttyAMA0",9600)if ser.isOpen() is True:try:while True:pack = struct.pack('BBBB', 0xaa, A, B, 0x55)ser.write(pack)               # transmit data seriallyexcept KeyboardInterrupt:ser.close()else:print("cannot open serial")

二、板载蓝牙

1.前置要求

在使用蓝牙之前先要配置安装好相应的包

sudo apt-get install libbluetooth-dev
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -U pybluez

接着将HC05模块用USB-TTL模块连接电脑,使其处于配对模式,在树莓派端蓝牙处 Add New Device ,并记录下蓝牙地址

可以看到蓝牙的地址是98:da:20:02:90:60
当然地址也可以用AT指令集获取,这个之后写代码会用到

然后点击pair,看到以下提示说明配对成功

2.代码编写

在树莓派中创建文件bt_test.py,写入以下代码

import bluetooth
bt_addr = "98:da:20:02:90:60"
port = 1
def BlueToothInit():global socksock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)sock.connect((bt_addr,port)
BlueToothInit()
sock.send('1')
sock.send('2')
sock.send('3')
sock.close()

执行文件

python3 bt_test.py

可以看到HC05端接收到的数据

将蓝牙移植到opencv找圆程序中测试

#import numpy as np
import cv2 as cv
# -*- coding:utf-8 -*-
import time
import bluetooth
bt_addr = "98:da:20:02:90:60"
port = 1
sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((bt_addr,port))# 串口配置
if __name__ == "__main__":cap = cv.VideoCapture(0)try:while True:ret, frame = cap.read()gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)circles = cv.HoughCircles(gray, cv.HOUGH_GRADIENT, 2, 100, param1=100, param2=200, minRadius=10, maxRadius=500)if circles is not None:  # 如果识别出圆for circle in circles[0]:#  获取圆的坐标与半径x = int(circle[0])y = int(circle[1])r = int(circle[2])cv.circle(frame, (x, y), r, (0, 0, 255), 3)  # 标记圆cv.circle(frame, (x, y), 3, (255, 255, 0), -1)  # 标记圆心text = 'x:  ' + str(x) + ' y:  ' + str(y)#cv2.putText(frame, text, (10, 30), font, 1, (0, 255, 0), 2)  # 显示圆心位置#print(text)sock.send(text)else:#cv2.putText(frame, 'x: None y: None', (10, 30), font, 1, (0, 255, 0), 2)sock.send("none")cv.imshow('frame', gray)k = cv.waitKey(5) & 0xFFif k == 27:breakexcept KeyboardInterrupt:sock.close()cap.release()cv.destroyAllWindows()

总结

以上就是树莓派配置蓝牙的具体步骤

树莓派4B串口及蓝牙连接HC-05相关推荐

  1. 入坑树莓派(2)——树莓派4B与手机蓝牙通信

    入坑树莓派(2)--树莓派4B与手机蓝牙通信 1.引言 2.步骤 2.1.蓝牙配对 2.2.蓝牙连接准备 2.3.蓝牙连接 3.参考网址 1.引言 在入坑树莓派(1)中已经搞掂了可视化问题.现在继续开 ...

  2. 树莓派 4b 配置 USB 网络连接

    树莓派 4b 配置 USB 网络连接 树莓派镜像: 2022-09-22-raspios-bullseye-arm64.img 电脑: windows 10 1 打开树莓派的 USB 网络 在 /bo ...

  3. 树莓派开发笔记(十七):树莓派4B+上Qt多用户连接操作Mysql数据库同步(单条数据悲观锁)

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/125188715 红胖子(红模仿)的博文大全:开发技术集 ...

  4. 树莓派4B 不同无线网卡自动连接不同wifi

    树莓派4B中只有一张无线网卡,在日常使用中,有时可能会出现需要两张无线网卡分别连接不同WIFI的情况.如果想让树莓派开机后两张无线网卡能自动连接上对应的WIFI,不产生连接的错位,首先,需要购买一张无 ...

  5. 树莓派4B+wifi远程无线连接

    在树莓派无线连接前,先设置一个静态IP.一来可以防范DHCP自动分配的ip来回变动,导致远程SSH时常无法连接:二来还可以提高树莓派的网络连接速率. 1.一般先使用HDMI连接树莓派,若没有额外的屏幕 ...

  6. 树莓派4B从开箱到连接电脑(超级小白)

    1.树莓派系统烧录 官网链接:https://www.raspberrypi.com/ (1)点击"Software" (2)下拉,根据系统选择,笔者的是windows,所以 (3 ...

  7. 树莓派4b 串口通信实现自发自收

    1.树莓派串口映射设置 运行以下命令: ls /dev -al 出现串口映射的情况,但是此时是在默认状态下,serial0(就是GPIO14,15)是映射到ttyS0的,serial1(跟板载蓝牙相连 ...

  8. 树莓派4B debian嵌入式远程连接远程控制xrdp(Ubuntu为例)

    为什么要实现远程连接 远程连接可以在远端进行软件调试,提高开发效率.不用一直连接HDMI线.小车调试带着屏幕或者拖着线,不方便更改代码和查看输出. 实现远程控制: 1.VNC连接,常用的VNC连接可以 ...

  9. 树莓派学习3-树莓派蓝牙连接手机通信测试(蓝牙连接手机时断时序问题解决)

    通过上一篇文章学习,我们可以将树莓派的蓝牙连接到蓝牙音箱,进行语音播放.那么对于蓝牙配置和蓝牙控制软件更新,在此不再赘述. 1.树莓派连接手机蓝牙时断时续问题 原以为手机蓝牙和音箱蓝牙直接可以直接连接 ...

最新文章

  1. 数据库基础 (六)单表查询进阶
  2. 用 WEKA 进行数据挖掘,第 2 部分: 分类和群集
  3. 拖放(Drag和Drop)--html5
  4. 数据中台应用实战50篇(一)-企业级数据中台的建设方法架构和技术栈
  5. 未来的数据中心(三)
  6. 解决:安装SQl 2008为SQL Server代理服务提供的凭据无效
  7. oracle isextis,OGG-01052 No recovery is required for target file /ogg/tail_ext/et000000, at...
  8. 2019文献汇总 | 单细胞与病毒感染
  9. 接到骗子短信后........
  10. java 代码锁_Java 锁的知识总结及实例代码
  11. linux下scrapy安装教程,linux centos7安装scrapy
  12. 红帽linux5.6,Redhat Enterpris linux 5.6 安装
  13. 百度DuerOS负责人景鲲晋升副总裁,继续向李彦宏汇报
  14. YII框架截取字符串长度
  15. mysql怎么查找删除重复数据_Mysql中如何查找并删除重复数据
  16. 20140419-MCSA 2012 Server R2 Command
  17. RuntimeError: no valid convolution algorithms available in CuDNN
  18. JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千!
  19. Kamiya丨Kamiya艾美捷大鼠微量白蛋白酶联免疫吸附试验说明书
  20. 系统集成项目管理工程师对入户的帮助有多大?

热门文章

  1. arduino彩灯计时器电路_DIY制作可编程 LED 彩灯环V3 (Arduino 可兼容)
  2. 最简易的网络框架封装(新手可看)
  3. 织梦dedecms百度PHP主动推送设置方法
  4. Toefl 听力 Psychology
  5. 2019年一级建造师考试备考攻略,请收好!
  6. 2016 Google I/O新知介绍之 Daydream VR platform
  7. 2020牛客国庆集训派对day1 A.ABB
  8. linux内核(二)内核移植(DM365-DM368开发攻略——linux-2.6.32的移植)
  9. 安全测试工具DoS ToolKit
  10. 浏览器自动回显账户密码问题