一位嵌入式老鸟编撰的树莓派教程

「动手学树莓派 Python 篇」是由网友“大飞品树莓”撰写的课程,作者在开篇提到了他撰写这个课程的初衷:

作为一名嵌入式世界里的老鸟,在8年的工作实践中,深深地感受到学校扎实的理论教育和企业极强的实践人才诉求之间,还需一个中间环节充当衔接,让学生们在学校期间,可以将理论知识付诸实践,进一步夯实了对计算机系统的整体理解,同时提高了自己的专业技能,满足企业要求,应为未来之变。 “大飞品树莓”系列课程,将自己多年来计算机系统的理解和工程实践经验,进行整理和分享,希望尽自己绵薄之力,为“新工科”建设添砖加瓦,希望我的“动手学”系列,可以成为您课外实践课之一(我希望尽我所能,成为您最喜欢的课外实践课)。

目前的「动手学树莓派 Python上篇」使用树莓派配合 NXEZ 树莓派瑞士军刀扩展板卡,进行动手学树莓派。教程和教程示例源码均托管在 github 上,同时正在不断完善和更新,欢迎各位一线教师在自己的授课中参考。

地址:https://github.com/srf1986/easy_raspi_python_one.git

目录

动手学树莓派第1章:先唠叨两句

动手学树莓派第2章:近距离看看计算机硬件体系结构

动手学树莓派第3章:操作系统为何物?为什么要花这么大精力来使用他?

动手学树莓派第4章:多任务,原来如此简单

动手学树莓派第5章:不能再两耳不闻窗外事了!你们需要交流

动手学树莓派第6章:停下来,别争了,咱们定个规矩

动手学树莓派第7章:LED灯原来是这样点亮的

动手学树莓派第8章:你牙牙学语的声音真好听

动手学树莓派第9章:小小按键在我手,我的触碰你知道

动手学树莓派第10章:有了数码管,数字、字母任我写

动手学树莓派第11章:有了他,再不用到处找温度计了

动手学树莓派第12章:调试器在手,想看什么看什么

动手学树莓派第13章:不论你身在何处,咱们都能聊天

动手学树莓派:结束了吗?没有啊,下篇更精彩:)

课程 gitee 地址:https://gitee.com/shirf_taste_raspi/shirf_serial_share

课程 bilibili 视频地址:https://www.bilibili.com/video/av71878718

BrachioGraph:树莓派绘图机

MAKER:Shasha Liu/译:趣无尽 Cherry(转载请注明出处)

本期推荐一个上手简单,又好玩的项目——树莓派绘图机。相较于之前的绘图机器的项目《树莓派制造的绘图机器人》和《Arduino + 光驱改造数控绘图机》,这个更简洁,即便没有大触搬的技能和耐心也有制造成形的可能。更难得的是除了树莓派和舵机之外的零件,在家里随便翻翻都可以找得到!

一只笔、一个夹子、三个舵机以及一个树莓派 Zero 就能搭建整个项目,绘图仪使用 Python 脚本运行,所有程序已经开放出来了:

https://github.com/evildmp/BrachioGraph

材料清单

树莓派×1

舵机×3

木棍×2

夹子×1

胶水×1

提示:

1、推荐使用 SG90 舵机。

2、用尺寸为 8cm(长)×16cm(宽)×11cm(高)的木棍作为绘图机的「手臂」。制作的绘图机适用于在 A5 上作画。请点击此处的可视化脚本,帮助了解手臂的几何形状和绘图区域之间的关系。

https://brachiograph.readthedocs.io/en/latest/how-to/visualise-behaviour.html#visualise-area

安装部件

安装连接处

使用胶水将舵机连接到底座上。如图所示有两种方法,可以任选其一,安装时舵机需要高于底座。

安装内臂

将舵机的角粘到内臂上,让其与旋转中心相距约8厘米(或根据你的具体情况而定)。

安装外臂

将舵机和夹子粘到外臂上,把笔夹在夹子上,同时让笔和和外部手臂的旋转中心保持适当的距离。按照图中舵机的位置将最后一个舵机安装到位,让其角可以安全旋转,并且可以使笔抬离纸张。

组装绘图机

该项目使用厘米为长度单位。

精确测量手臂上两个舵机的角和轴之间的距离(inner_arm)。

精确测量另一个舵机的轴与笔之间的距离(outer_arm)。

这些变量稍后将会使用。

安装软件

如何使用树莓派驱动绘图机,该指南将详细的讲解使用树莓派 Zero 用作绘图机引擎的方法:

https://brachiograph.readthedocs.io/en/latest/how-to/prepare-pi.html#prepare-pi

brachiograph.py 还需要一些其他组件。建议在 Python 软件包中使用 virtualenv,但无论选择何种方式,软件都要在 Python3 环境中。

虚拟环境(可选)

创建并激活Python 虚拟化环境

请执行以下操作:

python3 -m venv env source env/bin/activate

tmux

tmux是管理终端会话的一种常见的的方法。

即使你的连接断开了,它也可以使你重新加入会话并不会丢失命令的位置。用下面的命令安装:

sudo apt-get install tmux

Pip

如果还未安装或者还没有使用虚拟环境,请执行以下操作:

sudo apt-get install python3-pip

此版本的 pip 需要使用 pip3 调用。因此,如果你未使用 Python 虚拟环境,请在以下的口令中将 pip 替换为 pip3。

PIGPIO

PIGPIO 这是一个很棒的库,它可以实现对树莓派的 GPIO 引脚的硬件控制。这对精确计时脉冲很重要而且它还带有一个用于底层代码的 Python 接口。

sudo apt-get install pigpiod pip install pigpio # use pip3 if not using a virtual environment

Pillow

Pillow 是一个 Python 的映像库。

http://abyz.me.uk/rpi/pigpio/index.html

它可以在不需要驱动绘图机的情况下,将位图图像转换为矢量:

https://www.piwheels.org/project/Pillow/

sudo apt install libwebp6 libtiff5 libjbig0 liblcms2-2 libwebpmux3 libopenjp2-7 libzstd1 libwebpdemux2 libjpeg-dev pip install pillow # use pip3 if not using a virtual environment

Numpy

Numpy 是一个 Python 的数学库。

https://www.piwheels.org/project/numpy/

sudo apt install libatlas3-base libgfortran5 pip install numpy # use pip3 if not using a virtual environment

Git

如果还未安装,请运行:

sudo apt-get install git

其他的 Python 软件包

使用 pip 安装 Python 3 版本:

tqdm#用于绘图时的进度指示器

readchar#允许 BrachioGraph.drive() 方法接受用户输入

pip install tqdm readchar # use pip3 if not using a virtual environment

Clone BrachioGraph 库

如果还未安装,请按照该步骤复制 BrachioGraph 存储库:

git clone git@github.com:evildmp/BrachioGraph.git

或者,如果你需要使用 HTTPS 的话:

git clone https://github.com/evildmp/BrachioGraph.git

将绘图机连接到树莓派

1、将三个舵机连接到树莓派。

树莓派没有足够的 5V 引脚来来连接到每个舵机。因此,你需要使用排线将它们连在一起,或者使用面包板。

2、连接方式如下。

连接处舵机:GPIO 引脚 14

弯头舵机:GPIO 引脚 15

提升舵机:GPIO 引脚 18

树莓派 2-12 的引脚连接方式,请点击https://pinout.xyz/。

注意:请在关闭树莓派的情况下进行连线,直到你确定连线正确再开机使用以免造成设备的损坏。

启动 BrachioGraph

创建一个 BrachioGraph 实例,启动树莓派并运行:

sudo pigpiod cd BrachioGraph python3

然后,使用你之前记录的 inner_arm 和 external_arm 的变量值:

from brachiograph import BrachioGraph bg = BrachioGraph(inner_arm=, outer_arm=)

系统将创建一个 BrachioGraph 实例并进行初始化。同时调整电机,使笔处于标称值:

x= -inner_arm

y= outer_arm

这将对应于:

上部手臂处于 -90 度,脉冲宽度为 1500μS。

下部手臂处于 90 度,脉冲宽度为 1500μS。

提升电机处于笔的上方,脉冲宽度为 1700μS。

检查运动状态

确保绘图机手臂按照预计的方向移动。运行:

bg.set_angles(angle_1=-90, angle_2=90)

不用做任何事情,手臂应该运行在相应的角度。

现在可以尝试以 5 度为增量改变值(一次更改一次),例如:

bg.set_angles(angle_1=-95, angle_2=90) # should move the inner arm 5 degrees anti-clockwise

增大值使手臂顺时针移动,减小值使手臂逆时针移动。为避免剧烈的移动,请勿一次超过五度或十度的移动。

这些运动有可能会反向,因为不同的舵机或相同的舵机因为安装不一样也可能在相同的输入时产生反向的运动。

在这种情况下,你需要通过显式 servo_1_degree_ms(默认值:-10)和 servo_2_degree_ms(默认值:10)的值,将其合并到 BrachioGraph 定义中。例如,如果外部手臂的运动被反转,则需要运行以下命令初始化绘图机:

bg = BrachioGraph(inner_arm=, outer_arm=, servo_2_degree_ms=-10)

安装手臂

按图所示,安装好「手臂」并放置好铅笔。

将角连接到提升舵机上。

你需要将笔悬空并确保不接触纸张。抬起运动时可能会导致笔的不需要的移动,因此需要将其最小化。可以尝试运行:

bg.pen.rpi.set_servo_pulsewidth(18, )

找出一对不错的向上或向下的值。然后,通过提供的 pw_up 和 pw_down 值包含在 BrachioGraph 的初始化中。

当然,手臂可能还是会偏离几度,不用太担心。

使用 BrachioGraph 开始驱动

bg.drive_xy()

控制项:

0: 退出

a: 增加 x 坐标 1cm

s: 减少 x 坐标 1cm

A: 增加 x 坐标 0.1cm

S: 减少 x 坐标 0.1cm

k: 增加 y 坐标 1cm

l: 减少 y 坐标 1cm

K: 增加 y 坐标 0.1cm

L: 减少 y 坐标 0.1cm

使用它来发现 BrachioGraph 可以绘制的框的边界。

记下 bounds 的值,即边界位置: [, , ]

使用以下值重新初始化绘图机:

bg = BrachioGraph(inner_arm=, outer_arm=, bounds=

测试

使用 bounds 的值绘制一个框:

bg.box()

测试模式:

bg.test_pattern()

如果绘制出来的线条还算笔直并且边框为方形,就可以尝试绘制文件:

bg.plot_file(“test_file.json”)

保存你的 BrachioGraph 定义

使用文件 bg.py 来保存定义的 BrachioGraph 实例以备用。它已经包含了在开发过程中编写的一些范例。

有关绘图机库的调用方法和更多资料可以参考文档:

https://brachiograph.readthedocs.io/en/latest/index.html

最后,希望你喜欢这个简易的绘图机。

via

树莓派+帽子=可穿戴视频记录仪

MAKER:Johan Link/译:趣无尽 Cherry(转载请注明出处)

相信大家对去年的《OpenEyeTap:基于树莓派的开源AR智能眼镜》这个项目还有印象,同样是基于树莓派、3D打印、摄像头模块,下面要介绍的是功能类似,但DIY门槛大幅降低的灵魂制作版本。

采用体积更大的树莓派3B、更大更容易获得的摄像头模块、超大如充电宝一样的 5000mAh 锂电池,为此,本体已经不再是眼镜,而是——能容纳更多东西的帽子。

这套系统的相机会一直开启,随时拍摄你想记录的内容,但视频录制时间被限定为七秒。

这七秒,对于生活中很多美好的瞬间来说,已经足够了。如果没有它,等你拿出手机时已经稍纵即逝了,如果你热爱记录生活,那就来试试吧,把你喜欢的事物拍摄下来,快手小王子非你莫属!

(P.S. 即便自己没拍到什么,带这么个东西出街也一定能被路人拍到,一炮而红也是可能的呢!)

材料清单

树莓派 3B ×1

USB摄像头 ELP-USBFHD01M ×1

按钮×1

外接电池 5000mAh ×1

3D 打印部件

需要打印的部件有电池仓、摄像头前后面两面的外壳、树莓派主机仓。

3D 打印文件请在项目文件库中下载。

https://make.quwj.com/project/132

工作原理

将电池连接到树莓派时,务必等待几分钟,确定树莓派可以正常使用。你每按一次按钮,摄像头将记录七秒的视频。

在手机上下载 FTPManager 应用程序并连接到树莓派的 WiFi。在 FTPManager 中,你可以通过 IP 地址访问树莓派的所有文件,浏览并查找录制好的视频。

组装

如图所示连接好触发摄像头的开关和树莓派。

摄像头可以插入到树莓派的任意一个 USB 端口。

将树莓派设置为热点,可以参考下面这篇教程:

https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md

如果你打算直接将树莓派接入互联网,那么可以不必设置成热点。

启用 SSH

1、在树莓派的选项菜单中配置。

2、选择接口选项卡。

3、点选 SSH 的已启用。

4、点击确定。

程序部分

程序是用 Python 编写的,请先安装所需的库。

import numpy as np import cv2 import time import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP) cap = cv2.VideoCapture(0) fourcc = cv2.VideoWriter_fourcc(*’XVID’) print(cap.get(3)) #width print(cap.get(4)) #height print(cap.get(5)) # fps frameList = [] numberOfSavedFrames = 30*7 i=0 vidNb = 0 while(True): # Capture frame-by-frame ret, frame = cap.read() frameList.append(frame) if(len(frameList) > numberOfSavedFrames): # cv2.imshow(‘frame’,frameList[len(frameList)-1]) frameList.pop(0) if cv2.waitKey(1) & 0xFF == ord(‘q’): break input_state = GPIO.input(18) if(input_state == False): out = cv2.VideoWriter(‘output.avi’, fourcc, 30.0, (640, 480)) for frame in frameList: out.write(frame) vidNb += 1 i += 1 # When everything done, release the capture cap.release() out.release() cv2.destroyAllWindows()

代码下载地址:

https://github.com/JohanLink/FilmThePast

设置为开机自动运行这个程序文件即可。如何将 Python 脚本设置成开机启动,可以参考这里:

树莓派用服务方式设置开机启动

大功告成!

via

如何在树莓派上截屏?

在树莓派上如何截屏?下面介绍两种方法。

方法一:shutter 截图工具

这个方法需要安装一个图形化的截屏工具 shutter,使用容易。缺点是依赖的组件太多,安装时间也比较久。

步骤如下:

安装软件。

sudo apt-get update sudo apt-get install shutter

运行 shutter。

使用软件工具栏中的按钮选区进行截图。

方法二:命令行截图工具

步骤如下:

安装依赖。

sudo apt-get update sudo apt-get install libpng12-dev

下载源程序。

sudo git clone https://github.com/AndrewFromMelbourne/raspi2png.git

编译。

cd raspi2png make

使用。不加任何参数时默认存储为 PNG 格式图片。

./raspi2png

可用的参数有以下几种。

–pngname – 抓取保存为图片的文件名(默认 snapshot.png)

–verbose – 显示完整信息

–height – 图高(默认为屏幕高度)

–width – 图宽(默认为屏幕宽度)

–type – 图片色彩,可选项有 RGB565 RGB888 RGBA16 RGBA32

–delay – 延迟截图时间(默认为0,立即截图)

另外,raspi2png 的作者另有一个名为 fb2png 的截图程序,使用上和 raspi2png 相似。

树莓派+点阵制造比特币追踪器

MAKER:Jonathanrjpereira/译:趣无尽 Cherry(转载请注明出处)

Bitcoin Bar,一个有些复古的点阵盒子,摆在桌面来显示重要的比特币信息,如实时价格、剩余量、区块奖励减半等。当然你也完全可以自定义任何其他数据显示在上面,下面将分解每个步骤,介绍如何来制造它。

制作和效果视频如下:

材料清单

树莓派 3B×1

LED 显示器×若干

白色LED 二极管 10mm×1

电阻 100 欧姆×1

5V USB 电源适配器×1

烙铁×1

焊锡丝×若干

5mm 中密度纤维板×若干

5mm 亚克力板×若干

胶水×1

涂料×若干

电路设计

这里采用了 SPI 接口,它是一种接口总线,通常用于微控制器和小型外围设备之间发送数据,如显示器和传感器等。可以使用单独的时钟、数据线和芯片与设备连接。

LED 点阵连接到树莓派的 SPI 引脚。

树莓派 3B 与 LED 点阵的连线方式如下

5V > VCC

GND > GND

GPIO 10(MOSI)> DIN

GPIO 8(SPI CE0)> CS

GPIO 11(SPI CLK)> CLK

软件部分

依赖关系如下

网络抓取

1、Requests是一个很简单的 Python HTTP 库。

http://docs.python-requests.org/en/master/user/install/

2、Beautiful Soup 4 Python 库,用于从 HTML 和 XML 文件中提取数据。

https://www.crummy.com/software/BeautifulSoup/bs4/doc/

Max7219 LED 点阵的 Python 库

Python 库接口是 LED 点阵与树莓派上的 MAX7219 驱动器(使用 SPI)连接。

https://luma-led-matrix.readthedocs.io/en/latest/install.html

https://github.com/rm-hull/luma.led_matrix

设置和配置

所有前期准备完成后就可以在 GitHub 仓库下载完整代码。

https://github.com/jonathanrjpereira/Bitcoin-Bar

如原理图所示,将显示器连接到树莓派。运行主程序 bcbar.py

比特币显示栏可以显示 19 种不同的实时数据参数。这些数据可以以任意的顺序显示或者固定顺序显示。主程序按顺序显示所有 19 个数据参数。

数据参数可以单独显示也可以设定顺序,在主程序中设置以下行:

show_message(device, disp[i], fill=”white”, font=proportional(LCD_FONT),scroll_delay = 0.02)

其中 i 的值将表示显示的数据参数。比特币显示栏可以显示以下实时数据参数:

1、插入参数表格。

2、滚动的速度和静态的文本。

通过调整 scroll_delay 的值,改变滚动速度。

通过 led_test.py 示例,使用文本函数显示静态文本。

3、限速

数据参数从 bitcoinblockhalf.com 获取。访问次数限制为每小时一次,这样就不会产生不必要的流量。站点从其他各种 API 收集数据参数并汇总。获取更多信息可访问:

https://github.com/thrasher-/bitcoinblockhalf.com

4、运行程序

按照树莓派官方文档指导,修改 rc.local 文件以便在启动时运行 Python 脚本。

https://www.raspberrypi.org/documentation/linux/usage/rc-local.md

制作外壳部分

1、切割出各部件

比特币跟踪器是由 5mm 厚中密度纤维板激光切割而成,形成一个可以带锁扣的外壳。

前板有两个卡槽:一个用于 LED 显示屏,另一个用于丙烯酸扩散器。

后板有一个孔用于连接树莓派电源 USB 线。

底板有四个孔用于将树莓派固定到位。

图纸获取(适用于中密度纤维板和丙烯酸板):

https://github.com/jonathanrjpereira/Bitcoin-Bar/tree/master/Laser%20Cutting

2、给外壳上色

使用丙烯酸涂料给组装好的外壳上色。

我选择自己喜欢的颜色。

3、粘贴丙烯酸扩散器

外壳涂料干燥后,开始组装部件。将圆形的丙烯酸扩散器粘在中密度纤维外壳前板的卡槽中。

4、粘贴 LED 点阵

将 LED 点阵固定到中密度纤维外壳前板的卡槽中并确保它与面板的表面齐平。

如果使用其他显示模块,则需要对激光切割文件中的卡槽尺寸进行修改。

5、粘贴比特币贴纸

在透明的不干胶纸上打印出比特币标志。剪下圆形徽标并将其粘贴到中密度纤维外壳前板上的丙烯酸扩散器中。

6、焊接 LED

使用一个 10mm 白色的 LED 灯来点亮扩散器的比特币 Logo。

将两个母头连接器焊接到 LED 上,以便连接到树莓派上。如电路原理图所示,在 LED 的阳极(+)和树莓派 +3.3V 之间添加一个电阻。电线接头处用热缩管处理。

安装树莓派

使用螺母和螺栓将树莓派安装到中密度纤维外壳的底板上。面板上有四个激光切割的孔,树莓派的micro-USB 端口与中密度纤维外壳背面板上的卡槽完全匹配,用于安装 USB 电源适配器的电缆。

连接其他部件

如图所示,将 10mm LED 连接到树莓派,再将 LED 点阵连接到树莓派的 SPI 引脚上。

粘贴 LED

如图所示,将所有电子元件连接好后。固定 10mm LED,通电后确保灯光的亮度能够均匀照亮扩散器。

我在 LED 下方贴了一小块纸板,使其一某种角度倾斜,让灯光能够均匀打在扩散器上。

完成组装

将所有电子部件连接并固定到位后,将 USB 电源适配器线穿过背面板上的孔并将其连接到树莓派。

打开电源,比特币显示栏就会自动显示最新的比特币涨势和信息了!

via

树莓派驱动的物联网滴灌系统

MAKER:Technovation/译:趣无尽 Cherry(转载请注明出处)

本次介绍的是一个由树莓派驱动的物联网滴灌系统,比往期《用树莓派制作一款自动浇灌系统》的功能更加完备。

利用物联网来监测和维护植物的正常生长,使用现有的工具,将传感器与植物相结合,监测植物的实时状态。项目还构建了一个App,可以根据反馈的数据来进行相应的操作。

项目可扩展,成本低且易于上手。你也可以试试哦!

材料清单

树莓派×1

Grove Pi 扩展板×1

传感器外壳×1

12V 电磁阀×1

温湿度传感器(dht11)×1

土壤湿度传感器×1

光线传感器×1

继电器模块×1

12V 电源×1

1 英寸松木板(300×10cm)×1

1/4 英寸胶合板(120×80cm)×1

防水布(180x275cm)×1

PVC管(长30cm,直径2cm)×1

水管(250cm)×1

弯管接头×2

螺丝x30

3D 打印

所有 3D 打印的文件,请在文件项目库中下载。

https://make.quwj.com/project/130

如需更改,请根据自己的实际情况进行修改。使用 Creality Ender 打印零件大约需要八个小时。

水管接头 30%填充x1

喷嘴适配器 30%填充x3

水管塞子 30%填充x3

钩子 30%填充x2

传感器底座 20%填充x1

阀门适配器 20%填充x1

电线盖子 20%填充x1

系统工作原理

IOT 系统运行过程如下:

1、树莓派采集数据信息,例如光照、温湿度和土壤中的水分含量等。

2、将各种传感器的数据传送到云数据库中。

3、使用智能手机应用程序在任何地点访问。用户可以将指令(例如水泵的状态)发送至滴灌系统并执行相关的命令。

项目的主要特点:

1、各种传感器的数据实时反馈。

2、建立植物生长状况数据库。

3、可以全球监测和运行。

4、滴灌系统。

5、App 控水系统。

6、自动浇水时间设定。

我们使用 Google 的 Firebase 作为物联网系统的中介,创建免费的云数据库。然后使用 MIT 的 App Inventor 创建了一个与 Firebase 数据库和树莓派兼容的智能手机应用程序。也可以使用免费的 Python 库与数据库进行传送。

制作木边框

制作一个木制边框将植物放入其中,其木制结构部分的尺寸将根据种植的植物来决定。本项目中所需的木板尺寸如图所示。

1、制作边框

使用松木来制作边框,盒子内部尺寸为 70cm×50cm,高度为 10cm。

使用圆锯切割出四根长条。标记好需要钻孔的地方。在木框边缘钻八个埋头孔并确保边框是正方形,最后将其固定。

2、制作底部面板

使用 5cm 厚的胶合板制作底部面板,切割好后安装到边框上。确保孔是埋头孔,以便螺钉与底座齐平。

3、钻管道的孔

制作的木制盒子可以种植三排植物。对于滴灌系统,需要在盒子的一侧安装输水的管道。

首先测量连接器的直径,在短的一边等距离钻三个孔。孔的大小与管道的大小相匹配。最后打磨边缘,以便连接。

4、连接水管

连接接头,需要将两根 12cm 长的 PVC 管切开。保持干燥并检查是否平整。

将 3D 打印的接头与两端的 PVC 弯头接头连接,直到它们方向齐平。将面板重新安装到框架上,并使用 3D 打印适配器从内部盖住连接器。所有连接处都会摩擦,需要防水。如果达不到,可以用热胶或特氟隆胶带密封接头。

5、电磁阀

为了控制滴灌系统,我们使用了电磁阀。阀门在发送电子信号时设置为开门,它可自动控制。为了安装它,我们使用中间适配器将一端连接到水源,另一端连接到植物的输水管。需要注意的是要正确的安装连接阀门的方向,通常标记 “IN” 为输入(水龙头)和 “OUT” 为输出(植物)。

连接设备各部件

以下是各种模块和传感器的连接方式,端口位于 Grove Pi 和 shield 上,如图所示。

温湿度传感器==>端口 D4

继电器模块==>端口 D3

土壤湿度传感器==>端口 A1

光传感器==>端口 A0

安装各部件

使用胶合板制作出一个隔离盒便于安装所有的电子设备。如图所示,根据电子设备的布局切割木材并组装好。待胶水干燥后,将电源和树莓派安装到隔离盒中,通过插槽将传感器的线穿入。插槽务必严丝合缝的密封好。

传感器安装座上有孔,便于连接安装传感器的挂钉。将光度和湿度传感器安装在顶部,将土壤湿度传感器安装在可调节插槽上。

为了使隔离盒易于拆卸,使用 3D 打印的挂钩和传感器支架,使盒子可以挂在主结构上。如此,电子产品和 IOT 管理系统可以很容易移植到其他项目上。

创建数据库

注意,这里需要用到墙外的 Google 服务,墙内的话建议寻找替代服务或自建数据库。

1、为系统创建数据库,请点击 Google firebase https://firebase.google.com/访问 Firebase 网站(使用 Google 帐户登录)。

2、单击“开始”按钮,将转到 Firebase 控制台。单击“添加项目”按钮创建一个新项目,按照要求填写。单击“创建项目”按钮完成。

3、请从左侧菜单中选择“数据库”,因为只需要 Firebase 的数据库工具。单击“创建数据库”按钮,选择“测试模式”选项并单击“启用”。

4、通过单击顶部的下拉菜单,将数据库设置为“实时数据库”而不是“cloud firestore”。选择“规则”选项卡并将两个“错误”更改为“正确”,单击“数据”选项卡并复制数据库 URL,稍后将需要此选项。

5、单击项目概述旁的齿轮图标,单击“项目设置”,然后选择“服务帐户”选项卡,最后单击“数据库密钥”并记下安全代码的数据库。完成此步骤后,你就成功创建了可从智能手机和树莓派访问的云数据库。

配置 APP

物联网系统的下一步就是智能手机应用程序。使用 MIT App Inventorhttp://appinventor.mit.edu/作为该项目的定制应用程序。

1、请点击打开 MIT App Inventor 链接并访问网页。点击屏幕上方的“创建应用”,然后使用 Google 帐户登录。

2、请在项目库中下载 .aia 文件。https://make.quwj.com/project/130

打开“项目”选项卡,然后单击“从我的计算机导入项目(.aia)”,然后选择下载好的文件并单击“确定”。

3、在组件窗口中,向下滚动至“FirebaseDB1”,单击它并将“FirebaseToken”,“FirebaseURL”修改为在上一步中记下的值。

完成这些步骤后,你就可以下载并安装该应用程序了。你可以通过单击“构建”选项卡并单击“应用程序(.apk 提供 QR 代码)”直接将应用程序下载到手机上,然后使用智能手机扫描 QR 代码或单击“应用程序”(将 .apk 保存到我的计算机),你可以将 apk 文件下载到计算机上,然后再转移到你的智能手机并安装。

树莓派编程

首先为树莓派下载最新版本的 Raspbian 并安装好。如果你也使用 Grove Pi+shield,请使用最新版本的 Raspbian for Robotshttps://www.dexterindustries.com/raspberry-pi-robot-software/烧录树莓派。下面需要安装一个额外的 Python 库。打开终端并粘贴以下命令:

sudo pip install requests==1.1.0 sudo pip install python-firebase

完成后,请在文件库中下载 .py 文件并将其保存到树莓派的目录中。https://make.quwj.com/project/130

打开文件并向下滚动至第 32 行。在此行中,将“在此处粘贴你的 URL”部分替换为之前记下的数据库 URL,确保将 URL 粘贴到’之间。完成后,打开终端并使用“python”命令运行 python 脚本。

运行 APP

应用程序界面非常的简单明了。前四个图标显示光度,温度,湿度和土壤湿度的实时值。可以通过单击“获取值”按钮来更新这些数据。该按钮将指导树莓派更新云数据库,同时点击“刷新”按钮,刷新屏幕就会刷新数据。

屏幕下方的部分用于滴灌系统。“开”按钮打开水泵,“关”按钮关闭水泵。 “自动”按钮,可以利用各种传感器显示的数值来计算每天所需的确切水量并在每天早上八点和下午四点时给植物浇两次水。

安装防水布

因为土壤中的水分会不断的腐蚀木框,将制作一块防水油布垫放在木框的内部表面上。确保可以将其从两侧拉出,然后用胶水将其固定到位。完成后就可以开始填充土壤。使土壤与木框表面平铺,安装三排滴灌的水管。

在靠近水管的拐角处安装电箱并将土壤湿度传感器埋入土壤中。这样更便于接线,因为电磁阀可以靠近电子设备而且易于连接。

安装滴灌系统

将输液管作为滴灌的水管,根据木框的长度切割出三条滴灌的水管。根据植物之间的间距,钻若干个一毫米的滴水孔。测试水量是否充足,如果不够,则需要扩大孔的尺寸。使用三个塞子将水管两端塞住,确保水只从滴水孔流出。

最后,将管子轻轻地嵌入土壤中,就可以开始灌溉了。

完成

如图所示,IOT 智能种植实验已经运行一个月了。植物都非常的健康。

通过实验,自动模式每天可节省约 12% 的水。当植物通过滴灌浇灌时,它们的根笔直生长,而且给容器中的植物留出更多的生长空间。唯一缺点是如果要种植更大的植物,则需要更深的容器。

希望你喜欢这个项目。

via

给树莓派 CM 的 eMMC 烧录系统的方法

树莓派 CM(计算模块) 上有一个 eMMC 设备连接在主 SD 卡接口上(Lite 版除外),下面将介绍几种方法,通过计算模块的 IO 底板将系统烧录到 eMMC 上。

你还可以在计算模块的 Datasheet 中查看到本文所介绍的方法。

首先需要准备一块树莓派 CM,和一块底板。CMIO 或者其他底板(如 ED-IOTGATEWAY)均可。

烧录步骤

你需要准备一个 Linux 系统(推荐使用树莓派或装了 Ubuntu 的 PC)或 Windows 7、Mac。

注意 对于 BCM2835 (CM1) 的 bootloader 有一个 BUG,它会给主机返回错误的 USB 数据包,但是大多数的 USB 主机会忽略这个无害的错误并能正常工作。这个错误在 BCM2837 中做了修正。

Windows 下的操作

在 Windows 下有一个安装工具来自动安装所需驱动和引导工具。或者你也可以使用 Cygwin 编译并手动安装驱动。

Windows 安装工具

1、下载并运行 安装程序 完成驱动和引导工具的安装。

2、将树莓派 CM 底板的 USB SLAVE 接口连上 PC 的 USB 接口。对于 CM1、CM2、CM3、CM3+ 来说,需确认 J4 跳线(USB SLAVE BOOT ENABLE)设定在 EN 的位置。对于 CM4 来说,需要确认 J2 跳线设定在 EN 的位置。

3、给树莓派 CM 底板上电,Windows 将自动发现新硬件并安装驱动。

4、驱动安装完成之后,运行 RPiBoot.exe。

5、等待几秒钟之后,计算模块的 eMMC 将作为 USB 大容量启动器出现在系统的磁盘列表中。

6、这时候就可以像 给 SD 卡烧录系统镜像 一样来给计算模块烧录系统了。在写入系统镜像时请将 J4 跳线设置到 disabled 的位置(或者不要使用 USB Slave 接口)。随后给底板上电,系统会从 eMMC 来启动。

Cygwin 手动安装驱动的方法

Cygwin 是一个在 Windows 平台上运行的类 UNIX 模拟环境,首先你需要在 Windows 上安装好 Cygwin。

下载和安装参考 http://www.cygwin.com

接下来,和上面介绍的工具安装方法一样,设置好底板上 J4 跳线到 EN 的位置。用 micro USB 线把底板接到 PC 上,请不要给底板上电。

使用 Git 获取 rpiboot 的源码并编译安装。

sudo apt-get install git #如果系统时间没有设置的话, Git 会报错,使用下面的命令设置系统时间即可,此处 MM、DD、hh、mm 分别为月、日、小时、分钟。 sudo date MMDDhhmm git clone –depth=1 https://github.com/raspberrypi/usbboot cd usbboot #如果 libusb 没有安装的话,可以用下面的命令安装,若已安装则可忽略。 sudo apt-get install libusb-1.0-0-dev #编译源码 make #运行 rpiboot sudo ./rpiboot

现在将计算模块底板的 USB Slave 接口(J15)连上 PC,并给底板上电。rpiboot 程序会检测到计算模块并发送启动代码来运行连接 eMMC。

Linux 下的操作

这部分和 Windows 下 Cygwin 的手动安装驱动方法类似。获取 usbboot 的源码并运行 rpiboot,所用到的命令和上面一样故不再赘述。下面说一下烧录这个步骤所用到的命令。

rpiboot 完成之后,你可以在 /dev/ 目录或者运行 lsblk 命令对比看到 rpiboot 运行前后的一些改变。会出现一个新的设备,就是计算模块的 eMMC。

使用 dd 命令将 Raspbian 镜像刷入到该设备即可。下面假设新的设备名为 sdX 则使用下面的命令。

sudo dd if=raw_os_image_of_your_choice.img of=/dev/sdX bs=4MiB

运行结果

给树莓派添加开、关机键

本文来自 bxgj 的投稿,原发于 blog.csdn.net。

声明

本文由 u013062709 原创,禁止二次修改发布。转载及引用内容请注明出处,并标明本站网址。文中程序仅供学习使用,本人不承担任何由使用文中代码产生的法律责任。

作为一个硬件爱好者、嵌入式系统工程师、技术宅,树莓派肯定是要玩一玩的,但是用的时间长了总会发现它有一些不完美的地方,比如:没有电源键!

常用的关机方法有两种(外接屏幕和键盘的就不说了):

1、远程登录然后敲命令(这是最合适的关机方法,但是太麻烦,如果没有电脑在身边就没法关机了)

2、拔电源(简单粗暴,但很容易导致文件损坏)

所以为了愉快的使用树莓派,最好还是给它添加一个像电脑一样的电源键,百度了一大圈发现国内(没错,我就是针对国内,来来回回就那么几篇文章,还反反复复互相抄)只有一种添加电源键的方法,那就是写个python脚本、或者其他脚本、或者编译一个程序,反正原理都是一样的,让这个脚本(或程序)开机启动,程序中一直检测设置为电源键的GPIO,如果被触发则关机。这个方法虽然能解决问题,但真的low爆了!!!而且只能关机,不能开机。

在这里跟大家分享一个非常优雅,能关机也能开机的方法:

打开并仔细阅读 /boot/overlays/README

好了今天的分享到此结束,谢谢大家。

其实 /boot/overlays/README 里面已经说的很详细了,为了造福广大人民群众,我就整理一下。

不少人看见英文就头疼,而且这个文件有上千行,很少有人会仔细阅读,这里我就只把电源相关的内容摘录出来(不同版本系统文件的内容略有不同):

Name: gpio-shutdown Info: Initiates a shutdown when GPIO pin changes. The given GPIO pin is configured as an input key that generates KEY_POWER events. This event is handled by systemd-logind by initiating a shutdown. Systemd versions older than 225 need an udev rule enable listening to the input device: ACTION!=”REMOVE”, SUBSYSTEM==”input”, KERNEL==”event*”, \ SUBSYSTEMS==”platform”, DRIVERS==”gpio-keys”, \ ATTRS{keys}==”116″, TAG+=”power-switch” This overlay only handles shutdown. After shutdown, the system can be powered up again by driving GPIO3 low. The default configuration uses GPIO3 with a pullup, so if you connect a button between GPIO3 and GND (pin 5 and 6 on the 40-pin header), you get a shutdown and power-up button. Load: dtoverlay=gpio-shutdown,= Params: gpio_pin GPIO pin to trigger on (default 3) active_low When this is 1 (active low), a falling edge generates a key down event and a rising edge generates a key up event. When this is 0 (active high), this is reversed. The default is 1 (active low). gpio_pull Desired pull-up/down state (off, down, up) Default is “up”. Note that the default pin (GPIO3) has an external pullup.

这里已经说得很明白了,只要在 /boot/config.txt 中添加相关配置就能实现关机。

比如像这样:

# 使用GPIO3(这里的GPIO指3BCM GPIO编号,也就是SCL1)作为电源键,下降沿为按下,上升沿为弹起,内部上拉 dtoverlay=gpio-shutdown

保存并重启,之后你只需要在GPIO3和GND之间接个按键就能实现关机,是不是很简单?

开始划重点!!考试要考的!!记住了!!

不需要添加任何配置,正常关机后不切断树莓派电源,将GPIO3拉到低电平就能开机!没错,这样就实现了开机键!如果不需要GPIO3做开机键,请自行阅读 /boot/overlays/README 中 gpio-poweroff 相关内容

前面提到的配置默认使用GPIO3,也就是SCL1作为电源键,占用了I2C接口,虽然可以用其他GPIO软件模拟I2C,但显然很不方便,最好如下改成其他GPIO,注意这样改了以后这个GPIO口只能做关机键使用,开机键还是GPIO3,目前我没有找到自定义其他开机键的方法。

# 使用gpio_pin=17,即GPIO_0(物理引脚PIN_11)做关机键 dtoverlay=gpio-shutdown,gpio_pin=17,active_low=1,gpio_pull=up

GPIO3与SCL1冲突,具体表现为,当启用I2C以后,GPIO3做SCL1使用,因此只能使用GPIO3开机,不能关机。所以如果想只用一个按键作为开、关机键,必须放弃硬件I2C,用其他引脚软件模拟I2C;如果一定要即有开、关机键又同时使用硬件I2C,那么就用GPIO3做开机键,另外配置一个按键做关机键。

以上内容我只在树莓派3B+(系统版本:Raspbian Buster with desktop, Image with desktop based on Debian Buster, Version:July 2019, Release date:2019-07-10, Kernel version:4.19)上做过验证,其他版本不保证可用

/boot/overlays/README 中还有很多非常有用的配置,有兴趣的同学自己去研究。

最后希望大家赶紧行动起来!!抛弃那些 low 爆的开关机按键方案吧!

树莓派制造低成本交互式显微镜

MAKER: RiksEddy/译:趣无尽 Cherry(转载请注明出处)

我知道这里有很多对生物感兴趣的 Maker 朋友们,本期要向大家推荐一个实用的装备类项目,由树莓派、摄像头、CCTV 镜头和一组 3D 打印支架装配成的交互式显微镜。造价低廉,功能强大,是时候用它来替代传统的小学生实验显微镜了!

来两段测试视频,感受一下实际效果:

材料清单

树莓派 Zero W ×1

树莓派摄像头×1

载玻片×1

盖玻片×1

CCTV 镜头×1

CCTV 镜头锁紧环×1

GPIO 排针×1

SD 卡 8G×1

跳线×若干

剪刀×1

钳子×1

100 欧姆电阻器×若干

LED×1

Micro USB 线×1

焊接套件×1

3D 组件×1

透明胶带×1

3D 打印

在项目文件库中下载 STL_FIles.zip 文件并解压。

https://make.quwj.com/project/146

自行 3D 打印或在某宝找商家打印组件,材料建议使用 ABS、PLA 均可。

3D 打印的部件为:

底部×1

底部和顶部的固定螺丝×8

侧面大托盘×2

相机固定螺丝×2

相机和镜头插座×1

镜头转动组件×1

侧面小托盘×2

结构主体×2

安装树莓派 Zero W

下面提供两种设置树莓派 Zero W 的方法。可根据自己手头的资源自由选择。

1、初学者设置指南。

首次使用树莓派,如何安装、启动及配置

它将提供全方位的上手步骤,包括硬件和操作系统设置的介绍。

2、无屏幕和键盘配置树莓派 WiFi 和 SSH 的设置指南。

无屏幕和键盘配置树莓派WiFi和SSH

它将提供如何在没有电脑显示器的情况下设置系统。

温馨提示:

设置后,请记下树莓派的主机名,登录用户名和密码,用于远程登录。如果你不修改信息,主机名和登录密码会默认为 raspberrypi,登录用户名会默认为 pi。

安装所需软件

1、使用 Micro-USB 线为树莓派 Zero W 供电。

2、通过 SSH 用电脑远程登录树莓派:

对于 Windows Putty:

第一步:输入 [HOSTNAME].local 作为主机名,点击连接类型——SSH按钮,然后单击打开。

第二步:出现提示后输入你的登录用户名和密码。

对于 Mac 终端:

第一步:在终端 SSH 中输入此命令 [USERNAME]@[HOSTNAME].local。

第二步:出现提示后输入密码。

注意:接下来的步骤大约需要10个小时才能完成,请耐心完成。

3、在 SSH 上的 CLI(命令行界面)中输入以下命令设置 OpenCV:

注意,如果 CLI 跳出提示“是否继续?”,请输入 y。

sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev vim pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy python-pip libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

如图所示,我创建了一个上级目录包括克隆的 opencv 目录,但最终我没有采用,这样可以更简单一些。

git clone https://github.com/opencv/opencv.git cd opencv/ mkdir build cd build/ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON .. make sudo make install cd

4、在电脑上下载并解压缩 picroscope.zip 文件夹。

源码文件请在项目文件库中下载。

https://make.quwj.com/project/146

然后,将文件夹上传到树莓派 Zero W:

对于 Windows WinSCP。

第一步:输入 [HOSTNAME].local 作为主机名,在提示后输入登录用户名和密码,选择 SFTP 为文件的协议方式,然后点击登陆。

第二步:在电脑驱动中找程序文件并将文件从左拖到右侧,这就是树莓派 Zero W 的主目录。

对于 Mac 终端。

第一步:单击终端的加号,创建新选项卡或会话。

第二步:输入命令 sftp [USERNAME]@[HOSTNAME].local。

第三步:出现提示后输入密码。

第四步:在电脑上找到文件夹的位置路径,并在终端的 SSH 选项卡中输入命令 pwd ,找出树莓派 Zero W 的主目录路径。复制路径以备使用。

第五步:输入命令 put -r [PATH2FOLDER-Laptop] [PATH2HOME-PiZeroW]

5、输入以下命令,检查 OpenCV 是否有效以及是否可以在 Python 中使用。

cd python import cv2

如果显示错误,请使用网络进行问题排查。如果其他方法都行不通,请发帖提问。

如果没有问题,OpenCV 可以正常使用。你可以输入以下命令来关闭 Python CLI。

exit()

输入以下命令关闭树莓派。

sudo shutdown now

断开 USB 线。

组装 3D 组件

3D 打印的组件完成后,在这一步进行组装。

1、CCTV 镜头部分

摄像头和 CCTV 镜头支架(摄像头+镜头支架),镜头和锁紧环。

调整镜头的方向,使较小的镜头朝上。

小心地将镜头穿过镜头支架中的圆孔中。

将锁紧环放置到镜头顶部。

将锁紧环固定到镜头中并小心地将镜头向下拉,直到锁紧环固定到镜头支架的顶部。

2、结构主体部分

底座,两个结构主体和四个固定件。

从底座开始组装。

固定结构主体,将支脚较厚的那一边安装在底座上并固定到位。

镜头、另外四个固定件、摄像头+镜头支架。

将摄像头+镜头支架固定到结构主体的顶部,使镜头朝向底座并固定到位。

安装摄像头

1、摄像头的光学调整。

使用 3D 打印的镜头移除器将镜头从摄像头上移除。

小心地移除摄像头中的热镜玻璃滤光镜,将镜头和玻璃滤光镜收拾好并保持干燥。

2、将摄像头连接到树莓派 Zero W。

摄像头,树莓派 Zero W 和 CSI 线。

打开摄像头的 CSI 端口和树莓派的 CSI 端口。

根据 CSI 端口的大小将 CSI 电缆的两端连接到 CSI 端口。

最后关闭 CSI 端口。

在树莓派上配置摄像头

1、用 Micro-USB 线为树莓派供电,通过 SSH 进入树莓派(参考前面的步骤)。

2、用以下命令启用树莓派上的摄像头接口:

在 CLI 中输入 sudo raspi-config

选择“Interfacing Options”

选择“Camera”

当系统询问是否启用相机时,选择“是”

当要求重启树莓派时,选择“是”

3、再次通过 SSH 进入树莓派。

4、运行命令,下载摄像头和简易服务器的 python 的界面。

sudo pip install picamera sudo pip install Flask

5、运行以下命令,测试摄像头是否正常工作。

cd picroscope python LiveStream.py

第一步:打开浏览器并在 URL 栏中输入:[HOSTNAME].local:5000

第二步:你应该可以看到摄像头在直播。由于没有镜头,画面会比较模糊,不用担心。

6、关闭树莓派并断开 Micro-USB 和 CSI 线。

安装硬件

1、焊接排针针脚到树莓派。需要树莓派,焊接套件和 GPIO 排针。

将较短的排针端穿过树莓派的正面。

小心焊接四十个引脚。

2、LED 照明的安装。需要两根母对母跳线,树莓派,一个 100 欧姆电阻和一个 LED。

取下跳线连接器,剥离跳线一端的电线。

将 LED 的短端焊接到跳线上。

将电阻器焊接到 LED 的长端并将电阻器的另一端焊连接到剥离的线上。

如图所示,将连接 LED 短端的跳线连接到树莓派的引脚 6。

使用 Micro-USB 线为树莓派供电。

将另一个跳线连接到树莓派的引脚 2,此时,LED 应该会亮起。

断开连接树莓派和 Micro-USB 线的跳线。

3、最后的安装。需要组装好的 3D 打印组件、摄像头、CSI 电线、摄像头固定件固件等。

将摄像头放在支架顶部并固定到位。

将树莓派安装到位。

将 CSI 电线连接到摄像头和树莓派。

将小或大的滑动托盘嵌入到侧面的缝隙中。

最后,将跳线和 LED 连接到树莓派。将 LED 放在底座的排座上。

测试

1、用 Micro-USB 线为树莓派供电。通过 SSH 进入树莓派。

2、在显微镜载玻片上放置一个非常小的物体,例如一根头发等。

3、将一块胶带放在物体上并使其固定在载玻片上(这有助于聚焦)。

4、将显微镜载玻片滑过托盘。

5、运行以下命令测试简易显微镜是否正常工作。

cd picroscope python LiveStream.py

顺时针或逆时针小心地转动镜头来调整焦距。

现在你可以看到发丝的图像了。

是不是一台很有意思的装备呢?你可以使用这台显微镜来研究其他的东西。

via

基于树莓派和 Vufine 屏的谷歌眼镜

MAKER:yishaisilver8/译:趣无尽 Cherry(转载请注明出处)

该项目基于树莓派 Zero,使用鱼眼摄像头实时地将视频流传输到可穿戴的 Vufine 显示屏上。显示器效果类似一台四英寸屏,输出为 720p。

另外,这款眼镜还可以为患有色素性视网膜炎的患者提供辅助,带来更广阔的视野,为他们的生活提供便利和更多的快乐。

材料清单

树莓派 Zero W ×1

Micro SD 卡×1

USB 适配器×1

Mini HDMI 转 HDMI 线×1

Vufine 可穿戴显示器×1

Micro 转 Mini HDMI 线×1

HDMI 适配器×1

HDMI 软排线×1

micro USB 线×2

树莓派鱼眼摄像头×1

摄像头线×1

小号扎带×若干

钳子×1

热胶枪×1

键盘×1

屏幕×1(支持 HDMI)

烙铁×1

焊料×1若干

手工刀×1

设置树莓派

硬件部分

1、接上键盘。使用 USB 适配器将树莓派连接到键盘的 A 型 USB 连接器上,另一个 USB 端口将用于供电。

2、将 HDMI 线插入到树莓派上的 mini HDMI 端口和屏幕上的 HDMI 端口(如果你的屏幕是 Vufine 显,请使用 HDMI 线)。

软件部分

1、给树莓派安装好 Raspbian(可参考这篇教程这篇教程)。

2、在树莓派配置菜单中启用摄像头(可参考这篇教程中启用摄像头的部分操作)。

安装摄像头

硬件部分

用软排线连接摄像头和树莓派。

注意,摄像头附带的白色软排线不适用于树莓派 Zero,用金色软排线替代它。此外,确保电线的裸漏部分朝下并插入树莓派和摄像头板。

软件部分

摄像头的软件设置非常简单。将视频流直接从摄像头传输到 HDMI,在终端中执行以命令:

raspivid -t 0 -rot 0

现在摄像头可以传输视频流到屏幕。按 ctrl+c 停止视频流。标准的 Vufine 模块,配置右眼,请将“-rot”后的 0 更改为 90。如果配置左眼,请将“-rot”后的 0 更改为270。

如图所示,将摄像头对着 Vufine 显示器,你可以看到一个直立的图像。如果你的图像是颠倒的,请尝试修改一下数字,如果你之前执行过 90 则改为 270,如果之前执行过 270,则改为 90,然后按 ctrl+c 退出视频流。

通过软件确定好摄像头的视频流的导向。下一步,我们将确保树莓派是否能够正常启动。执行以下命令:

sudo nano /etc/rc.local

如图所示,在“fi”和“exit 0”行之间的输入命令“/usr/bin/raspivid -t 0 -rot 90/270”。如果你想要一个帧率较高的低分辨率图像,请改用“/usr/bin/raspivid -t 0 -rot 90/270 -md 6”。然后请按 ctrl+x 保存它,输入 y 确定保存,然后按回车键保存。重启树莓派,测试是否运行正常。如果一切正常,在启动过程结束时,你可以看到摄像头将视频流式传输到 HDMI 输出。

温馨提醒:

1、完成以上操作后,你可以考虑在摄像头和树莓派的软排线或者连接器上涂抹少量热熔胶,确保固定到位(可选)。

2、如果你的 Vufine 显示屏配置了右眼,你选择的定位的方向是不一样。树莓派的 USB 端口位于底部会更方便,当你佩戴时摄像头的顶部将位于左侧。

3、如果想在树莓派的摄像头连接器上上传照片,但不想取下树莓派,最好现在就上传,然后稍后更新。

为 Vufine 显示器供电

Vufine 显示器本身自带电池,但只能持续九十分钟,不能满足项目的需求。这里需要连接一根 USB 线,因为常规的 USB 线太大了,为了减轻重量,需要剥离电线的绝缘管。电池改造完成后不仅可以在使用时为 Vufine 充电,还能延长其电池寿命。

1、准备 USB 线

在这个步骤中,切电线时请大家小心操作。

第一步:切一段五寸长的 USB 线。(右眼可以准备七英寸长)。然后将电线绝缘管完全剥离至 USB 线的微型端口。

第二步:使用手工刀切割塑料外壳。建议使用钳子固定住插头来进行操作。如图所示,切断时沿着侧面的接缝切割。

2、封装 USB 插头

第一步:移除 USB 线的金属端口旁的两条中线(不是红线和黑线)。你可以将它们切割下来也可以使用烙铁拆除它们。

第二步:在电线的底部(与 Micro USB 插头处)涂抹一些热熔胶,确保绝缘和安全。

3、连接到树莓派

第一步:将红线焊接到 5V 端口,黑线连接到树莓派的接地(GND)引脚。

第二步:在树莓派的两侧(焊接的地方)涂抹一些热胶,不仅可以固定电线还能够确保绝缘。

连接所有组件

1、固定树莓派

将树莓派放在 Vufine 模块上,靠近摄像头接口的前端,USB 连接器装在树莓派上,面朝下并向内放置。使用两对扎带固定。用扎带穿过树莓派顶部的一个孔,将其缠绕在 Vufine 上,然后再将其穿过树莓派的同一侧的底部的一个孔。取另一条扎带并将其固定在第一条扎带上。拉紧扎带让树莓派和 Vufine 固定在一起。最后,切断多余的扎带。树莓派的另一侧重复此步骤。

2、插入 USB 线

将焊接在树莓派上的 USB 线插入 Vufine 显示屏。

3、固定连接器

由于是磁性扩展底座,不够牢固,连接处还需要使用热熔胶加固。如图所示,将 Vufine 模块连接到磁性扩展底座。确保它与 Vufine 保持平行,你也可以通过眼镜上移动带子来调整显示器的位置。在顶部和底部涂抹适量的热熔胶。冷却并确保位置不变。

4、插入 HDMI 软排线

将 HDMI 软排线插入 Vufine 模块和树莓派。

5、连接摄像头

配置左眼:

如图所示,连接摄像头并使其侧面与软排线环绕在它的下面。将其安装在 Vufine 屏幕上并在顶部和底部涂抹适量的热熔胶将其固定到位。注意两侧不要放任何组件,方便调整软排线和 Vufine 屏幕。

配置右眼:

在这个项目中我没有右眼配置,但并不难。只需要调整摄像头的边并安装到显示屏顶部合适的位置就可以了。当你佩戴在左边时,顶部应朝向左侧。使用热熔胶将摄像头连接到 Vufine 模块的屏幕上。同样使用热熔胶或扎带将多余的软排线固定到位(可以预留一些线便于调节,但不要过长而发生折叠,因为它不能承受高度的旋转) 。如果由于安装位置发生变化而需要重新配置摄像机流,请你返回到之前的安装摄像机步骤,重新调整。

完成

1、开机

第一步:打开眼镜,按下背面灰色的按钮打开 Vufine 模块,蓝光闪烁。

第二步:将最右边的 USB 端口插入树莓派 Zero(外面标记为 PWR IN 处)。除了 Vufine 模块上闪烁的蓝灯之外,你还可以看到开启后常亮的红灯。这表示 Vufine 正在充电。

第三步:屏幕开始工作,树莓派正常开启后,摄像头上会产生视频流。

第四步:屏幕图像出现后,Vufine 按钮上闪烁的蓝灯会稳定下来。

注意:先打开树莓派再打开 Vufine,如果你的屏幕显示不正常,请关闭树莓派并重新启动。

2、关机

拔下 USB 线后关闭树莓派。你可以按 Vufine 上灰色按钮直到蓝灯停止闪烁或者让它自动关闭 Vufine。

可以改进的地方

该眼镜基于树莓派开发的项目,还有许多功能有待开发。

1、使用无线键盘连接,启动 Linux 计算机。

2、增加基于手部动作的界面。

3、在侧面添加按钮方便保存图片和视频并具有放大和缩小的功能。

4、增加机体的电源开关、3D 打印外壳、音频输出音频输出。

5、增加平衡眼镜另一边的配件。

6、使用 TTS 输出创建 CNN,获得音频描述的环境。这种神经网络可以在神经计算棒上运行,以获得更高的计算能力。

7、能够使用电流前庭刺激,进行紧急操作。

类似的项目

如果你喜欢这个项目,那么我们向你推荐两个类似的项目:

OpenEyeTap:基于树莓派的开源AR智能眼镜

树莓派+帽子=可穿戴视频记录仪

via

黑客利用树莓派设备攻入NASA网络

据外媒报道,NASA总监察长办公室(OIG)于本周发布的一份报告显示,2018年4月,有黑客攻击了他们的网络并盗走了约500M与火星任务相关的数据。攻入的切点则是一台连着NASA喷气推进实验室(JPL) IT网络的树莓派电脑。

黑客偷走火星任务数据

根据一份49页的OIG报告,黑客通过入侵一个共享网络网关然后利用该入口深入JPL网络,之后进入了存有NASA JPL管理的火星任务信息的网络。

OIG的报告称,黑客使用了一个受攻击的外部用户系统进入了JPL任务网络。

NASA OIG表示:“攻击者从23个文件中窃取了大约500MB的数据,其中2个文件包含有跟火星科学实验室任务有关的国际武器管制信息。”

火星科学实验室是JPL一个负责管理火星“好奇号”探测器的一个项目。

黑客还攻击了NASA的卫星天线网络

NASA JPL的主要任务是建造和操控行星机器人宇宙飞船如好奇号或环绕太阳系行星运行的各种卫星。

另外,JPL还管理着NASA的深空网络(DSN),这是一个覆盖全球范围的卫星天线网络,用于发送和接收来自NASA正在执行任务的航天器的信息。

调查人员表示,除了进入JPL的任务网络,2018年4月的入侵者还访问了JPL的DSN IT网络。由于担心攻击者可能也会转向他们的系统,NASA的其他几家机构在遭受入侵的同时切断了与JPL和DSN网络的连接。

攻击被定性为高级持续性威胁

NASA OIG表示:“这次攻击被列为一种高级持续性威胁,它在将近一年的时间里都没有被发现。而对这起事件的调查工作正在进行中。

报告中,JPL未能将其内部网络分割成更小的部分–这是一种基本的安全做法–而受到指责。

NASA OIG还就JPL未能及时更新信息技术安全数据库(ITSDB)而受到指责。ITSDB是JPL IT人员的数据库,该系统管理员应该在其中记录下连接到JPL网络的每台设备。然而OIG发现数据库的记录并不完整也不准确。

此外,调查人员还发现,JPL的IT人员在解决任何与安全相关的问题方面都比较滞后。

来源:cnBeta.COM

树莓派4发布:最高4G内存,价格35美元起

树莓派基金会刚刚宣布 Raspberry Pi 4(树莓派4代)已经开始发售,价格35美元起。这是一次全方位的升级,得以让树莓派拥有类似于 PC 级别的性能,同时也保留了经典的树莓派系列的接口功能。

以下是 Raspberry Pi 4 Model B 的亮点:

1.5GHz 4核心64位 ARM Cortex-A72 CPU (~3×倍性能)

1GB/2GB/4GB LPDDR4 SDRAM 内存

全吞吐量千兆以太网

双频 802.11ac 无线网络

蓝牙 5.0

两个 USB 3.0 和两个 USB 2.0 接口

双显示器支持,分辨率高达 4K

VideoCore VI 显卡,支持 OpenGL ES 3.x

HEVC 视频 4Kp60 硬解码

完全兼容早期的树莓派产品

视频如下:

是的,本次发布的树莓派包含3个版本可选,3种内存大小对应于不同的销售价格。

内存 零售价 1GB $35 2GB $45 4GB $55

电源

新版本已经用 USB-C 接口替换了之前的 USB micro-B 电源接口,这将支持更大的功率。而且新增了 USB OTG Boot 功能。

视频

为了在现有的电路板尺寸小支持双显示器输出,新版本使用了两个 HDMI D 型接口(micro DHMI)取代之前的 HDMI A 型接口。

以太网接口和USB

为了优化布线,新版本将网卡接口和USB接口位置进行了互换。主 SoC 上的以太网控制器通过专用的 RGMII 连接到 Broadcom PHY,从而提供全吞吐量。USB 由外部 VLI 控制器提供支持,通过单个 PCI Express Gen 2 通道连接,提供总共 4Gbps 的带宽并分配给 4 个 USB 接口共享。

树莓派4代基于 BCM2711 构建,完全重新实现了 28nm 的 BCM283X。使用更强大的 Cortex-A72 内核取代 Cortex-A53,从而使性能较树莓派3B+提高了2到4倍(具体取决于测试基准)。

那么问题来了:树莓派4,内存1G、2G、4G,你会选哪款呢?欢迎点击进入讨论组发表你的看法。

树莓派4B性能评测报告及各版本性能比对

下面引用 tomshardware.com 给出的树莓派4评测报告。全方位测试了新一代树莓派的硬件性能并和老版本做了对比。测试中所用的树莓派为 4G 内存版本。

出处:https://www.tomshardware.com/reviews/raspberry-pi-4-b,6193.html

树莓派系统 Raspbian Buster 发布

树莓派基金会在本周发布树莓派4B硬件之后,紧接着更新了 Raspbian 操作系统。新的版本号是 Buster,来自皮克斯《玩具总动员》电影中狗的名字。

这个版本基于最新的 Debian 开发,甚至比 Debian 的官方版本更早发布,这是为了在 Buster 中针对树莓派4添加 OpenGL 视频驱动为默认项。

虽然树莓派4硬件一时在国内还没法买到,但 Raspbian 最新的系统可以在老版本硬件上先体验一把了!

新的 UI 表现

Buster 在 UI 表现方面特意做了一些改动(主要是因为之前从 Jessie 到 Stretch 版本的过渡时很多用户说感受不到任何差异),采用了更简化的界面设计风格。减少了窗口圆角、加入了平面化的设计,让整体显得更加清晰和现代。

Thonny Python 开发环境

Raspbian 中一直集成了 Thonny Python 作为开发环境,在 Buster 中,这成为了默认的开发环境。而之前的 IDLE 因体验上不太舒服而被移除,强烈建议试试 Thonny Python。

其他调整

任务栏变得更加合理,对于不支持蓝牙的树莓派版本,蓝牙图标将被隐藏。任务栏上也不再显示 CPU 使用量,因为性能似乎足够,不用再过多关注这个数据。增加了新的 CPU 温度监视器,需要手动添加。

OpenGL 驱动配置项。可以通过 rasps-config 命令中的 Advanced Options 进行配置。

镜像下载地址:

https://www.raspberrypi.org/downloads/raspbian/

最后,推荐全新安装 Buster,而不建议从现有的 Stretch(以及更早的版本)升级到 Buster。如果一定要这么干,请先做一个备份,并且请确保你的系统已经更新到 Stretch 的最新版之后再进行。步骤如下。

1、修改文件 /etc/apt/sources.list 和 /etc/apt/sources.list.d/raspi.list

将其中的 “stretch” 改为 “buster”。

2、在终端中执行下面的命令。

sudo apt update sudo apt dist-upgrade

3、对于任何提示,选择“是”。根据网速的不同,更新需要半个小时到数小时。完成之后重新启动系统。

4、重新进入之后,通过主菜单打开 Appearance Settings,选择 Defaults,点击 appropriate for your screen size Set Defaults 按钮。这样就能加载新的 UI 主题了。

5、运行命令卸载部分不再使用的软件和配置文件。

sudo apt purge timidity lxmusic gnome-disk-utility deluge-gtk evince wicd wicd-gtk clipit usermode gucharmap gnome-system-tools pavucontrol

基于 Raspberry Pi CM 的物联网网关方案

Raspberry Pi CM(树莓派计算模块)已经发布了三代,基于计算机模块的应用方案也越来越多。下面介绍一款用于工业领域的物联网网关——ED-IOTGATEWAY1.0,分享给有物联网网关使用需求的朋友。

它基于Raspberry Pi Compute Module设计,支持CM3+/CM3/CM1全系列产品。提供了丰富的无线通讯接口包括WiFi、蓝牙、4G/LTE(可选)和LoRa(可选)。同时支持各种通讯接口如10/100M 以太网、USB2.0、UART以及RS485接口,板载 2Kb EEPROM 和 32Mb 串行 Flash 用于存储系统配置参数和用户数据。

该系统可以通过WiFi、蓝牙和LoRa组网,管理节点并通过10/100M以太网或4G/LTE无线模组连接云服务器。

CSI接口支持高分辨率的摄像头,DSI接口支持MIPI接口的液晶显示器,利用Raspberry Pi Compute Module强大的视频编解码能力支持各种视频应用。

板载RTC、温度传感器和低压检测电路能让处理器实时监控系统工作的环境和状态,在高温或电源跌落前容许系统提前存储重要的用户数据和现场数据,保证系统可靠地工作。

用户也可以通过 Raspberry Pi 标准的40针连接器,Mini PCI-e连接器和24针连接器扩展各种功能,利用本系统强大的计算能力和通讯能力满足各种物联网的应用场景。

主要功能

支持的Raspberry Pi CM系列产品列表

Raspberry Pi Compute Module 1

Raspberry Pi Compute Module 3

Raspberry Pi Compute Module 3 Lite

Raspberry Pi Compute Module 3+ 8 GB / 16 GB / 32 GB eMMC flash

Raspberry Pi Compute Module 3+ Lite

摄像头和显示:

1 x CSI接口,支持Raspberry Pi官方5M & 8M像素摄像头模组

1 x HDMI接口

1 x DSI 接口,支持Raspberry Pi官方显示屏

有线接口:

1 x 10/100M以太网

2 x USB2.0

1 x USB Slave(系统编程)

3 x UARTs(TTL电平)

1 x RS485,带雷击保护

无线通讯:

1 x WiFi 兼容IEEE802.11b/g/n 标准

1 x Bluetooth 4.1

4G /LTE Module,通过Mini PCI-e连接器扩展(可选)

LoRa 汇聚网关模块,通过24pins DIP连接器扩展(可选)

存储:

1 x microSD 卡座

板载 2Kb EEPROM

板载 32Mb 串行Flash

系统监控:

板载RTC

板载低电压检测(LVD)

1x 高精度温度传感器

人机接口:

1 x 红 & 1 x 绿色LED指示

1 x 系统复位按钮

1 x 用户自定义按钮

1 x 蜂鸣器

可扩展接口:

1 x USB 接口-Mini PCI-e插座

1 x USB 接口- 4针DIP连接器

1 x 高速SPI – 24针DIP连接器

1 x Raspberry Pi 标准40针连接器

电源供电:

12~24V DC 宽电压范围输入,凤凰端子输入接口

尺寸:

160 mm(L) x 120 mm(W) x 20mm(H)

软件环境:

Raspberry Pi Raspbian OS

系统框图

产品图片

IoT Gateway不带4G & LoRa模块

IoT Gateway带4G 不带LoRa模块

IoT Gateway带4G & LoRa模块

购买链接

ED-IOTGATEWAY1.0

Raspberry Pi CM3+