[原创] 在Ubuntu上使用GParted来调整树莓派TF卡的分区大小

转载请注明出处:https://www.codelast.com/

OS:Ubuntu 14.04 LTS

树莓派的操作系统存储在一张TF卡中,如果我们要备份它,只需要简单地在Ubuntu上使用如下命令即可:

sudo dd if=/dev/sdb of=~/raspberry_pi_os_backup

其中,/dev/sdb 是我的TF卡的设备名称。这样我们就可以把TF卡备份到 raspberry_pi_os_backup 这个文件中了。… Read More

[原创] 在树莓派上跑起来TensorBoard

转载请注明出处:http://www.codelast.com/

本文软硬件环境:
树莓派:3代 Model B V1.2
OS:Arch Linux ARM,32bit

TensorBoard是Tensorflow的可视化工具。当我们用这篇文章里的方法在树莓派上安装好Tensorflow之后,TensorBoard自然就装好了。于是,下面只剩下怎么启动它的问题。
以下是一个例子。… Read More

[原创] 在树莓派上把文字转成语音(Text-To-Speech/TTS)

转载请注明出处:http://www.codelast.com/

本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM

有时候,我们需要在程序中添加文字转语音的功能,即通过某个程序或API,把输入的文字朗读出来,也就是通常所说的 text-to-speech(简写为TTS)。我尝试了一个简单的方案——使用Espeak来完成这个任务,在这里记录下来。… Read More

[原创] 加快TensorFlow在树莓派上的执行速度——服务常驻内存

转载请注明出处:http://www.codelast.com/

本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM

上一篇文章中,我尝试了加快TensorFlow预测速度的一个方法——模型“预热”,实验证明它非常有效,但那仍然没有解决一个问题:每次运行程序,都要加载一次模型,然后预热N次,这个过程非常耗时,因此减少这部分时间也是非常关键的。把TensorFlow做成一个常驻内存的服务就可以解决这个问题。
解决这个问题的正确姿势是:TensorFlow已经提供了一个叫作 TensorFlow Serving 的library来实现这个需求。但麻烦的是,在树莓派上编译TensorFlow Serving会遇到很多问题,所以,在没有人搞出在树莓派上一键安装的Python wheel包之前,还是算了吧...
因此,下面我用一个很挫的办法来实现一个简陋的TensorFlow service。… Read More

[原创] 加快TensorFlow在树莓派上的执行速度——模型预热

转载请注明出处:http://www.codelast.com/

本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM

上一篇文章中,我写了在树莓派上用TensorFlow做的一个深度学习(图像识别)实验,但正如文中所说,50秒执行一次预测的实用性为0。因此,有必要采取一些措施来加快TensorFlow的执行速度,其中一个可行的方法就是“预热”(warm-up),把TensorFlow移植到树莓派上的作者Sam Abrahams已经比较详细地在GitHub上列出了性能测试的结果。依照作者的描述,我也测试了一下,看看那悲催的50秒时间能减少到多少秒。… Read More

[原创] 在树莓派上用TensorFlow玩深度学习(Deep Learning)

转载请注明出处:http://www.codelast.com/

本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM

深度学习(Deep Learning)现在这么火,树莓派玩家们当然也不会放过,目前已经有很多树莓派项目都搭上了Deep Learning的车,纯粹出于“好玩”的目的,我在树莓派上也实验了一把,用TensorFlow来识别一张图片里的物体“是什么”。… Read More

[原创] 在树莓派上使用触摸开关(touch switch)

转载请注明出处:http://www.codelast.com/

触摸开关/触摸传感器/轻触开关,是一种通过轻触就可以实现开关的电子器件,生活中随处可见,很多家用电器的操控界面都是触摸开关。
本文中的触摸开关,是在树莓派OS运行的情况下,用来触发某个动作(例如,触摸的时候控制摄像头拍照)。… Read More

[原创] 树莓派项目实践——可用 web 控制的人体感应小夜灯

转载请注明出处:http://www.codelast.com/

A time-controllable human sense light based on Raspberry Pi, which has a web UI to control it.
一个基于树莓派的、(开关)时间可控的人体感应灯,可以通过一个web UI界面开灯、关灯,以及设置成自动模式(在感应到人接近的时候自动点亮灯),并且可以设置自动模式的工作时间段。
这个设备已经放在我家里稳定地运行了很久了,很实用。
 

源代码在Github上,极客学院上有我录制的教程。… Read More

[原创] 为树莓派添加 DS1302 实时时钟(硬件时钟)/ Add a DS1302 RTC for RPi

转载请注明出处:http://www.codelast.com/

『1』软硬件环境
本文适用于:
Raspberry Pi:Model B/B+(已测),其他型号理论上也可以,只不过可能要修改一下后面说到的shell脚本中的端口号
OS:Arch Linux ARM

『2』实时时钟与树莓派的关系
树莓派为了节约成本以及减小体积,没有板载的实时时钟(real-time clockRTC),或者叫硬件时钟,因此,如果你没有配置过树莓派自动从网络同步时间的话,或者就算你配置好了自动从网络同步时间、但没有网络可用的话,那么,你设置好的系统时间,在重启树莓派之后就会丢失。而我们家用的电脑之所以在开机之后时间仍然正确,是因为电脑主板上有实时时钟。… Read More

[原创] 树莓派视频教程

转载请注明出处:http://www.codelast.com/

我为极客学院录制了一个系列的树莓派视频教程,总共有6节大课。
该系列课程内容是基于树莓派Model B+型号的,而本站里我以前写过的很多树莓派文章是基于树莓派Model B型号(较老)的,因此,我录制的这些课程内容更“新”一些,适合于初学者学习。
由于是商业用途的课程,所以极客学院只把每节大课的第一课时设置为可以免费观看的,并且由于有协议约束,我也不能把教学视频发布到其他任何一个网站上,在这里我要向大家说抱歉,希望大家能支持极客学院。
但是,作为一个知识共享的拥护者,我希望每个人都能得到尽可能多的知识,因此,如果有时间的话,我会在本站写一些类似的技术文章出来。并且,本系列教程中的所有代码,都上传到了Github,你可以到这里下载。… Read More

[原创]在Raspberry Pi(树莓派)上调用V4L2来操纵摄像头拍照/Use V4L2 on Raspberry Pi to Controll a Webcam to Grab Images

转载请注明出处:http://www.codelast.com/

Raspberry Pi是什么?
引用维基百科的一句话:

The Raspberry Pi is a credit card sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of stimulating the teaching of basic computer science in schools.

简单地说,它就是一个基于ARM CPU的、信用卡那么大的迷你计算机。

我曾经写过一篇教程,展示了如何调用OpenCV,来控制摄像头拍照。在那篇文章的末尾,我提到了一个遗留问题,即把抓取图像的尺寸设置得稍高一点的时候,那个程序就很容易崩溃;在图像尺寸设置得很低的时候,有时候也会崩溃,我一直没弄明白为什么。
但是在前段时间,由于参赛原因,被迫在很短的时间内解决这个棘手的问题。真可谓是搜了无数网页,最后采取了一种折衷的方式“在很大程度上”解决了这个问题——毕竟还不完美。… Read More

[原创] 让树莓派自动上报IP地址到邮箱/Let Raspberry Pi to report its IP address via Email

转载请注明出处:http://www.codelast.com/

Raspberry Pi是什么?
引用维基百科的一句话:

The Raspberry Pi is a credit card sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of stimulating the teaching of basic computer science in schools.

简单地说,它就是一个基于ARM CPU的、信用卡那么大的迷你计算机。

由于我使用树莓派的场景大多数是在没有显示器、只用terminal连接它的情况下,所以,它的IP地址有时会在重启之后变掉(DHCP的),导致我无法通过terminal连接上它。然后我又要很麻烦地登录路由器的管理界面里,去看它被分配到的新IP是什么,然后用terminal重连,太麻烦了,不是么?作为一个树莓派玩家,这种麻烦简直是无法接受的!… Read More