树莓派笔记

栏目: 软件资讯 · 发布时间: 6年前

内容简介:最近入手了树莓派zero w来做数据地磁场数据采集,加上去年部署的网关,到现在共经手过4种树莓派。其中三种是树莓派3B的不同型号,包括Compute Module 3,定制版以及普通型号,而手上保留的只有三代普通型号和zero w,之前的设备都没留下照片,但这次在文章最后会贴上两台设备,还有和硬件工程师一起做的感应器(其实就是连接串口和GPIO)以及采购的升压模块。这篇文章就是做一个小结,梳理脑内知识,也为之后需要查看参数或者配置新设备时提供参考。这里贴一张从微雪电子抠过来的图表

前言

最近入手了树莓派zero w来做数据地磁场数据采集,加上去年部署的网关,到现在共经手过4种树莓派。其中三种是树莓派3B的不同型号,包括Compute Module 3,定制版以及普通型号,而手上保留的只有三代普通型号和zero w,之前的设备都没留下照片,但这次在文章最后会贴上两台设备,还有和硬件工程师一起做的感应器(其实就是连接串口和GPIO)以及采购的升压模块。

这篇文章就是做一个小结,梳理脑内知识,也为之后需要查看参数或者配置新设备时提供参考。

正文

设备参数

这里贴一张从微雪电子抠过来的图表

电源输入不变,通过Micro USB口输入的电源带保护,并且可以通过GPIO为外部设备供电,直接通过GPIO引脚供电时,不带电源保护,也无法再通过其他引脚为外部设备供电。

树莓派笔记

CPU频率与核心数不断增加,zero w还是使用老款CPU,ARMv6架构,也是Golang支持的最低ARM版本,频率提升到1GHz。

树莓派笔记

3B使用四核处理器,频率达到1.2GHz,处理器性能得到巨大提升,但还需要认清楚一个现实,树莓派的处理器性能非常弱,不适合计算密集和高负载的应用,适合作为控制器和数据采集中转。

树莓派笔记

功耗逐步递增,zero w在运行数据采集程序时,电流保持在100~110mA,发热量在接受范围,而3B的发热量有点过大。

树莓派笔记

引脚除一代B型外都是40个,保持着相同的构造,在使用地磁感应器时只用到GPIO和串口,而LoraWAN网关似乎使用SPI接口连接SX1301模块,都使用到板载的引脚供电。

树莓派笔记

CSI接口目前还没使用过,如果外接摄像头大概会用来做视频采集,功耗也会飙升。

截止目前有zero wh、3B、3B+内建Wi-Fi和蓝牙,不用再外置接收器,这次采集数据时也是通过将树莓派设置为热点,安卓平板与树莓派间使用HTTP协议通信来实时读取数据和下发指令。

略微麻烦的是这些内置蓝牙的型号使用 /dev/ttyAMA0 进行蓝牙读写,PL011 UART默认连接到蓝牙模块,而终端输出使用mini UART( /dev/ttyS0 ),官方的资料里提到PL011有独立的硬件控制,而mini UART的波特率与VC4 GPU上的VPU保持一致,性能相对较低,在高负载情况下还会影响到串口通信,具体可以查看下面的文章。

THE RASPBERRY PI UARTS

Configuring The GPIO Serial Port On Raspbian Jessie and Stretch Including Pi 3

在当前版本的系统中,没有直接使用这些设备路径,而是将 /dev/serial0/dev/serial1 链接到 /dev/ttyS0/dev/ttyAMA0 使用,终端输出设备默认使用 /dev/serial0。

为了使用性能稳定的PL0 UART,需要解除蓝牙对 /dev/ttyAMA0 的占用。

编辑 /boot/config.txt ,找 dtoverlay 标志

dtoverlay=pi3-disable-bt
//关闭,/dev/ttyAMA0与GPIO的14、15引脚恢复关联
dtoverlay=pi3-miniuart-bt
//保留,但通过/dev/ttyS0读写蓝牙设备
enable_uart=1 
//启用GPIO串口

要完全关闭蓝牙时,还需要关闭掉启用蓝牙设备的服务

sudo systemctl disable hciuart

最后还关闭终端输出,可以通过 raspi-configintefcae option 关闭通过串口使用 shell 的选项,也可以手动编辑 /boot/cmdline.txt ,删除掉 console = serial0 , 115200 ,否则终端输出会占用已经被链接到 seria0ttyAMA0

操作系统

树莓派搭载了伟大的 Linux 操作系统,这意味着所有在PC上的操作,都可能在树莓派上实现。

截止目前,官方Raspbian系统基于Debian stretch,提供两个镜像,分别是带桌面环境的Desktop版本及字符界面的Lite版本。树莓派的桌面系统还处在无法流畅使用阶段,只能留给有耐心的人,而同等配置的安卓手机可以拥有相对流畅的体验,原因还是ARM处理器性能不足,难以运行庞大臃肿的PC桌面环境,但字符界面相对轻巧很多,也是长期使用下来唯一的选择,其他linux桌面定制版、Windows 10 IoT Core等,能给人留下的体验基本只有卡、卡、卡、卡……

Raspbian Lite目前最新内核版本为 Linux raspberrypi 4.14.52+ #1123 Wed Jun 27 17:05:32 BST 2018 armv6l GNU/Linux ,在zero w上,原始镜像自带的内核一直难以编译出 go 可执行程序,升级内核后编译的速度才有了很大的提升。

编程

面对有限的存储、计算资源,C语言是执行效率最高的选择,资源占用低,性能高,开发难度大。如果要同时实现GPIO和串口读写,同时发起HTTP请求和提供REST接口,即使使用第三方库,工作量也不少,另外还有调试和开发的问题。

但C与 Python 结合后,牛人编写底层C代码,提供Python调用接口,而普通 程序员 编写功能代码,让这套总体性能比较弱的设备有了很多的玩法。使用Python封装C代码也带来一个问题,跨平台开发的环境配置变得比较困难,除非第三方库友好地在底层用C实现了跨平台接口,不然总会遇到编译出错的问题。最开始尝试使用RPi.GPIO调用GPIO,它的底层使用epoll监听引脚电平变化,依赖的C头文件只在Linux上存在,导致不断地编译失败。

切换到熟悉的Golang后,由于它在语言层级封装了底层系统调用,可以很方便地进行跨平台适配开发,最后干脆在树莓派上搭建好了Golang开发环境,在macOS上编写测试过后,将源文件拷贝到树莓派上编译运行,一些小改动也可以直接在树莓派上操作。

总结

这里就只放图了

树莓派 zero wh,带排针的zero w,自己加了散热片和16G内存卡,总计95+3+10+33=141,含设备,散热片,邮费及内存卡

树莓派笔记

树莓派 3B,卸下了原来的LoraWAN开发板,自己加了内存卡

树莓派笔记

传感器,这次通过串口和引脚直连,用了很粗的电线作为延长线

树莓派笔记

升压模块,3.7V转5V,支持充电和USB口输出,用来连接18650并联电池组

树莓派笔记


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

机器学习实践指南

机器学习实践指南

麦好 / 机械工业出版社 / 2014-4-1 / 69.00

《机器学习实践指南:案例应用解析》是机器学习及数据分析领域不可多得的一本著作,也是为数不多的既有大量实践应用案例又包含算法理论剖析的著作,作者针对机器学习算法既抽象复杂又涉及多门数学学科的特点,力求理论联系实际,始终以算法应用为主线,由浅入深以全新的角度诠释机器学习。 全书分为准备篇、基础篇、统计分析实战篇和机器学习实战篇。准备篇介绍了机器学习的发展及应用前景以及常用科学计算平台,主要包括统......一起来看看 《机器学习实践指南》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试