树莓派可以运行linux,一文教你如何在Linux上使用树莓派

c100b9b69299019eabd52c18e1d82c80.png

小编今天介绍的项目是通过使用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。

3eebeed0c037ccc621193cd5c6c59fad.png

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。

9604836652026a85f9665a15fedfd867.png

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

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

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

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

3b2bbd1c1c2bf9b0f620bdff30ee891d.png

将上述设置进行更新,使其适用于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文件:

f8d316b3ea28f4b1c3527eea530b57cc.png

内容如下:

e64ce4bb56d90608f94fef1f47ea4e4b.png

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

a4408a84661fa1a680068c1ceaf0bdbe.png

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

ce2e8c37c7ab1c876eabad69f190cb6a.png

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

40475ee0f88c9ebe9df9979c08572a33.png

项目配置:

7c0702d44034e36bb42b094e7cebed8b.png

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

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

a398298cf9a2c786084b2cf5d69d6f96.png

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

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

75c114be8bd98305d1da429a8ad1201c.png

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

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

38f34f50049b01eec94ff0f0c580c3b2.png

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

40770de46a150d576dc55fb5b6d5676c.png

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

a8b746ca900bc474274e417bcbac21d4.png

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

67d3c9c6a089f3178f33d7803f2519f4.png

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

9148b0fefdc94b9d4d182737b61950e5.png

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

OK,尽情享用吧!

原理图

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

下载

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

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

b0f3a1cf09e470fc18c4a02767a90fe0.png

代码

Cypress USB-I2C bridge

bluetiger9

https://github.com/bluetiger9

cypress-usb-i2c-bridge

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值