一文教你如何在Linux上使用树莓派

电子说

1.2w人已加入

描述

小编今天介绍的项目是通过使用CY8CKIT-048 PSoC模拟协处理器先锋套件和树莓派,进行全天24小时不间断的环境数据监控。 

本文转自Hackster.io网站(点击文章末尾的“阅读原文”访问该网站相关页面),由小编编译,欢迎拍砖。

项目简介


通过使用CY8CKIT-048 PSoC模拟协处理器先锋套件和树莓派(Raspberry Pi),进行24小时不间断的环境数据监控。 

准备材料

硬件:      

  • 赛普拉斯PSoC模拟协处理器先锋套件 ×1

    (https://www.hackster.io/cypress/products/psoc-analog-coprocessor-pioneer-kit)

  • 树莓派2代B型或其他运行Linux的设备 ×1

    (https://www.hackster.io/raspberry-pi/products/raspberry-pi-2-model-b)

  • USB-A至微型USB线缆

构建系统


赛普拉斯CY8CKIT-048 PSoC®模拟协处理器先锋套件是个很有趣的开发板,可与PSoC Creator 集成开发环境(IDE)轻松配合使用。

其中包括用于与主板之间通信的工具——Bridge Control Panel

树莓派

Bridge Control Panel允许用户使用I²C协议与相关应用设备之间双向接收/发送数据。数据可用于绘制数据图表或存储到文件。

该工具的“问题”在于,其仅限在Windows系统中使用,而不适用于运行Linux系统的设备,例如Raspberry Pi

下面,我们创建二十四小时环境数据监控的应用实例。

试想,如果可以用兼容的Linux / Raspberry Pi的东西来替代Bridge Control Panel 会有怎样的效果?


首先,来看看I²C通信协议是如何通过USB连接工作的。

主板上有两个微控制器:

  • 主芯片CY8C4A45LQI,用来运行我们的应用程序,譬如说,收集一些传感器数据,并传输到I²C接口上。

  • CY8C586LTI作为辅助芯片,通过一个USB接口连接到I²C上获取相关数据,以实现I2C-USB bridge。

这块主板的USB HID接口具有一些专有协议。

幸好,该协议与Cypress 3240 USB to I2C bridge基本相同,Kevin Kirkup已经创建了一个相关的库。

https://github.com/kevinkirkup/cy3240-i2c-bridge

把项目从已经淘汰的libhid迁移到libhidapi,并利用Wireshark检测来自Bridge Control Panel的USB命令:

树莓派

将上述设置进行更新,使其适用于CY8CKIT-048PSoC®模拟协处理器先锋套件

主要的改变如下:

  • 调整USB产品供应商ID

  • 调整协议,使其适用于CY8CKIT-048PSoC®模拟协处理器先锋套件

  • 把项目从已经淘汰的libhid迁移到libhidapi

  • 确保代码可兼容64位系统

欲查询代码,可访问我的GitHub账户

https://github.com/bluetiger9/cypress-usb-i2c-bridge.git dd

使用方法


在Raspberry Pi / Linux设备上安装电路板的操作步骤:

需要为CY8CKIT-048PSoC®模拟协处理器先锋套件的开发板上添加一些udev规则。

这样,即使非根(non-root)用户也拥有访问的权限。

为此,我们创建出49-hid-development.rules文件:

树莓派

内容如下:

树莓派

重新启动,使新的设置生效:

树莓派

构建项目之前,首先要安装所需的依赖项:

树莓派

然后,从我的GitHub资源库克隆项目:

树莓派

项目配置:

树莓派

现在这个代码已经准备好编译,运行“make” 程序了。

但是,还需要再等一下。src目录里有一个main.c文件:

树莓派

所以,我们需要根据应用程序发布的数据类型先对此进行编辑。

例如,我的项目要发布包含四组传感器值的数据结构(Struct),包括:土壤阻力(水分)、温度、湿度及照度:

树莓派

从你的PSoC Creator项目中如实复制此struct。

我们还需要根据已经获得的字段,编辑打印数据的代码:

树莓派

现在可以使用“make”来编译代码了:

树莓派

接下来,我们要检查一下这个应用程序能否正常运作:

树莓派

如果一切正常,我们可以利用ts指令创建一些时间戳、改变输出方式为“输出到文件”,然后可以通过“nohup”指令运行该应用程序。这样,即使用户从SSH退出后仍可以保持运行状态:

树莓派

输出到文件的状态显示如下:

树莓派

至此,这个应用程序即可全天24小时运行。经过一段时间后,就可以对该文件进行处理,比如绘制数据图表。

OK,尽情享用吧!

原理图


将赛普拉斯开发板连接到树莓派                                                                      

下载

https://halckemy.s3.amazonaws.com/uploads/attachments/258660/cypr_rpi_C2Drgfd4mm.png

可利用USB缆连接两者。通过Micro USB线缆给树莓派供电。

代码


Cypress USB-I2C bridge

  • bluetiger9

    https://github.com/bluetiger9

  • cypress-usb-i2c-bridge

    https://github.com/bluetiger9/cypress-usb-i2c-bridge

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

全部0条评论

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

×
20
完善资料,
赚取积分