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

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

即使在刚刚过去的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

译者:王文文

20块钱做张可运行Linux的名片

对于一个工程师来说,如何在一张名片上宣告自己的实力?在上面制造一台完整的计算机说不定是个好主意。

  最近,美国一名嵌入式系统工程师 George Hilliard 的名片引发了众人的关注。他以自己的名片为「主板」,在小小的空间里打印了计算机系统所需的所有元器件,使其可以成为了一台可以运行 Linux 的电脑。上面还有一个简化版的 Python 解释器。

  这一颇具极客风的创意引来了社交网络上人们的广泛推崇,他的文章在 HackerNews 上出现还不到一天,点赞量就超过了 2000。

  制作这样一张名片,除了需要有足够的理论知识以外,所需的零件可以在淘宝上买到(是的,这位美国小哥就是这么做的),一张名片的成本大约 20 元人民币

  让我们看看他是如何做到的。

  作为一名嵌入式系统工程师,George Hilliard 一直在追寻完美的设计,其中之一就是最简洁的 Linux 系统计算机。他一直在海量处理器型号中寻找最优解,最终发现了新的大陆。他对自己说:「这些处理器便宜得就像白送。」很快产生了用它们来制作可以运行 Linux 的名片的想法。

  此前,不少极客先驱曾经在名片上发挥了自己的创意,其中包括 U 盘名片、带闪光灯的名片,甚至带无线电首发功能的名片。不过还从来没有可以运行 Linux 系统的名片。所以 George 自己动手做了一个:  

成品看起来是这个样子的,它是一台完整的 ARM 架构计算机,运行由 Buildroot 构建的定制 Linux 固件。

所以如何让它跑起来呢?名片的左下角是一个 USB 接口,如果你把它插入一台计算机,它将在 6 秒钟启动,显示为 USB 闪存,以及虚拟串行端口,你可以使用卡片的 shell 登陆。闪存驱动器里有一个 README 文件、个人简历的副本以及一些照片。而 shell 上有很多游戏,比如 Unix 上经典的 fortune and rogue、2048 以及一个小型的 MicroPython 解释器。

  所有这些都是在一个容量仅有 8MB 的闪存卡上实现的。Bootloader 的大小为 256KB,内核为 1.6MB,整个根文件系统用掉了 2.4MB。所以装一个系统绰绰有余。它还包含了一个可写入的主目录,以备有人想在上面存入什么东西。

  最后,一张名片的成本被控制在人民币 20 元左右,对于一台电脑来说,这显得足够便宜。

  一、名片设计是件「技术活」

  George Hilliard 自己设计并制作了整张名片,这虽然是作者的本职工作,但要找到足够便宜的元件还是非常麻烦的。

  处理器的选择是最重要的部分,它会控制成本并确定整个项目是可行的。在一系列调研后,George 选择了 F1C100s,它是 Allwinner 出品的一块贼便宜的芯片,它在成本优化上下足了功夫。这块芯片集成了 RAM 与 CPU,在功能上至少已经满足要求了。

  没想到的是,George 小哥哥竟然是在淘宝上买的 F1C100s,其它元器件都是在 LCSC 上买的。

  George 使用 JLC 制作了 PCB 板子,大概只需要 56 块钱就能做 10 份。George 表示他对 JCL 制作的板材印象深刻,它们虽然不像 OSHPark 制作的那么好,但是质量也还不错,重点是价格实惠。第一次做出来的电路板是哑光的黑色,它带有一点指纹的磁感。

  在第一次制作电路板时还遇到了一点麻烦:首先,USB 端口不够长,因此很难与更多的 USB 接口连接;其次,flash footprint 是错误的,George 通过手动把针脚压到元件后面。  

  在我们验证了各个部分后,再制作一次板材就能得到文章上面的实力。因为线路板尺寸很小,George 决定立即使用一个便宜的回流焊回流所有的部件。因为他能使用激光切割机,所以可以用激光切割压模机压制的焊锡模板。模板的效果非常好,芯片的 0.2 毫米针脚需要特别注意才能保持光洁:激光功率与焦距是非常重要的。

  其它空白的 PCB 板是非常好的夹具,用来固定板材以处理针脚,固定可以通过透明胶完成。George使用焊锡手动焊接元器件,他确保板材和元器件的处理都是无铅、无害的,因此用来作为名片也是没什么问题的。

上面这张图展示的处理结果有点偏离,但焊锡其实还是挺容易使用的,而且组装起来也非常容易。每一个元器件大概需要 10 秒钟装配,所以作者尽量减少元器件的数量。

  二、这样的名片多少钱?

  前面 George 已经尽可能降低成本了,他认为现在已经足够便宜,即使将名片发给别人也不会心疼。当然,也只有重要的结识对象才会收到这样的名片,毕竟所有元件都要你一个个装配。下面所有的成本都没有考虑装配时间,动手能力强的读者们可以考虑自己做一个。

当然,作者也表明还有很多成本并不能量化,例如运费和试错等等。但 20 块 RMB 已经非常低了,尤其是对于一块能运行 Linux 系统的板子。这其实也体现了企业制作端设备的成本,元器件成本要比我们想象中的低很多。

  三、名片的性能怎么样

  嗯,它在 6 秒内就启动了一个超级简化的 Linux 系统。因为格式和成本等因素,该名片是没有 I/O、联网模块,以及其它占资源比较大的程序。不过不管怎么样,George 还是将一些有趣的应用拷进了固件镜像文件。

  USB

  我们能通过 USB 做很多有意思的事,但作者特意令名片保持非常精简的状态,我们可以在电脑上做一些尝试。Linux 可以让我们像设备一样使用一些小工具,作者将该芯片之前的一些开发工作也传到了名片内,所以能有 USB 小工具框架的完整功能。George 决定模拟一个预生成的闪存驱动器,并通过虚拟串行端口提供 shell 服务。

  Shell

  在登录为 root 用户后,我们可以运行所有模拟串行控制台:

  • rogue:经典的 Unix 游戏《地牢爬虫》;
  • 2048:控制台版的 2048 游戏;
  • fortune:各种名人名言,为了给其它应用节约空间,其并不包含完整的数据库;
  • micropython:一个非常轻量的 Python 解释器。

  模拟闪存驱动

  在编译的过程中,构建工具可以生成一个很小的 FAT32 镜像,并将其加到 UBI 分区中。正如之前描述的,Linux 小工具子系统会将其作为一个储存设备提供给 PC。如果你希望看看闪存驱动到底发生了什么,那么最简单的就是看看源代码,它里面有作者的一些简历与介绍。

  闪驱源码地址:https://github.com/thirtythreeforty/businesscard-linux/tree/master/package/businesscard-flashdrive/files

  制作这种名片需要哪些资源?

  在制作电路板名片的过程中,George 使用了 F1C100s 芯片,并在上面运行主流的 Linux 5.2 版本。此外,他还提供了一些有关 F1C100s 芯片的文档,供读者借鉴。

  源代码

  George 已经在 GitHub 上开源了 Buildroot tree,读者可以自行查看。Buildroot tree 包含生成 NOR flash 镜像的代码,然后通过处理器的 USB 下载模式进行安装。此外,Buildroot tree 还包含游戏和其他好用的软件包,比如为 Buildroot 添加 fortune 软件。

  如果你想在项目中使用 F1C100s 芯片,则是一个很好的开始(如有问题,请随时联系)。

  Buildroot tree 项目地址:https://github.com/thirtythreeforty/businesscard-linux

  此外,George 重定了 Icenowy 发布的 F1C100s 开发工作,其可以运行 Linux 4.9 版本。George 的名片在接近主流的 5.2 版本上运行,其中对补丁进行了修补和调试。

  对于 F1C100s 芯片,George 相信自己拥有目前最好的 U-Boot 配置编译端口,这些再次基于 Icenowy 的部分工作。

  U-Boo 项目地址:https://github.com/thirtythreeforty/u-boot/tree/f1c100s-v2019.04

  F1C100s 文档

  George 找到了以下一些关于 F1C100s 的文档:

  • Allwinner F1C100s Datasheet (提供插脚引线和一般信息):https://www.thirtythreeforty.net/media/F1C100s_Datasheet_V1.0.pdf;
  • Allwinner F1C600 Reference Manual(提供 F1C600 的寄存器定义,它是 F1C100s 重贴商标后的改进版,支持 Linux):https://www.thirtythreeforty.net/media/Allwinner_F1C600_User_Manual_V1.0.pdf;
  • schematic for Sipeed’s Lichee Nano(这是 George 使其软件顺利运行所使用的开发板):http://dl.sipeed.com/LICHEE/Nano/。

  最后,如下图所示,George 上传了制作电路板名片的原理图。

电路板名片原理图。

有网友评论道:「对我来说令人难以置信的是,这样一块成本 1.42 美元(约合人民币 10 元)的芯片几乎包含了带动 Linux 的所有必要硬件:500MHz 的 CPU、32MB SDRAM、2D GPU、SD/MMC 支持以及 USB 控制器。他们都封装在一块 10mm×10mm 的微小芯片里。这让我不由得想入坑嵌入式开发。」

  项目感悟

  George 表示自己从这个名片项目中学到了很多,这是他首次使用回流焊来回流元器件的项目。此外,对于一些缺少文档的元器件,George 还必须学习找到必需的资源。

  在项目开展过程中,George 借鉴了其有关嵌入式 Linux 和设计 PCB 的经验。项目并非完全没有瑕疵,但体现了他的能力。此外,George 表示他正致力于如何从零开始为电路板名片等小型、廉价的 Linux 系统构建硬件和软件。

创客妹子教你用crontab实现开机启动

如果你想在系统启动时自动执行你的程序,在Linux有很多种方法。

但是随着的Linux版本越来越多,管理机制不断升级 —— “同一套方法,多款Linux兼容”的事情不再像以前那么简单。

这次我们来看看创客妹子 Estefannie 的视频教学,她给我们带来的是,如何通过crontab来实现程序开机就启动(该操作适合Linux新人,熟手可以不用看了)。

不止是树莓派官方推荐的Raspbian,业界主流的Linux版本都支持这样操作。

视频地址:https://v.qq.com/x/page/n3038n0zudk.html

这里为视频内容做个小结,作者用的是跑着Raspbian的树莓派。

在Shell界面执行以下命令:

sudo crontab -e

然后再输入:

@reboot python /home/pi/Desktop/led.py &

我们之前的文章其实出现过这样的用法,但没细讲过。

这条命令添加成功后,系统开机就会执行。如果你前面python脚本是要点亮一个LED小灯,我们又在树莓派上配好了环境。那系统每次重启成功后,你都可以看到小灯点亮了。

一般情况下,crontab的语法是前面要加时间和日期的,但用 @reboot 替代它们也是允许的:表示在重启后执行任务。

如果不加“&”符号,代表着前台运行。如果加上“&”符号,则表示后台运行。

素材:Raspberrypi.org

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

DIY带数据的NFC“袖扣”

NFC近场通讯技术一直是物联网的经典应用。

这一次,我们将向大家介绍如何制作一对NFC数据袖扣。

小小的一个NFC袖扣,非常适合存储网站URL,密码或其他机密信息。适用于喜欢Dry Martinis的绅士间谍(007),或者经常忘记Wi-Fi密码的普通群众……

NFC技术

NFC允许两个设备在物理上彼此靠近时进行无线通信。随着RFID的发展,NFC在消费级技术中变得越来越流行,并且已经普遍用于非接触式支付系统和标识徽章。NFC腕带也被用于为主题公园或其他场所的游客创造更好的体验。

NFC的发展也没有忽视业余爱好者和创客,Pimoroni和Adafruit等公司出售的配件使得大家在项目中添加NFC功能变得较为容易。

在这里,我们将用智能手机或外部NFC读写器来编码微小的NFC标签。

由于该类标签可以透过非金属屏障(例如塑料)被读取,因此我们将其嵌入树脂中,可以做成精美的装饰袖扣。将其与智能手机或NFC阅读器相连,你就可以将数据读取或写入芯片。

微型NFC/RFID应答器

在该项目中,我们使用了最小的NFC标签,即Adafruit提供的微型NFC/RFID应答器(产品编号2800)。这些15.6mm x 6mm柔性标签采用现在的标准NDEF格式进行格式化,并且可以与更新的电话和大多数NFC读取器一样使用。

如果你碰巧拿到了较旧的Mifare Classic格式标签,则可能需要将它们重新格式化为NDEF才能与你的读取器/写入器一起使用。

重新格式化不是大多数NFC读/写应用程序的功能,但可以使用Adafruit的PN532 NFC/RFID控制器分线板或屏蔽板来完成。

接下来是一些制作工艺。

环氧树脂分为两部分,使用前必须等比例混合在一起。在进入固化阶段并完全硬化之前,树脂形状可在短时间内进行调整。

弄清楚到底要混合多少树脂和固化剂绝对是一门艺术。甚至还有一些在线工具可以帮你进行计算。不过对于这样的小型项目,稍微超出比例也没什么关系。

如果你不想在浇注的时候搞砸,必须在固化前最后一分钟快速搅拌。如果你要给树脂着色,你得把杯里的树脂和染色剂充分拌匀。

如果你不满足于一对袖扣,也可以将NFC标签和树脂做成别的饰品,例如吊坠或钥匙链、表链。这些都可以作为重要节日或生日的礼物送给朋友,同时还能体现一下你的技术和工艺水准。

树脂铸造的饰品已经流行了几十年,在工艺品商店和网上有很多树脂模具可供选择。最好的树脂模具是用硅树脂做的。

柔性硅胶模具可轻松脱落固件,并产生有光泽的表面。而袖扣坯,戒指坯和吊坠都可以在珠宝供应商店里买到。

选择袖扣和环形坯时,请参考你的模具, 以确保这些坯与你选择的铸坯尺寸一致,反之亦然。

浇注须知

首先收集好必要的材料并布置你的工作环境以便使用树脂。期间会有很多搅拌,倾倒和滴落的事情发生,记得用纸覆盖工作区,并在附近准备一些纸巾。

阅读并注意树脂和固化剂上的安全警告。尽管按说明书使用某些树脂被认为是无毒的,但我们依然建议你在通风良好的地方工作并戴上丁腈手套,以便在工作时使树脂远离你的皮肤。

一旦将两部分树脂混合在一起,硬化之前你将没什么时间倒入树脂,因此提前计划好份量和比例是关键。

检查树脂上标明的“可使用时间”,这是混合后树脂开始硬化之前的工作时间。比如我这里用的树脂“可使用时间”为30分钟。设置计时器可能会很有帮助,这样你可以跟踪进度。

如果你有多个模具,请在树脂混合之前确定要使用哪一个类型,并确保NFC标签适合你计划中要的形状。比如15.6mm小标签非常适合16mm大小的饰品。如果要制作匹配的两个袖扣饰品,请记住,你将需要两个相同的模具形状,而且混合树脂的量一定要比两个袖扣饰品加起来的所需树脂稍微多一些。

准备NFC标签

拆开NFC标签,并确保它们干净并且可以嵌入树脂中。如果为了点亮效果,你可能希望将数据标签与LED标签结合使用,就像我们在其他产品中所做的那样。NFC LED指甲贴纸的背面具有粘性,因此很容易将其直接粘贴到较大的数据标签上。

测量,混合并倒入

我们混合了约6盎司(170克)树脂,然后将其染成绿色,以呈现高科技翡翠的外观。这足以容纳两个凸圆和三到四个额外形状的模具。当然,具体要遵循你买的产品说明书来混合你的树脂。

通常,体积比是1:1。一个好的方法是将两种液体分别倒入匹配的容器中,直到相同的计量位置。

然后,将它们倒入第三杯中搅拌。缓慢但彻底地搅拌至少两到三分钟,确保经常刮一刮搅拌杯的侧面。如果未完全拌匀混合树脂,它将无法正常固化。如果要对树脂着色​​,请一次将一滴颜料添加到混合树脂中,使颜色逐渐变深,直至达到你的喜好。

树脂混合并着色后,搅拌时会混入许多细小的气泡。让混合物静置几分钟,以便气泡可以漂浮到顶部,然后使用木棍将气泡移到容器的侧面并戳破。

当你去除了尽可能多的气泡,就可以浇注了!将你的模具放置在水平表面,使它们能够不受干扰地固化。

将稀薄的树脂倒入模具的深处,使其慢慢升至模具上方。但勿将模具过满填充,否则你将其从模具中取出时,树脂会弯曲并且底部凸出。将树脂细流般倒入时可以戳破仍在混合物中的大气泡。

嵌入NFC标签

将树脂放入模具中后,将NFC标签置入相应的位置。再用镊子将标签浸入未浇注的树脂中,先将其涂覆 —— 这将避免模具中的树脂产生太多气泡。

然后,将标签轻轻滑入模具,并使其居中。它会缓慢下沉到模具的底部,理想情况下,它会保持在中心。你可能需要用镊子或细棒为其做调整,但尽量不要引入任何新的气泡。

倒入树脂并将NFC标签放置到位后,让树脂在模具中静置约十分钟。这足以使大多数气泡上升到顶表面。然后,在树脂上喷异丙醇细雾以使气泡破裂。

此步骤是可选的,但我们注意到它确实有助于获得更好的结果。

对你要倒入的所有模具重复此过程,并向其添加NFC标签。几分钟后对其进行检查,以确保标签没有移位。切记要留意“适用期”计时器。在树脂开始变硬之前,请完成所有位置调整和气泡处理的操作。然后,将树脂固化至说明书中指定的时间。

脱模你的固化树脂

等树脂完全硬化后,就该进行最令人兴奋的部分了 —— 从模具中取出固化的树脂。

如果使用硅树脂模具,那你脱模应该不会有什么难的。轻轻弯曲有机硅,使空气渗入硬化树脂和模具壁之间。然后,你应该能够小心地将定型的树脂从模具中拉出。

花一点时间欣赏你闪亮的“宝石”!如果发现模具浇注过多,或者树脂蠕变了模具的侧面,使它向后弯曲,请不要担心。树脂可以湿喷;只要确保打磨时将砂纸和碎纸都放在水下,并戴上口罩以防止吸入树脂颗粒。

制作袖扣

用胶水将平底的 “宝石” 固定在袖扣坯上。我们使用了E6000,这是一种工业强度的粘合剂,在塑料上效果很好。同样,请确保在通风良好的地方工作,并在使用E6000时戴上口罩。

将胶粘到袖扣坯上,并在胶凝结时将 “宝石” 保持在适当的位置。补两,就完成了!你也可以将 “宝石” 粘贴到环空以制作NFC数据环。对于吊坠,你可以使用珠宝首饰,例如提钩和跳环来制作项链或钥匙链、表链。

编程NFC标签

现在,你已经做好了NFC袖扣。接下来可以使用URL,密码或秘密消息之类的数据加载它们。

有几种方法可以做到这一点。如果你有支持NFC的智能手机(例如Android)则不需要其他硬件。你可以下载NFC工具应用在袖扣上写入和读取数据。而 NFC Tasks 是另一个免费应用程序,可让你创建自动操作,让手机在读取NFC标签时执行某些命令。

如果你用的是iPhone(截止到本文发布时),则无法从手机直接写入NFC标签。但是不用担心!你仍然可以通过购买USB NFC读/写器来获得NFC的乐趣。

你可以使用NFC工具桌面应用程序在计算机上读取和写入NFC标签。

Amazon上的 NFC读/写器大约是35美元一个。iOS 12.1及其以后的版本支持后台NFC标签读取。你仍然可以在iPhone上执行一些基本操作,例如在浏览器中打开URL。

对于更自定义的硬件/软件方法,请尝试Adafruit的PN532 NFC/RFID控制器分线板,该板可让你向Raspberry Pi或Arduino项目添加NFC功能。设置过程需要一些焊接和编程,但是此突破使你可以对NFC标签进行更底层的控制,并且受到Adafruit NFC Arduino库的支持。该库包括方便的示例代码,用于读取和写入标签,以及使用NDEF格式重新格式化Mifare Classic标签。

在你的下一个盛装活动中戴上新袖扣,你将既神秘又优雅!或者,将这些礼物赠送给你的朋友,里面有着仅供他们查看的秘密信息。

介绍自己时,你可以把手腕放在对方的智能手机上,打开网页获取信息。不再需要拿出一张名片与对方联系。

这不是魔法,是技术。

作者:Alex Bate

来自:Raspberrypi.org

翻译:王文文

鸟巢盒子:用树莓派拍摄自己的《春日观察》

英国BBC有一档节目叫做《Springwatch》,翻译过来差不多叫《春日观察》。是在春天万物复苏之际,观察和报道野生动物生活的一档节目。

那持续的拍摄野生动物总会需要特制的道具,大的先不说,像鸟类一样娇小的动物,有没有好的办法可以拍到它从筑巢到孵卵的全过程呢?

英国利物浦的Jay Wainwright就做了这么一个带互联网属性的“鸟巢盒子”。

该巢盒通过树莓派将高质量图像和视频从英国的鸟巢盒子发到Facebook上。

Jay  运营着一个小型的巢盒直播网络,目前有3个已经部署,另外3个正在筹备中。令人兴奋的是,新的巢盒将包括一个红隼盒和一个谷仓猫头鹰盒!

在春季,所有摄像机的视频流都传向“鸟巢盒子”的Facebook页面,该页面稳定地吸引了数千名野生动物爱好者。

鸟巢盒子使用Raspberry Pi和摄像头模块以及Raspberry Pi PoE HAT来提供电源和Internet连接,因此只需要一根电缆接进去。

如果要收音的话,还可以外接USB麦克风,大约几十块钱RMB。

Jay还增加了LED灯和红外线滤光器,以确保白天和晚上都可获得高质量的画面。

最重要的是,他还写了一些Python代码来记录巢箱的访客以便在有突发事件时进入直播模式。

鸟巢盒子的设计显然已经过充分考虑,既能为鸟类提供有吸引力的空间,同时也便于集成所有电子组件。

鸟巢盒子的主要结构

如果想在Facebook上Follow这个项目,请访问:https://www.facebook.com/NestBoxLive

相关小鸟的视频地址:

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

素材:Facebook.com

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