能快速打造IoT设备的Ubuntu Appliance来了

最近Ubuntu官方公布了一个名为Appliance的服务,可以把你的PC或树莓派变成一个安全稳定的专用设备。

按照官方的说法,这是一种软件定义的IoT设备,系统层是Ubuntu Core,你不但可以在上面跑应用,还可以通过Ubuntu给你的设备构建安全防护并保持最新状态。

网址:http://ubuntu.com/appliance

该产品的使命是让你能够快速打造自己的高安全,自更新,单用途设备。

目前Ubuntu Appliance的官方页面已经有几个知名项目的镜像推介,大家可以尝个鲜什么的。

官方推介的五个项目:

  • Plex Media Server除了流媒体服务功能以外,还可以帮你存储分类影音文件,分析影片的信息从而从IMDB等数据库补全影片介绍等信息,进行索引以方便搜索。
  • Mosquitto是一个轻量级的开源MQTT消息代理,可在低功耗单板计算机到大型工业级服务器在内的所有设备上使用。
  • OpenHAB全称Open Home Automation Bus,开放式家庭自动化总线,该项目旨在为家庭自动化构建提供一个通用的集成平台。实现最灵活的智能家居控制,几乎可以连接到市面上所有的家庭自动化硬件。
  • AdGuard Home可以阻止烦人的横幅广告,弹出式窗口和视频广告,从而使网上冲浪更快,更安全,更舒适。
  • NextCloud是一个本地内容协作平台,允许用户在家中或办公室托管自己的私有云。

使用方法很简单:找到对应的硬件架构,选择对应的镜像,下载刷入即可。

如果大家有什么意见或建议,可以通过官方讨论组向他们递交。也欢迎大家加入“IoT前哨站”QQ群讨论:IoT前哨站1群:15992627;IoT前哨站2群:17163000。

小技巧:树莓派花式截屏

当你在树莓派上做了一个很棒的项目,自然会想和其他人分享。但是咋个显摆呐?

一图胜过万语,不管你是写教程还是分享项目进展,图片肯定能让其他人更容易理解你在做什么。

我经常看到有些兄弟拿起手机对着屏幕拍视频,拍照片。

但如果屏幕刷新率不够,拍出来常会有一黑一白的横向条纹,颇煞风景。

这次我就和大家分享一下如何在树莓派上花式截屏。

一、内置Scrot命令

步骤-01 使用Scrot

截图最简单的方法是使用 Scrot 这个是系统自带的,所以你不需要安装任何东西。点击键盘上的PrtSc(打印屏幕)键,听到“咔嚓”一声整个屏幕就截图下来了,截图文件可以在“文件管理器”里面找到,直接双击以日期开头的.png文件就可以打开咯。

步骤-02 延时截屏

在终端中使用键入Scrot 然后回车,Scrot就把整个屏幕截图下来了(包括终端窗口)。如果要捕获没有终端窗口的屏幕可以设置延时(然后关闭终端窗口)。

输入scrot -d 4然后回车,Scrot将在截屏之前延迟4秒。

一般来说4秒有足够的时间关闭终端了,如果关的窗口或者结束其他的进程比较多,请添加较长的时间。

二、安装一个名为GNOME Screenshot的截图软件

步骤-01 安装GNOME截屏软件

在树莓派联网状态下,打开终端输入:

sudo apt update && sudo apt upgrade

sudo apt install gnome-screenshot

选择 Y 继续,直至安装完成。

步骤-02 GNOME截屏

Gnome-screenshot提供了一个用于截图的界面和一些额外功能。可以在“功能表>附件>屏幕截图”中找到它。点击截图,操作界面消失,听到“咔嚓”截屏成功!

与Scrot不一样的是,Screenshot提供截屏预览,且会出现重命名以及询问保存路径的对话框。

步骤-03 区域截图

可以选择“Select area to grab”然后单击“Take Screenshot”,GNOME屏幕截图界面将消失。

是否选择区域截图

现在点击并拖动你想要截取区域的选框(在这个例子中是桌面上的四个图标),GNOME Screenshot将只截取鼠标画框的那一部分屏幕。

步骤-04 窗口截屏

还一个更有效的方法是抓取单个窗口。可以添加5毛特例如放置阴影和边框使其突出等等。

选择“Grab the current window”单选按钮,然后从“Apply effect”窗口中选择“Drop shadow”。确保要捕获的窗口高亮显示,然后单击“Take screenshot”保存具有阴影效果的窗口图像。

来几个系统自带的游戏截图得瑟一下,分别是三种5毛特效。

小白兔过马路-阴影
坦克大战-复古
黑白棋-边框突出

怎么样,还有点意思吧?

来自:IoT前哨站

作者:智慧房车锂途小窝

八年无人干预的蜂巢健康监测系统

用技术更好的感知世界,一直是大家追求的目标。

大学毕业后,Glyn Hudson一直忙着创业,成立了一家名叫OpenEnergyMonitor的能源监测公司。

在威尔士的斯诺登尼亚,他接触到几个蜂箱,每年可生产12至15公斤蜂蜜。

作为变温动物,蜜蜂的体温会随着气温而变化。因此,温度是影响蜜蜂生活的重要因素之一。

怎样才能时刻获知蜜蜂当前的生活环境是否适宜?蜂箱里会不会太潮?温度会不会太热?

Glyn打算通过获悉蜂箱内外的温度和湿度,构建一个监测蜂群健康的系统 —— BeeMonitor。

格林(Glyn)在检查BeeMonitor装置
既要监测蜂巢内部的温湿度,也要监测核心温度、周边温湿度、蜂巢外部的温湿度,然后进行比较。
电子组件连接示意图

Glyn解释说:“蜜蜂需要获得更好的帮助和关爱,如果没有它们给植物授粉,我们将很难种庄稼。

为了保持健康的育雏温度,我们要让蜂巢保持33.5-34.5度,而这一温度也是菌落健康的关键指标。”

没有Wi-Fi怎么办

BeeMonitor这套系统在2012年就开始跟踪蜂群的状态,也是Raspberry Pi最早的成功案例子之一。

Glyn自己为BeeMonitor做了大部分工作,而之前为OpenEnergyMonitor项目开发的软件提供了可以在线查看数据记录和图表的平台。

穿着防护服的观众参观 BeeMonitor 蜂箱

蜂箱距离房屋太远,无法通过Wi-Fi传输。因此Glyn装了一个低功耗的RF发射器,该发射器连到蜂巢内部的Arduino,以便进行读数。然后再由远端的Raspberry Pi和另外一个Arduino接收。

该装置的远端部分包括了Arduino,RF接收器,USB电缆和树莓派

这些数据被保存到SD卡,明显的缺点是它不显示实时数据读数。在最初的设定中,Glyn还必须亲自提取和分析CSV数据。

他说:“这非常耗时,但确实产生了一些有趣的数据。”

传感器的取舍

BeeMonitor成功运转后,Glyn意识到数据在Internet上实时传输会更好。这样一来,他就可以从任何地方查看实时的蜂箱数据,还可以让其他人参与其中。

最初,蜂箱内部有一个DS18B20温度传感器和一个DHT22湿度传感器。但Glyn后来决定放弃DHT22湿度传感器。

相关设置方式:

https://learn.openenergymonitor.org/electricity-monitoring/temperature/DS18B20-temperature-sensing

“它消耗了很多电量,而蜜蜂还不喜欢它,一直在用蜂蜡覆盖湿度传感器!奇怪的是,蜜蜂似乎并不介意DS218B20温度传感器,大概是因为与DHT22的塑料格栅相比,温度传感器是圆形的金属物体,” Glyn指出。

与湿度传感器不同,蜜蜂似乎不在乎温度传感器的探头

该系统由一个旧的汽车电池和一个小的太阳能电池板供电,运营成本可以忽略不计。

目前已稳定运行八年,几乎不用人工干预。

“Raspberry Pi非常适合在低功耗状态下可靠地运行此类项目。”Glyn说。

他之所以选择树莓派,是因为硬件背后繁荣的社区。以及有竞争力的价格 —— 整个装置花了他大约50英镑。

相关代码地址:

https://github.com/glynhudson/BeeMonV2

Glyn告诉我们,(如果不考虑联网)仅用树莓派,DS28B20温度传感器,电池组和太阳能电池板结合,就足以打造一个基本的蜂巢监测器。

来源:Raspberrypi.org

编译:王文文

树莓派音乐盒,让你像DJ一样玩音乐

用按钮来控制LED灯,是树莓派比较经典的一种应用。

那用按钮来控制音乐呢?

我们这次的任务是做个树莓派音乐盒,以便你能像DJ一样,通过它不停的切换和调整音乐。

硬件需求:

  • 树莓派1个
  • 面包板1个
  • 接触式开关4个
  • 公对母跳线5根
  • 母对母跳线4根
  • 扬声器或耳机1个

软件需求:

Raspbian 最新版

制作过程:

先找到你想播放的音频文件,如果你自己没有什么准备,可以在Raspbian系统的/usr/share/sonic-pi/samples目录中找一些示例音乐。

不过你要用Python播放声音的话,得将里面的.flac文件转换为.wav文件。

批量转换命令:

for f in *.flac; do ffmpeg -i "$f" "${f%.flac}.wav"; done

如果没出错,你现在应该得到大量的wav文件了。

挑出四个备用,对应4个按钮。将其保存在gpio-music-box目录中

drum_tom_mid_hard.wav
drum_cymbal_hard.wav
drum_snare_hard.wav
drum_cowbell.wav

电路最基本的接法:

当然,用面包板会让你更方便。

示例程序中有四个按钮,所以我们要分别接入GPIO4、10、17、27四个口。

接下来开始撸代码。

import pygame
from gpiozero import Button

pygame.init()

drum = pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_tom_mid_hard.wav")
cymbal = pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_cymbal_hard.wav")
snare = pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_snare_hard.wav")
bell = pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_cowbell.wav")

btn_drum = Button(4)
btn_cymbal = Button(17)
btn_snare= Button(27)
btn_bell = Button(10)

btn_drum.when_pressed = drum.play
btn_cymbal.when_pressed = cymbal.play
btn_snare.when_pressed = snare.play
btn_bell.when_pressed = bell.play

以上的代码应该能正常工作,但不够简洁优雅,我们用Python的字典功能来优化一下。

创建一个字典。

button_sounds = {Button(4): pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_tom_mid_hard.wav"),
                 Button(17): pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_cymbal_hard.wav"),
                 Button(27): pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_snare_hard.wav"),
                 Button(10): pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_cowbell.wav")}

然后用Button作为键,Sound作为值。

优化后的代码:

import pygame
from gpiozero import Button

pygame.init()

button_sounds = {Button(4): pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_tom_mid_hard.wav"),
                 Button(17): pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_cymbal_hard.wav"),
                 Button(27): pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_snare_hard.wav"),
                 Button(10): pygame.mixer.Sound("/home/pi/gpio-music-box/samples/drum_cowbell.wav")}

for button, sound in button_sounds.items():
    button.when_pressed = sound.play

是不是简洁多了?

好了,拿去玩吧。

视频讲解地址:

https://v.qq.com/x/page/x0967xsxe7j.html

线索:Raspberrypi.org

编译:王文文

你能不损失数百万美元成功登月吗?

对航空知识有兴趣的朋友都知道,飞行器在月球软着陆不是一件容易的事情。

即使在刚刚过去的2019年,印度也没能成功实现该技术,承载着希望的“月船2号”着陆器在距离月球表面2.1公里的时候失去了信号,从此不知所踪。

迄今为止,只有中美俄三个国家实现了月球软着陆。

印度“月船2号”着陆器失联前的直播画面

在阿波罗11号登月十周年纪念日的时候,阿塔里(Atari)公司曾经出了一款名叫“Lunar Lander”的投币式街机游戏。

游戏的玩法是通过方向调整和推力控制来引导你的着陆器,将其轻轻地放到安全而平坦的停靠区。如果玩家能将着陆器成功停放在更具挑战的险峻区域,将获得额外的积分。

街机的版本是有操纵杆的,玩家可以用其控制方向和大小不同的推力,并以屏幕顶部的海拔,水平速度和垂直速度为指导,在燃料有限的情况下按时降落飞船。

游戏内置了四个难度级别,分别调整了着陆控制器和着陆区域,玩家需要凭借高超的技巧才能涉险过关。

我们这次用Pygame Zero来简单还原一下这款游戏,如果你不打算外接操纵杆,用键盘操作也可以。

构思

首先用绘制好的静态背景替换矢量图形,并将其用作碰撞检测和高度统计。

如果我们的背景是着陆器可以飞行的黑色背景,而着陆区所在的地方是另一种颜色,那么我们可以使用Pygame的image.get_at()函数来测试像素点是否在着陆位置。

我们还可以检测着陆器沿Y轴向下的像素线,直到抵达着陆区,这将让我们获悉着陆器当前的高度。

着陆器的控制非常简单,因为我们可以捕获左右箭头键来增加或减少着陆器的旋转角度。

然而当施加推力(通过按向上箭头)时,事情会变得有些复杂。我们需要记住推力来自哪个方向,让飞船即使打转也将继续沿该方向运动。所以我们在着陆器对象上附加了direction属性。对着陆器的位置施加一点重力,然后我们只需要一点三角函数的知识即可根据着陆器的速度和行进方向算出其运动轨迹。

要判断着陆器安全着陆还是在月球表面撞坏,我们要观察其到达高度1时,飞行器的下降速度和角度。

如果速度足够慢且角度接近垂直,则我们触发着陆成功的消息,游戏结束。

如果着陆器在没有满足这些条件的情况下达到零高度,则我们将判定坠机事故。

有兴趣的话,你还可以在此基础上添加一个有限的燃料表和可变的难度级别之类的东西。甚至可以尝试添加原始街机游戏中火箭助推器噪音的声音。

要点:

推力方位的改变可以有多种方法完成。在本例中我们简单一点,一个方向被施加推力,它就逐渐往那个方向移动,直到新的方向出现推力。你可以尝试对其进行X轴和Y轴方向计算,以获得结合点的坐标值。还可以添加操纵杆控制,提供可变的推力。

以下是核心代码段:

接下来看看效果:

视频:https://v.qq.com/x/page/b095944gc59.html

完整代码请访问:https://github.com/IoToutpost/Python_game

调试前记得先安装Pygame Zero。

线索:Wireframe #37

编译:王文文

另类艺术时钟 让你的每一分钟都不同

为了庆祝乔迁之喜,哥本哈根的插画家兼UX设计师Riccardo Cereser为自己的新家做了一个独特的时钟。

这个名为Instaclock时钟的特点是,用特别的图案代替数字,且每分钟显示的图案都不一样。

在哥本哈根互动设计学院学习后,出生于意大利的里卡多(Riccardo)特别想在他的新公寓摆一个能够体现他艺术细胞的东西。

他先是在Photoshop中草拟构想,用图案来代表数字。比如伸出指头的手,类似数字0的车轮,蛋糕上的蜡烛,或录制开始前出现的倒数……

决定将这个idea用于交互式时钟后,他迅速想到了这种基于图案的时钟如何在显示器上展示出来。

接着,Riccardo出发前往哥本哈根。

他回忆道:“我开始拍摄任何类似于数字的东西,目的是根据特定主题创建十张一组的图片集合。如果可能的话,通过使用Instagram来切换主题并随时创建新的图案组合一定很棒。”

这就是该项目为何被称为Instaclock的原因。Riccardo能用Photoshop可视化他的计划,并为他自己的想法制作原型。

让其栩栩如生

接下来要弄清楚如何调用和刷新图案。Riccardo有使用Raspberry Pi的经验,甚至还装了RetroPie游戏机。

他找到交互式设计课上的一个朋友,创意编码人员Andreas Refsgaard,在他的帮助下,Instaclock项目所需要的 Processing sketch 被处理好了。

小提示:Processing是一个为开发面向图形的应用(visually oriented application)而生的简单易用的编程语言和编程环境。Processing的创造者将它看作是一个代码素描本。它尤其擅长算法动画和即时交互反馈,所以近年来在交互动画,复杂数据可视化,视觉设计,原型开发和制作方向越发流行,大家都喜欢这个可爱贴心,简洁好用的编程工具。

Riccardo花了数十个小时的时间研究了如何调用API​​来为自己的时钟提取特定图案,并且在cron中为每个Raspberry Pi设置计划任务参数,以便让Instaclock在启动时就加载图案,每隔十秒钟就切换。

为了让Instaclock尽可能地方便用户使用,他们还添加了一条规则,如果按下屏幕上方的按钮十秒钟或更长时间,则关闭屏幕。该脚本是他从The MagPi获得的。

地址:https://magpi.raspberrypi.org/articles/off-switch-raspberry-pi

组合时间

该项目最有趣的方面之一是有机会拍摄、绘制表示数字的图像。当然,这也是最耗时的。然后还得选择合适的屏幕和盒子来显示它们,如果不想自己做可以去宜家看看。

比如Riccardo就是偶然发现自己的Waveshare屏幕跟店里的Dragan文件整理盒比较适配,才买回去加以改造,做成了我们现在能看到的样子。

项目源代码:https://github.com/IoToutpost/InstaClock

线索:Raspberrypi.org

编译:王文文

树莓派官方刷系统工具Raspberry Pi Imager发布

之前给SD卡刷系统的时候, 或多或少会用到Win32 Disk Imager或 Etcher 之类的第三方工具。

而树莓派官方近期出了一个Raspberry Pi Imager ,以后大家刷系统基本不用别的工具了,用它可以轻松搞定。

安装前可以先选择自己想要的系统,比如Raspbian完整版还是Lite版,或者你自己下载好的版本。这部分结合了NOOBS的功能。

而且这个工具还细心的给你分好了硬件版本,以免你刷错系统。

关于它的主要工作机制:

Raspberry Pi Imager会先从官网下载JSON文件,获得所有当前下载选项,以确保你始终安装最新的系统。

用户选择好系统和SD卡的盘符/目录后,该程序将下载相关镜像,直接写入SD卡。与之前流行的方法相比,节约了很多操作。

最后要说的是,Raspberry Pi Imager 完全开源,最初是作为对PiBakery工具的修改编写的,后来由Floris Bos(NOOBS工具和PiServer工具的原始编写者)进行了修改和完善。

Windows版:

https://downloads.raspberrypi.org/imager/imager.exe

苹果版:

https://downloads.raspberrypi.org/imager/imager.dmg

Ubuntu版:

https://downloads.raspberrypi.org/imager/imager_amd64.deb

Enjoy it.

作者:王文文

树莓派加Steam Link 助你大屏玩游戏

很多玩家都会装Steam,以此在PC上畅玩各种炫酷的游戏。

但高性能PC一般都份量不轻,不便于随意搬动。那要想在其他房间或其他终端上玩Steam上的游戏,又不想搬来搬去或者另购新PC,那该怎么办呢?

还好这个世界上有一种叫做Steam Link的东西, 让我们在手机/平板/树莓派上也可以畅玩画质逆天的 PC 游戏大作

在早些时候,Steam Link还是个硬件盒子。

后来 Valve 公司力推软件版本,Steam Link 开始在各个终端百花齐放。

手机和平板上怎么用咱们就不多说了,应用商店里App一装就完事了。那树莓派上怎么用呢?

别担心,也很简单。

假如说以前大家还得自己编译代码的话,现在的树莓派系统装Steam Link简直So easy。

两行命令:

sudo apt update
sudo apt install steamlink

使用前,一定要记着你PC上要先运行Steam。

然后给树莓派接上游戏手柄,设置并输入PIN码连接到PC。

比如我家客厅有个大屏电视,而PC在书房,我就可以用连着大屏的树莓派来玩游戏了。

除了Steam上买的,你还可以通过它运行PC上的其他游戏。总之,这款应用基本能把你的PC当流媒体服务器用。

希望在这个不便外出的特殊时刻,游戏和树莓派能给你带去一丝安慰。

作者:王文文

无暇逗猫?加激光二极管的树莓派能帮忙

逗猫遛狗是假期必不可少的事情,但人们总要工作或学习,不能一直陪在宠物身边。

可想让猫单独在家也能玩的开心,只给一个毛线球可不够了。

抓激光小红点是猫喜欢的一个游戏,能不能做一个发现猫靠近就自动投射小红点的装置呢?

有个叫Enzo的老外养了一只猫,Enzo平时住在​​公寓里,外出工作时,他的猫Xander会无聊地呆在室内。

为了让猫咪有点娱乐活动,Enzo搞了一个由Raspberry Pi驱动的逗猫项目。

“我们注意到它喜欢追逐激光红点,所以我们决定做一个能让它自己玩起来的激光游戏装置 。” Enzo解释道。

演示视频地址:https://v.qq.com/x/page/i30629h4tyb.html

Enzo给这个装置起名为:Tri-Lasers for Felines。

当PIR运动传感器检测到猫在附近时,该装置会向房间内随机方位发射激光点,供Xander在生成的小红点之间追赶。从上面的演示视频来看,Xander似乎很喜欢这个装置。

云台控制

激光的主要运动轨迹,是通过控制水平和垂直的两个伺服电机处理的。其上层是一块Pan-Tilt HAT控制板。

“一对坐标(x,y)随机生成。” Enzo解释道。

“激光点以状态变量定义的速度从当前点移动到新坐标,并沿着连接两个点的线段移动。到达新坐标后,我们将循环回到第一个点。”

为了给Xander带来更多的趣味,该装置通过在三个激光二极管之间切换,以便非常快速地执行随机运动,频繁的移动红点。

Enzo表示:“在三个有源激光器之间切换,可以使激光点快速运动,从而让光线轨迹产生更多的变化,这对猫来说似乎更愉悦。”

虽然激光点在白天也可见,但在光线较暗的情况下会显示的更好。Xander在房间完全黑暗时很喜欢它。

该装置的三个激光二极管安装在3D打印的三角形支架中,该支架位于Pan-Tilt HAT的丙烯酸支架上,该支架通常用于固定相机。Enzo还设计了PIR传感器的外壳。

猫的日志

除了处理激光移动之外,Python脚本还保存了Xander活动的日志。

“我们会不时的检查一下它的好奇心,” Enzo说。

当Xander还是小猫时,会经常和这个装置一起玩。

现在Xander长大了,比起玩闹,它更喜欢睡觉。Enzo晚上出门的时候会打开这个装置,让自己长时间不在时,Xander也有的玩耍。

有一个问题是,猫是天生的好奇宝宝,很喜欢研究新事物。Enzo说:“我们把逗猫装置放得尽可能高,防止被它碰倒,但猫的爬高技巧非常娴熟,有几次都抓到了设备。因此,保护设备免受猫攻击的最佳方式是使其尽可能的保持静止,从而使猫失去兴趣。”

因此,Enzo将倾角传感器添加到装置中,这样可以让整个装置在Xander好奇的触碰下自动关闭,从而降低了损坏的风险。

相关材料清单:

激光二极管,3个

Raspberry Pi Zero ,1个

Pimoroni Pan-Tilt HAT ,1个

封装好的倾斜开关,1个

PIR运动传感器 (通用版),1个

跳线(通用版) ,10根

普通硬纸盒,1个

可能用到的工具:

3D打印机,电烙铁,热熔枪

该项目的Python代码:

https://github.com/IoToutpost/CatFitBot

这不是Enzo唯一专注于猫科动物的项目,他还构建了IoT食品秤来监控Xander的进餐时间和食用量,并将数据发送到Google Cloud的在线仪表板。

他现在正在研究轮式机器人,可以用摄像头追踪猫并进行一些互动,以便了解Xander会如何应对。

来自:RaspberryPi.org

编译:王文文,热爱物联网,喜欢研究开源软硬件和各种有意思的应用。前51CTO安全频道主编,RedHat认证工程师,华为HCIP-IoT认证工程师。

树莓派上设置OctoPrint实现3D云打印

如果你已经拥有3D打印机,那么你应该在3D打印的社区中听说过OctoPrint了。它会使你的3D打印工作变得更容易,更方便。

本指南将逐步指导你完成设置过程,并在此过程中提供一些有用的提示。

OctoPrint是一款开源软件,可以向具备USB接口的3D打印机添加Wi-Fi功能。

简单的说,你可以通过Web浏览器将本地文件拖放到打印机上,开始或停止打印。通过实时视频监视打印机,控制电机,控制温度等等。

当然,强大的功能也是会带来风险的。3D打印机超负荷工作的温度足以引起火灾,因此请确保自己有做好安全的设置,不要让它在未经监督的情况下运行。

OctoPrint需求清单:

•Raspberry Pi 3(或更高版本)
• MicroSD卡
•Raspberry Pi电源适配器
•USB线缆(连接器类型取决于你的打印机)
•Webcam / Raspberry Pi摄像头模块(可选)
•3D打印的摄像头安装架(可选)

在开始之前需要强调一下,不建议在该项目中使用低于Raspberry Pi 3的版本。在Pi Zero或更旧的Raspberry Pi上尝试这个软件,可能会遇到意外的打印失败。

下载OctoPrint

地址:https://octoprint.org/download/

截至到本文发布时,最新的版本应该0.17.0。

OctoPrint差不多算是Raspbian的一个分支,所以具体刷系统和Raspbian一样即可,这里不再累述。

设置Wi-Fi网络

刷完系统后,进到SD卡的boot目录,编辑octopi-wpa-supplicant.txt文件。

network={
    ssid="<your network name>"
    psk="<your password>"
}

改好之后,把SD卡插入树莓派,启动。

登陆Octopi

在你的浏览器中访问octopi.local,如果一切顺利。你应该能看到Web界面了。

如果没有看到OctoPrint启动画面?不要害怕,你不是第一个。常见的问题包括:仔细检查octopi-wpa-supplicant.txt文件中是否正确输入了Wi-Fi详细信息,将Raspberry Pi接上显示器并观察会发生什么情况。

https://community.octoprint.org/t/wifi-setup-and-troubleshooting/184 这个页面有详细的故障排除建议。

开始用OctoPrint打印

现在,我们可以根据向导为打印机设置OctoPrint。大部分步骤都简单明了——设置密码,注册。发送匿名使用情况、统计信息等等。

我们建议启用连接检查和插件黑名单,以帮助保持状态稳定。如果计划使用OctoPrint作为切片器和监视工具,可以用此步骤导入Cura配置文件。但是,我们建议跳过此步骤,因为在你自己电脑上切片更快。

最后,我们需要输入打印机详细信息。上面这个图我们是以Creality Ender-3的一些规格为例设置的。如果找不到打印机的确切信息,则可以通过快速网络搜索此部分所需的内容。

带摄像头的OctoPrint更好

现在,你已经设好了OctoPrint,可以开始打印。通过USB数据线将Raspberry Pi和3D打印机连起来。在浏览器中打开OctoPrint,然后单击“ Connect 按钮让已启用Wi-Fi的打印机开始工作。成功连接后,你可以设置“hot end”和“bed temperature”,然后观察实时读数的更新。

在“ Control”选项卡中,我们可以看到视频流(如果有使用摄像头的话)和电机控制,以及定位轴的命令。

有一个G-code文件查看器,可以查看当前加载模型的横截面,还有一个终端可以向打印机发送自定义的G-code命令。最后一个标签是用于设置延时的,有插件可以帮助完成这个过程。

毫无疑问,对打印图像进行视频监控的最简单方法是使用官方的Raspberry Pi摄像头模块。在Thingiverse上有很棒的Raspberry Pi摄像头模块支架,可让你在打印模型时获得最佳视角。还有一些很棒的以OctoPrint为主题的Raspberry Pi保护套可以容纳你新的打印机大脑。

虽然它没有得到OctoPrint的官方支持,但如果你手边有USB网络摄像头,或者只是想要一些高质量的视频流,你可以使用它。OctoPrint wiki有一个众包列表,其中列出了已知可以工作的网络摄像头,还有一个链接,提供了网络摄像头正常工作所需的额外步骤。 地址:http://hsmag.cc/aREXbo

综上所述, 设置完成后的操作,基本就三步:

  1. 用切片软件导出Gcode文件,
  2. 在OctoPrint的Web界面按Upload上传G-code,
  3. 点击Print开始打印。

你会看到文件/打印细节出现,包括打印对象需要多长时间……在开始之前,请查看右侧的G-code Viewer选项卡。你不仅可以滚动浏览对象的各个层,还可以使用底部的滑块来查看3D打印机用来“绘制”每一层的精确图案。现在点击“打印”,看你的打印机是怎么工作的。

OctoPrint拥有社区创建的大量插件,比如我最喜欢的Octolapse,能制造出梦幻般的延时摄影效果。该插件会改变打印对象的G-code,以便每一层打印结束, 挤出机就从打印物上移开,让摄像头毫无阻碍地拍摄模型。结果看起来像是魔法般凭空生长出来的物体。

相关视频效果:https://v.qq.com/x/page/z3050xutjrm.html

插件地址:https://plugins.octoprint.org/

来自:HackSpace & RaspberryPi.org

作者:  Alex Bate

译者:王文文