树莓派常用工具

树莓派官方系统 Raspbian(lite版和桌面版注意分清):

下载地址:https://www.raspberrypi.org/downloads/raspbian/

默认帐号:Username: pi Password: raspberry

镜像烧录工具 Win32diskimager(用来将镜像文件写入 MicroSD 卡):

下载地址:https://sourceforge.net/projects/win32diskimager/files/latest/download

SSH客户端 Putty(远程连入树莓派命令行操作工具):

下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

WinSCP客户端(远程传输文件到树莓派的工具):

下载地址:https://winscp.net/eng/download.php

SD卡格式化工具:

下载地址:https://www.sdcard.org/downloads/formatter_4/

 

 

Raspbian 中国软件源(2018.7.13版)

使用树莓派 Raspbian 系统的中国用户,通常会遇到从官方站更新和安装软件时候速度比较慢的问题,IoT前哨站整理了一些东亚地区速度比较快的软件源供大家使用(如果有不能用的可通知我们剔除,有新的可信的也可以让我们加进去)。

相关镜像站:

浙江大学
http://mirrors.zju.edu.cn/raspbian/raspbian/

中国科学技术大学
http://mirrors.ustc.edu.cn/raspbian/raspbian/

阿里云
http://mirrors.aliyun.com/raspbian/raspbian/

清华大学
http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/

华南农业大学(华南用户)
http://mirrors.scau.edu.cn/raspbian/

大连东软信息学院源(北方用户)
http://mirrors.neusoft.edu.cn/raspbian/raspbian/

重庆大学源(中西部用户)
http://mirrors.cqu.edu.cn/raspbian/raspbian/

新加坡国立大学
http://mirror.nus.edu.sg/raspbian/raspbian

韩国KAIST大学
http://ftp.kaist.ac.kr/raspbian/raspbian/

使用方式:

编辑/etc/apt/sources.list 文件,参考如下命令:

sudo nano /etc/apt/sources.list

如果是 stretch 版本,用以下内容取代(以此类推):

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free

# Uncomment line below then ‘apt-get update’ to enable ‘apt-get source’
#deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi

保存文件后用root权限执行:

apt update即可。

可根据自己的情况选择就近的站点。

 

利用TurniBit开发板DIY一套自动窗帘模拟系统

一、准备工作

TurnipBit 开发板 一块

下载数据线 一条

微型步进电机(28BYJ-48) 一个

步进电机驱动板(ULN2003APG) 一块

光敏传感器 一个

TurnipBit 扩展板 一块

接入网络的电脑 一台

在线可视化编程器

二、步进电机的介绍

本次实验采用的是28BYJ-48 四相八拍电机,电压DC5V~12V。

24BYJ48名称的含义:

24:电机外径24mm

B:步进电机中步字的拼音首字母

Y:永磁中永字的拼音首字母

J:减速的减字拼音首字母

48:四相8步

工作原理

步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。


28BYJ-48 步进电机参数表

上表中启动频率≥550 P.P.S(每秒脉冲数),意思是要想正常启动,需要单片机每秒至少给出550个步进脉冲。那么每一节拍需要持续的时间就是1S/550≈1.8ms,所以控制节拍刷新的速率应大约1.8ms。

驱动原理

当连续不断的给电机发送控制脉冲时,电机就会不断的转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,对应转子就会转过一定的角度(步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。

四相步进电机可以在不同的通电方式下运行,常见的通电方式:

四拍(单相绕组通电):A-B-C-D-A…

双四拍(双相绕组通电):AB-BC-CD-DA-AB-…

八拍: A-AB-B-BC-C-CD-D-DA-A…

三、器件的连接

1、将步进电机白色接头插到驱动板对应的座子上。

2、TurnipBit对应插入扩展板,记住带有LED灯和按键的一面朝向扩展板带有针脚的一侧。

3、将驱动板与TurnipBit扩展板连接起来。接线图如下:

4、将光敏传感器与TurnipBit扩展板连接起来。接线图如下:

四、开始编程

1、之前的教程一直都是使用拖拽可视化编程,这种方式可以快速让零基础小伙伴入门,但是在实际项目或工作中,还是要直接敲代码的。今天就给大家介绍一下TurnipBit的可视化编程器的另一项功能–代码编程。

之前看过编程的小伙伴,不难发现,一打开编辑器首先进入的就是代码编程器界面。如下图:

2、接下来用代码实现对步进电机的控制和光照数据的采集。

当光照变弱时,步进电机顺时针旋转一周,模拟关闭窗帘的操作;

当光照变强时,步进电机逆时针旋转一周,模拟打开窗帘的操作;

完成源代码:

# 在这里添加Python代码
from microbit import *
  Pin_All=[pin5,pin8,pin11,pin12]
  #转速(ms) 数值越大转速越慢 最小值1.8ms
speed=5
  STEPER_ROUND=512 #转动一圈(360度)的周期
ANGLE_PER_ROUND=STEPER_ROUND/360 #转动1度的周期
  isOpen=False#表示窗帘的状态 True:打开 False:关闭
  def SteperWriteData(data):
    count=0
    for i in data:
        Pin_All[count].write_digital(i)
        count+=1
def SteperFrontTurn():
    global speed
    SteperWriteData([1,1,0,0])
    sleep(speed)
      SteperWriteData([0,1,1,0])
    sleep(speed)
      SteperWriteData([0,0,1,1])
    sleep(speed)
    SteperWriteData([1,0,0,1])  
    sleep(speed)
def SteperBackTurn():
    global speed
    SteperWriteData([1,1,0,0])
    sleep(speed)
    SteperWriteData([1,0,0,1])  
    sleep(speed)
    SteperWriteData([0,0,1,1])
    sleep(speed)
      SteperWriteData([0,1,1,0])
    sleep(speed)
  def SteperStop():
    SteperWriteData([0,0,0,0])
def SteperRun(angle):
    global ANGLE_PER_ROUND
      val=ANGLE_PER_ROUND*abs(angle)
    if(angle>0):
        for i in range(0,val):
            SteperFrontTurn()
    else:
        for i in range(0,val):
            SteperBackTurn()
    SteperStop()
while True:
    light=pin0.read_analog()#读取光敏传感器传递过来的模拟量数据
    #数值越大说明光照度越小
    if light>400:
        if isOpen:
            isOpen=False
            SteperRun(-360)#光照小于设定的值,关闭窗帘
    else:
        if isOpen==False:
            isOpen=True
            SteperRun(360)#光照大于设定的值,打开窗帘

* 本文作者:bodasister,来自FreeBuf.COM

怎样为树莓派安装Rust开发包和相关实用软件?

随着软件业的蓬勃发展,越来越多的新技术开始呈现在大家面前。比如Golang和Rust这两门计算机编程语言。

Golang可能大家接触的多一些,毕竟容器和区块链等大量开发者在用。稍晚一年出现的Rust,可能有些朋友不熟悉。

Rust是Mozilla主导开发的注重安全、速度和并发的系统级编程语言,随着Rust的成熟,Mozilla开始尝试用Rust开发Firefox的组件,其中包括核心引擎Servo/Project Quantum。

普通PC和Mac电脑咱们这里就不说了,这里讲讲如何在树莓派上安装Rust开发包和那些没有加入“系统软件库”的Rust软件。

这里还是拿出我的Raspberry Pi Zero W。

在确保网络状态良好的情况下,在命令行执行:

sudo curl https://sh.rustup.rs -sSf | sh

默认安装选1即可,它会自动安装稳定版的Rust for ARM。这里可以看到版本号是1.27.0。

安装成功后可以写个hello world试试是否可以正常编译。

cat > hello.rs << EOF

rustc hello.rs

这个命令可以生成二进制文件直接执行。

从图中我们能看到,树莓派已经可以编译rust程序了。然后我们用cargo这个rust包管理工具来安装一个文件搜索工具 —— fd-find。

执行:cargo install fd-find

下载和编译的过程比较漫长。当然,如果你是高性能PC可以很快。单核ARM的话你就慢慢等吧。

差不多一场世界杯足球赛的耗时,终于编译完成了这个fd-find(我这里用了84分 2.69秒)。

最后就是享受劳动成果了,试试这个由Rust语言开发,传说中可取代“find”命令的小工具吧。

速度快,更简洁,支持正则表达式。还可以和其他Shell命令融合。

欢迎大家和我探讨IoT物联网终端上的开发和应用。

版权声明:本文为“IoT前哨站”原创,转载请注明原文作者和出处。

用树莓派构建一个婴儿监视器

香港很湿热,即便是晚上,许多人为了更舒适,在家里也使用空调。当我的大儿子还是一个小婴儿的时候,他卧室的空调还是需要手动控制的,没有温度自动调节的功能。它的控制器只有开或者关,让空调整个晚上持续运行会导致房间过冷,并且也浪费能源和钱。

我决定使用一个基于树莓派的物联网解决方案去修复这个问题。后来我进一步为它添加了一个婴儿监视器插件。在这篇文章中,我将解释我是如何做的,它的代码在 我的 GitHub 页面上。

设计空调控制器

解决我的问题的第一个部分是使用了一个 Orvibo S20 可通过 WiFi 连接的智能插头和智能手机应用程序。虽然这样可以让我通过远程来控制空调,但是它还是手动处理的,而我希望尝试让它自动化。我在 Instructables 上找到了一个满足我的需求的项目:他使用树莓派从一个AM2302 传感器上测量附近的温度和湿度,并将它们记录到一个 MySQL 数据库中。

使用压接头将温度/湿度传感器连接到树莓派的相应 GPIO 针脚上。幸运的是,AM2302 传感器有一个用于读取的 开源软件,并且同时提供了 Python 示例。

与我的项目放在一起的用于 AM2302 传感器 接口的软件已经更新了,并且我使用的原始代码现在应该已经过时了,停止维护了。这个代码是由一个小的二进制组成,用于连接到传感器以及解释读取并返回正确值的 Python 脚本。

将传感器连接到树莓派,这些 Python 代码能够正确地返回温度和湿度读数。将 Python 连接到 MySQL 数据库很简单,并且也有大量的使用 python-mysql 绑定的代码示例。因为我需要持续地监视温度和湿度,所以我写软件来实现这些。

事实上,最终我用了两个解决方案,一是作为一个持续运行的进程,周期性(一般是间隔一分钟)地获取传感器数据,另一种是让 Python 脚本运行一次然后退出。我决定使用第二种方法,并使用 cron 去每分钟调用一次这个脚本。之所以选择这种方法的主要原因是,(通过循环实现的)持续的脚本偶尔会不返回读数,这将导致尝试读取传感器的进程出现堆积,最终可能会导致系统挂起而缺乏可用资源。

我也找到了可以用程序来控制我的智能插头的一个 Perl 脚本。它是解决这种问题所需的一部分,因此当某些温度/湿度达到触发条件,将触发这个 Perl 脚本。在做了一些测试之后,我决定去设计一个独立的 checking 脚本,从 MySQL 去拉取最新的数据,然后根据返回的值去设置智能开关为开或关。将插头控制逻辑与传感器读取脚本分开,意味着它们是各自独立运行的,就算是传感器读取脚本写的有问题也没事。

配置一个打开/关闭空调的温度值是很有意义的,因此,我将这些值转移到控制脚本读取的配置文件中。我也发现,虽然传感器的值一般都很准确,但是,偶尔也会出现返回不正确读数的情况。这个传感器脚本被修改为不向 MySQL 数据库中写入与前值差异非常大的值。同样也在配置文件中写入了连续读取的温度/湿度之间允许的最大差异值,如果读取的值处于这些限制值以外,这些值写不会提交到数据库中。

虽然,做这个自动调节器似乎花费了很多努力,但是,这意味着,记录到 MySQL 数据库的数据是有效的、可用于进一步去分析识别用户使用模式的有用数据。可以用多种图形方式去展示来自 MySQL 数据库中的数据,而我决定使用 Google Chart 在一个 Web 页面上显示数据。

添加一个婴儿监视摄像头

树莓派开放的性能意味着我可以不断地为它增加功能 —— 并且我有大量的未使用的可用 GPIO 针脚。我的下一个创意是去添加一个摄像头模块,将它放在孩子的卧室中,配置它去监视婴儿。

我需要一个能够在黑暗环境中工作的摄像头,而 Pi Noir 摄像头模块是非常适合这种条件的。Pi Noir 除了没有红外过滤之外,同样也是树莓派常用的摄像头模块。这意味着它在白天时的图像可能有点偏紫色,但是它可以在黑暗中借助红外灯来显示图像。

现在我需要一个红外光源。由于树莓派非常流行,并且进入门槛很低,因此它有大量的外围配件和插件。也有适合它的各种红外光源,我注意到的其中一个是 Bright Pi。它可以从树莓派上供电,并且它很适合为树莓派的摄像头模块提供红外光和普通光。它唯一的缺点是太考验我的焊接技能了。

我的焊接技能还是不错的,但是可能花费的时间比其他人更长。我成功地连接了外壳上所有的红外 LEDs,并将它们连接到树莓派的 GPIO 针脚上。这意味着树莓派能够编程控制红外 LED 是否点亮,以及它的亮度。

通过一个 Web 流去公开捕获的视频也很有意义,因为这样我就可以从 Web 页面上查看温度和湿度的读数图表。进一步研究之后,我选择了一个使用 M-JPEG 捕获器的 流软件。通过 Web 页面公开 JPG 源,我可以在我的智能手机上去连接摄像头查看程序,去查看摄像头的输出。

做最后的修饰

没有哪个树莓派项目都已经完成了还没有为它选择一个合适的外壳,并且它有各种零件。在大量搜索和比较之后,有了一个显然的 赢家:SmartPi 的乐高积木式外壳。乐高的兼容性可以让我去安装温度/湿度传感器和摄像头。下面是最终的成果图:

在这以后,我对我的这个作品作了一些改变和更新:

    • 我将它从树莓派 2 Model B 升级到了树莓派 3,这意味着我可以使用 USB WiFi 模块。
    • 我用一个 TP-Link HS110 智能插头替换了 Orvibo S20。
    • 我也将树莓派插到了一个智能插头上,这样我就可以远程重启/重置它了。
    • 我从树莓派上将 MySQL 数据库移走了,它现在运行在一个 NAS 设备上的容器中。
    • 我增加了一个非常 灵活的三角夹,这样我就可以调整到最佳角度。
    • 我重新编译了 USB WiFi 模块,禁用了板载 LED 指示灯,这就是升级到树莓派 3 的其中一个好处。
    • 我因此为我的第二个孩子设计了另外一个监视器。
    • 因为没有时间去折腾,我为我的第三个孩子购买了夜用摄像头。

想学习更多的东西吗?所有的代码都在 我的 GitHub 页面上。

(https://github.com/jervine/rpi-temp-humid-monitor)

想分享你的树莓派项目吗?将你的故事和创意发送给我们。

via: https://opensource.com/article/18/3/build-baby-monitor-raspberry-pi
作者:Jonathan Ervine 译者:qhwdw 校对:wxy 来自:Linux中国

忘记网络设备或应用的默认密码怎么办?

做物联网的,少不了要跟路由器等各种网络设备、PaaS应用打交道。可是要不小心在工作中忘记设备或应用的默认密码怎么办?那可就耽误事情了。今天就给大家介绍一个小工具 —— Passhunt。

这是一款用于寻找路由器、交换机等网络设备、Web 应用等默认身份凭证的工具。大约能搜索世界各地523个供应商和他们的2084个默认密码。各位可保存好,以备不时之需。

安装:

git clone https://github.com/Viralmaniar/Passhunt.git
cd Passhunt
pip3 install -r requirements.txt
python3 Passhunt.py

使用:

1: 输出支持的设备厂商/Web应用列表。
2: 输入厂商名称并搜索默认的登陆凭据。
3: 退出程序

好了,不用谢。欢迎关注“IoT前哨站”微信和微博。

与树莓派谈共享 —— Windows有现成的NFS客户端?

很多树莓玩家都在用 Winscp 等软件在 Windows 和树莓派之间来回传文件。虽然也能用,但感觉总不像Windows网上邻居的共享那么方便。

如果只跟Windows共享,用Samba倒也可以。如果要让Windows和Linux都能挂载树莓派上的共享区域呢?

其实很多朋友不知道,为了方便跟 Unix/Linux 交互,微软早就在Windows系统里准备了NFS客户端,找到“打开或关闭Windows功能”,将相关工具开启即可使用。

Windows 7及后续版本都支持,不管是服务器版还是桌面版。

步骤如下:首先在远程树莓派上设置好NFS,我的设置和共享目录如图所示。

然后在本地Windows进控制面板,打开“Windows 功能”选项卡,选择相关组件。

功能开启成功后可以对 NFS 客户端进行设置,比如选择TCP协议还是UDP协议。一般我共享视频播放的时候,会选择UDP协议。具体怎么设置请自己考虑。

软挂载和硬挂载的区别:

对硬挂载文件系统来说,如果因为某种原因远程系统的响应失败,比如NFS服务端挂掉等,则NFS客户端将会持续地尝试建立连接,这样可能导致执行df等命令出现挂死的现象。

而对软挂载文件系统来说,同样情况下,在指定的时间间隔后NFS客户端将会放弃尝试建立连接而发送一个错误消息。

默认采用硬挂载文件系统,系统硬挂载尝试失败时,对用户输入的响应也会停止。正是因为这样,有的用户更喜欢采用软挂载,它会使系统在尝试挂载失败后停止尝试。

设置完成后,可以用以下命令进行挂载树莓派上的目录,映射到本地的X盘。

挂载成功后,你会看到Windows系统中多了一个X盘符,点进去会发现树莓派共享出来的目录。

下命从X盘拷贝一个视频到桌面看看,内网速度1.16MB/秒。还凑合。当然,你也可以往里面粘贴文件,读写均可,跟网上邻居一样好用。

本文来自“IoT前哨站”,转载请注明出处。

用 Adafruit 和 树莓派 读取 DHT11 温湿度传感器

DHT11 温湿度传感器尽管不是使用效率最高的温湿度传感器,但价格便宜被广泛应用。之前我们介绍了用树莓派从 DHT11 温度湿度传感器读取数据的教程,其原理理解起来较为复杂,下面我们介绍另一种基于Adafruit DHT 库读取 DHT11 数据的方法。

DHT11 规格

DHT11 有四个引脚,但是其中一个没有被使用到。所有有的模块会简化成3个引脚。

湿度检测范围 : 20-80% (5% 精度)
温度检测范围 : 0-50°C (±2°C 精度)

该厂商不建议读取频率小于2秒,如果这么做数据可能会有误。

硬件连接

需要在电源和数据脚之间串联一个上拉电阻(4.7K-10K),通常情况下,购买DHT11模块的话都自带了这个电阻。不同的模块型号引脚位置略有不同,下面以图上模块为说明:

数据引脚可以根据你的需要自行修改。

Python 库

DHT11 的读取需要遵循特定的信号协议完成,为了方便我们使用Adafruit DHT 库。

软件安装

开始之前需要更新软件包:

sudo apt-get update
sudo apt-get install build-essential python-dev

从 GitHub 获取 Adafruit 库:

sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT

给 Python 2 和 Python 3 安装该库:

sudo python setup.py install
sudo python3 setup.py install

示例程序
Adafruit 提供了示例程序,运行下面的命令测试。

cd ~
cd Adafruit_Python_DHT
cd examples
python AdafruitDHT.py 11 17

这两个参数分别表示 DHT11 和数据引脚所接的树莓派 GPIO 编号。成功的话会输出:

Temp=22.0* Humidity=68.0%

如何在其他 Python 程序中使用这个库
参照下面的方法引入 Adafruit 库,然后就可以使用 “read_retry” 方法来读取 DHT11 的数据了:

import Adafruit_DHT

# Set sensor type : Options are DHT11,DHT22 or AM2302
sensor=Adafruit_DHT.DHT11

# Set GPIO sensor is connected to
gpio=17

# Use read_retry method. This will retry up to 15 times to
# get a sensor reading (waiting 2 seconds between each retry).
humidity, temperature = Adafruit_DHT.read_retry(sensor, gpio)

# Reading the DHT11 is very sensitive to timings and occasionally
# the Pi might fail to get a valid reading. So check if readings are valid.
if humidity is not None and temperature is not None:
    print(‘Temp={0:0.1f}*C Humidity={1:0.1f}%’.format(temperature, humidity))
else:
    print(‘Failed to get reading. Try again!’)

另外,温度传感器还有 DS18B20,这个传感器虽然没有湿度数据,但是其易用且稳定,有兴趣的朋友可以进一步了解。

来自:树莓派实验室

用Ngrok穿透防火墙访问内网的树莓派

通常在公网要访问一台内网的设备,比内网互相访问要麻烦。原因不一定是防火墙阻碍,而是内网设备一般都没有公网IP。

那你想用家里的电脑访问办公室电脑中的文件或其他资料的话该怎么办?我们是否有一些高效的办法来访问路由器或防火墙背后的联网设备?

大家可能会想出改路由规则、配置防火墙等等方法。但是很多公司的路由和防火墙是不允许普通员工登陆调试的。

这里要介绍一个叫做Ngrok的服务,它几乎允许我们跨网络(LAN/WAN)连接任意设备。

假设我们要从外网访问内网一个树莓派的SSH服务,我们需要先拥有一个Ngrok网站的一个帐号,然后为树莓派下载正确的Ngrok程序,执行相关命令,就可以获得一个公网地址了。

具体操作如下:

1、访问 https://dashboard.ngrok.com/user/signup 并注册帐号。

完成账号注册后,你会得到一个令牌字符串,你等会需要使用这个字符串来认证你的树莓派。

2、部署Ngrok

让你的树莓派下载Ngrok:

wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip

解压,得到一个名叫“ngrok”的文件。

3、让树莓派先做一下认证。

./ngrok authtoken 你得到的令牌字符串

4、运行Ngrok,把树莓派的SSH服务映射到公网。

./ngrok tcp 22

现在,你将会看到如下所示的信息:

上图表示,TCP 连接到“0.tcp.ngrok.io:12119”的访问都将指向我这个树莓派的22端口。

5、用Putty登录0.tcp.ngrok.io,看看是否可以从公网访问树莓了。

OK,搞定了。快试试网速怎么样。

注:如果要固定访问地址,需要额外付费。如果只是临时用用,免费版的足够。有任何问题和建议欢迎给“IoT前哨站”微博或微信公众号留言。

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

这一款EyeTap智能眼镜,使用3D打印组件,内置光学微型显示器,微型摄像头和带wifi功能的树莓派Zero W。具有电子记录功能(类似车载记录仪)和快照功能。

以下是项目团队对该项目的说明。

欢迎各位了解Open EyeTap项目!我们是一个具有雄心壮志的创作团队,致力于打造世界上最灵活的智能眼镜和可穿戴增强现实的社区。我们希望提供一个框架使AR技术可以蓬勃发展。我们希望与世界各地的设计师分享我们的EyeTap。作为一个社区,我们可以共同改进这种开源技术。

我们在这个项目中的主要目标是简化EyeTap的构建。我们希望它能帮助您建立自己的体系和减少进入AR领域的障碍。也希望你会找到有趣的功能和设计(也许是符合你生活方式的特定功能),都可以添加和分享到我们的网站:openeyetap.com!我们相信,作为一个社区,我们都可以成为开发第一波开源增强现实式眼镜不可或缺的有力臂膀。

下面我们详细介绍这款造价不到200美元的EyeTap的DIY步骤,你就可以打造同款了。简而言之,我们将使用3D打印组件,内置光学微型显示屏,微型摄像头和带wifi功能的树莓派 Zero W。我们目前开发了一种可以用EyeTap运行的电子记录功能(类似车载记录仪),更多其他模块和功能即将推出。

功能1:记录功能(Dash-camera)+ 快照功能

1、按下#1时,可拍摄照片。
2、按下#2时,可视频拍摄。按下按钮可保存1分30秒前的画面和后30秒的画面。如果连接到无线网络,将自动上传到你的YouTube频道。如果你的EyeTap未连接到WiFi,则保存到本地SD卡。

什么是记录功能?

车载摄像头在汽车中很常见,可以记录事故或异常事件。它们在循环缓冲区中运行,不断记录和覆盖旧的影像资料。在类似的运行基础上,我们可以从自己的视角拥有个人的视频纪录。如果你目睹或卷入任何意外事件,或着是想记录有趣或难忘的时刻,都可以按下按钮保存纪录。

当按下按钮#2时,最近的1分30秒,和按下按钮30秒后都将记录并保存为一个视频文件。如果连接到无线网络,这将自动上传到你的YouTube频道,如没有连接WiFi的情况下,则会本地保存。

步骤1:项目所需材料

需要3D打印部件(项目文件库中包含STL文件)

1x 3D打印头架
1x 3D打印左耳机
1x 3D打印右耳机
1x 3D打印鼻夹
1x 3D打印树莓派zero外壳
1x 3D打印树莓派zero盖子
1个3D打印的微型屏幕外壳
1个3D印刷的微型屏幕电路外壳

你可以选择水平或垂直的版本。本项目中,我们将使用水平版本,尽管照片中显示的是垂直的。

所需的电子和机械零件

树莓派Zero W × 1
微型显示屏 × 1
微型摄像头 × 1
微型摄像头Flex适配器 × 1
微型摄像头连接到树莓派的软排线 × 1
鼻夹片和1.5mm螺丝 × 1
分光镜 × 1
35cm电线 × 4
15cm电线 × 4
按钮 × 2

所需的工具

16mm M2螺丝 × 8
14mm M2螺丝 × 2
12mm M2螺丝 × 4
10mm M2螺丝 × 1
8mm M2螺丝 × 3
1.5mm螺丝用于固定鼻夹 × 1
螺丝刀 × 1
钳子 × 1
焊接用具 × 1
热熔胶 × 1

步骤2:3D打印EyeTap部件

如果你可以在家中,学校或附近的公共图书馆使用任何类型的3D打印机,则可以下载本项目文件库中的STL文件并自行打印部件。

如何成功3D打印部件,这里可以提供一些技巧。

1、100%填充所有部件,特别是头部带状框架,20%的填充物太脆弱,不适合玩耍。
2、如果打印正确,则不需要支撑材料的部件有:头部框架、微型显示屏、电路外壳、树莓派外壳和盖子。
3、需要支撑材料的部件有:耳塞,显示器外壳,鼻托支架。

步骤3:组装EyeTap框架

1、打印好组件后,先卸下支撑材料。多余的材料可以用在耳机支架和微型显示屏外壳上。
2、将右耳机滑动到头部框架上,组装EyeTap架。
3、从末端数起,听筒应位于第二个凹槽。
4、听筒应朝使用者头部内侧弯曲。使用两颗螺钉(M2x16mm)和螺母将听筒固定在头框上。重复使用左听筒。

步骤4:组装微型显示屏

1、将M2x8mm螺钉嵌入微型显示屏组件的中心部分。
2、将微型显示屏装入3D打印的微型显示屏外壳中。微型显示屏的两个突出接口应该插入外壳内,插入时稍许用点力。
3、将电路板固定在3D打印的电路板外壳中。让黄色部分自然弯曲在外壳的底部。之后,用螺丝将电路板外壳固定在微型显示屏外壳上。
4、使用三个螺钉(两个M2x8mm和一个M2x10mm),将分束器固定到微型显示屏模块上。
5、使用两个M2x12mm螺丝将模块固定在EyeTap头框上。

步骤5:组装鼻托模块

1、将金属鼻托插入3D打印的鼻托支架中,用螺丝固定。
2、将两个鼻片插入金属鼻托,并用螺丝拧紧。
3、在所有硬件连接并集成到框架上之前,请先不要固定鼻托模块。接线完成后,将鼻托放在EyeTap头框上并用M2x12mm螺丝固定。鼻托部件突出于头部框架,朝着使用者的方向安装。

步骤6:使用微型摄像头构建树莓派模块

如图所示,连接软排线,带电线PCB板、微型摄像头和树莓派。确保树莓派和PCB板两端的蓝色面朝上。确保微型摄影机排线的银色面朝上。

步骤7:将微型显示屏连接到树莓派Zero W

1、微型显示屏附带的连接器总共有7根导线,其中只使用4根。如图所示,每端使用2根电线,并将其他3根电线切断。
2、每根导线都有颜色编码,并具有以下功能。
红线:电源
黑线:地线
白线:另一个地线
橙线:视频传送线
3、同样你还需要准备4根35cm长的黑色导线。你可以先放弃3根,或以备留用。这4根黑色导线将用于将树莓派连接到微型显示屏的连接器上。
4、将四根彩色导线焊接到35cm长的四根黑色导线上。
5、如图所示将四根黑色导线焊接到树莓派。
6、将微型显示屏的连接器插入到微型显示屏,并将黑色导线穿过头部框架内侧并返回到树莓派。框架内侧的标签用于容纳和保护电线。
7、将树莓派放入它的机箱内。

步骤8:将按钮连接到树莓派Zero W

1、 两个按钮将连接到树莓派,其中一个(#1)用于“拍照功能”,另一个(#2)用于“Dash-Cam视频功能+ YouTube上传功能”。
2、准备两个按钮,两个10k电阻和四根15cm长的电线。
3、 按原理图所示连接按钮。按钮#1连接到GPIO 17,接地用于图片功能。按钮#2连接到GPIO 18,接地用于Dash-Cam功能。
4、图片中包含树莓派Zero GPIO图。黄色突出部分是使用部分,标出以供参考。

步骤9:集成硬件和其他机械零件

1、将树莓派Zero W插入3D打印的树莓排机箱中。确保按路线安装好微型显示屏的连接器,将按钮置焊接到树莓排外壳上。
2、将电线安装在头部框架的内侧,一直延伸到微型显示屏。
3、将连接器插入微型显示屏电路板。现在连接树莓派,以便屏幕显示输出。
4、将树莓派机箱固定在头部框架的左侧末端。
5、将微型摄像机安置在头部框架外表面。用强力胶将微型摄像机粘到EyeTap的主框架上。它应该位于用户鼻子的上方,与用户眼睛的朝向相同。
6、在树莓派机箱内轻轻折叠微型摄像机。用树莓派机箱上的4个M2螺丝将树莓派机箱盖固定在机箱上。
7、用热熔胶固定好两个按钮。

EyeTap的组装工作已完成

所有硬件组件都符合人体工程学的机械装配,现均已正确连接。唯一缺少的组件是软件。此时,如果你知道如何使用树莓派和Python,那么你已经完全有能力编写自己的所要的功能。线上有丰富的资源和无限想法,这正是我们最终建立自己的Wearable AR社区的原因,我们可以共享自己的新项目供其他人试用。但是,如果你想测试我们现有的程序,请参阅接下来的2个步骤!

步骤10:软件#1 纪录功能(dashcam) +快照功能

你下载和“即插即用”的第一个选项是记录功能(dashcam) +快照功能。你可以使用预先配置好了的Raspbian系统镜像。

自动执行程序

提供的图像具有设置为自动启动dashcam的功能——在任何时候按下ctrl + c可终止此过程,并禁止自动删除或编写/home/pi/.bashrc file ”中的“python /home/pi/Eyetap/dashcam/dashcam.py”。

在dashcam文件夹中提供了一个名为autostart.sh的脚本,该文件夹可自动设置为自动启动dashcam功能(如果它尚未设置为自动启动)。

通过运行命令/home/pi/Eyetap/dashcam/autostart.sh来执行此操作。

将EyeTap连接到你的YouTube频道

dashcam代码被设置为自动上传到YouTube,但它需要你的个人YouTube账号。当第一次运行代码时,它应该通过网页浏览器将你重定向到YouTube,你可以安全地输入你的YouTube登录账号。然后它会生成一个.youtube-upload-credentials.json文件,你可以将其放在你的主目录(/home/pi)中。你还可以更改上传视频的标题和说明以及代码中所述的分辨率,帧率和视频长度等参数。

步骤11:启动EyeTap!

完成SD卡设置后,将其插入树莓派Zero W。为EyeTap提供电源,连接电源——将Micro-USB插入树莓派Zero W上,将USB连接到便携式电池(任何可连接到手机充电器的便携式电池都可以)。将便携式电池放入你的口袋中,在EyeTap运行时可随身移动!

本项目所需的资源可在项目文件库中找到:
http://maker.quwj.com/project/45

来自:树莓派实验室