老游戏新写之Jetpac重返地球

主人公流落外星球,遇到一群不讲道理的外星人。想跑路,载具又摔得七零八落。

任务:​顶着外星人的进攻,把宇宙飞船的零件都找回来组装好,然后为其添加燃料。最后安全逃离,重返地球。

这是由Chris和Tim Stamper兄弟于1983年创建的8位机游戏Jetpac里的剧情,也是其工作室Ultimate Play the Game出品的首批热门游戏之一。

8位ZX Spectrum电脑上的Jetpac

而当一个宇航员和Ultimate Play the Game的徽标在屏幕上出现时,你知道之前的等待是值得的(八十年代能有这么个游戏玩已经很激动)。

游戏的角色是不幸的宇航员杰特曼,他必须收集四处散落的零件,制造火箭并为其添加燃料,同时还要与成群的致命外星人战斗。

本文提供的代码片段包含收集火箭零件和燃料,以便杰特曼搭载火箭起飞的技巧。

我们可以对所有屏幕元素和Actor碰撞例程使用内置的Pygame Zero Actor对象,以便处理重力并拾取物品。

首先,我们需要初始化Actor。

我们需要游戏中的主人公杰特曼,地面,火箭的三个零件,还有火箭发动机所需的一些燃料。

每个Actor的行为方式将由一组列表决定。我们有一个重力对象列表,每帧绘制的对象,平台列表,碰撞对象列表以及可以拾取的对象列表。

杰特曼跳进火箭,回家了。欢呼!

我们的draw()函数很简单,因为它循环遍历绘制列表中的项目列表,然后再绘制几个条件元素。

update()功能是所有动作发生的地方:我们检查键盘输入来移动杰特曼,将重力应用于重力列表上的所有项目,检查与平台列表的碰撞,如果杰特曼触摸它,则拾取这个项目(对象),应用对杰特曼的任何推力,并移动杰特曼持有的任何物品随他一起移动。

完成所有操作后,我们可以检查添加的燃料量是否已达到火箭可升空的程度。

如果查看辅助函数checkCollisions()checkTouching(),你会发现它们使用了不同的碰撞检测方法,第一种方法是检查与指定点的碰撞,以便我们可以检测到与actor顶部或底部的碰撞以及触摸冲突是矩形或边界框的冲突,因此如果两个Actor的边界框相交,则会记录一个冲突。

另一个辅助函数applyGravity()使重力列表中的所有元素向下移动,直到Actor的底部撞到碰撞列表上的某物为止。

目前的程序主要就是组装一枚火箭,加满燃料,然后升空。你后续要添加的是一群讨厌的外星人,以及一种用激光枪摧毁它们的方法。

以上就是Mark的Jetpac代码,你可以在这里下载。

https://github.com/IoToutpost/Python_game/

Have fun.

微软安全软件Defender ATP 正式支持Linux

在推出预览版几个月后,微软正式发布了适用于Linux的Microsoft Defender ATP安全软件。同时还发布了适用于Android的Microsoft Defender ATP预览版。

当前,Microsoft Defender ATP for Linux 总共支持六种不同的服务器发行版,具体如下:

RHEL 7.2+

CentOS Linux 7.2+

Ubuntu 16 LTS 或更高版本

SLES 12+

Debian 9+

Oracle Linux 7.2

用户可以使用 Puppet、Ansible 或现有的 Linux 配置管理工具来进行部署和配置。

微软称,新的防病毒软件可以在客户端上提供完整的命令行体验,但是管理员需要知道的是,为 Linux 安装 Microsoft Defender ATP 需要服务器的 Microsoft Defender ATP 许可证。

微软计划为Linux上的Microsoft Defender ATP带来多项新功能。且在不久以后发布更多有关Linux的安全公告。

附注:微软 Defender ATP 是什么?

如果你过去几年使用过 Windows,那么你一定遇到过 Windows Defender。它是微软的防病毒产品,通过检测病毒和恶意软件来提供一定程度的安全性。

微软通过引入 Windows Defender ATP(高级威胁防护)为企业用户改进了此功能。

Defender ATP 致力于异常行为分析的告警和拦截。它会注意用户的使用习惯,当发现与平时不一致的行为时,它将把可疑信息发送到自己的 Azure(微软的云服务)做进一步分析。

例如,如果你收到一封包含 PDF 附件的电子邮件,且在打开时触发了命令提示符,Defender ATP 就会注意到此异常行为。

现在这已经完全是一个企业级产品。在具有成千上万个端点(计算机)的大型企业中,Defender ATP 提供了很好的保护。IT 管理员可以在其 Azure 实例上集中查看端点的视图,可以分析威胁并采取相应措施。

能快速打造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。

复工后的树莓派线下商店情况如何

之前由于新冠疫情突然爆发的缘故,位于英国剑桥的树莓派线下商店被迫关闭。

虽然现在英国依然处在疫情期,但全国复工复产的需求强烈,各类商铺也纷纷恢复营业。

2020年6月18日,剑桥的树莓派商店也加入复工大军,重新向大众开放了。

那复工后的树莓派商店,情况怎么样呢?

一、进店规矩更新

1、要按照箭头的指示逛商店。

2、一次不超过7名顾客。

3、店内时刻准备洗手液和纸巾。

4、人与人之间要保持2米距离。

5、只接受信用卡和手机支付。

店内指示牌
提醒大家保持距离的标志
免洗手消毒液和擦手纸

二、新品已到,库存充足

从新的8GB树莓派4B、高质量相机镜头及其配套书籍《Raspberry Pi相机官方指南》,规格齐全,均有现货。

新上架的8GB内存树莓派4B

礼品卡,周边产品和店内独家商品也应有尽有。

树莓派礼品卡,可直接线下换购商品
创客书籍、纪念T恤和杯子等等

三、店铺位置

英国剑桥市中心 Grand Arcade 一楼。

四、开放时间

树莓派商店中的工作人员都进行了新冠疫情相关的健康与安全培训,他们会努力保持店内物品的卫生和清洁,同时为访客提供服务与支持。

线索:Raspberrypi.org

编译:王文文

小技巧:树莓派花式截屏

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

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

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

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

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

一、内置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

编译:王文文

树莓派推出8GB内存版本

树莓派4B上架快一年了。

虽然官方当时推出了最高4GB内存的版本,但要当“桌面系统”用的话,依然略有不足。

同时运行多个复杂应用或打开一大堆网页的话,系统会有些捉襟见肘。

这次树莓派基金会似乎是铁了心要巩固树莓派的桌面级存在。

8GB内存版本横空出世,价格仅为75美元。

为了给新内存提供所需的峰值电流,树莓派官方工程师 James Adams 调整了电路板上的电源组件,从电路板右侧靠近USB 2.0插槽的位置卸下了开关电源,而在USB-C电源连接器旁边添加了一个新开关。

不管你是编译和链接大型程序,还是运行较为繁重的工作负载,或是希望一次打开更多浏览器标签页,Raspberry Pi 4B的8GB内存版本都更适合你。

还有什么?

操作系统也要升级到64位了。

是的,就是大家千呼万唤,与其64位ARM芯片更配的64位树莓派官方操作系统。

此前,树莓派官方默认的操作系统映像使用32位LPAE内核和32位userland。

这允许多个进程共享所有8GB的内存,但会受到单个进程不能使用3GB以上内存的限制。

对于大多数用户而言,这并不是一个严格的限制,比如Chromium中的每个标签都有自己的进程。

而坚持使用32位userland的好处是,同一个镜像可以运行在从初代开始的多款树莓派主板上。

但是,希望将所有8GB映射到单个进程的高级用户,依然需要64位userland。

有些用户因为类似的需求,安装了UbuntuGentoo推出的64位树莓派专用系统镜像。

不过现在官方要出64位版本了,习惯Raspbian OS的用户终于迎来一次重大的性能释放。

虽然还在beta测试中,但离正式发布也快了,想要尝鲜的用户可以先下载。

地址:https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2020-05-28/2020-05-27-raspios-buster-arm64.zip

它包含32位系统映像中相同的应用程序和桌面环境,是基于Debian arm64 port构建的。

以后官方的32位和64位操作系统映像都会有一个新名称:Raspberry Pi OS。

随着社区的发展,树莓派官方希望新用户能够更轻松地找到他们推荐的操作系统,更有信心的使用他们的硬件和软件。

想了解更多资讯,可及时关注“IoT前哨站”。

线索:Raspberrypi.org

编译:王文文

美国商务部“实体清单”又增33个中国对象

据外媒,5月22日,美国商务部宣布,将共计33家中国公司及机构列入“实体清单”。这些企业及部门被列入“实体清单”后,美国政府即可根据《出口管理条例》限制对这些机构出口、进口或转口。

被列入“实体清单”的公司和机构、个人名单如下:


1、北京中云融信科技有限公司
Beijing Cloudmind Technology Co., Ltd.
2、北京计算机科学研究中心
Beijing Computational Science Research Center
3、Beijing Jincheng Huanyu Electronics Co., Ltd.
4、北京高压科学研究中心
Center for High Pressure Science and Technology Advanced Research
5、成都精密光学工程研究中心
Chengdu Fine Optical Engineering Research Center
6、中国九源贸易公司
China Jiuyuan Trading Corporation
7、达闼科技(香港)
Cloudminds (Hong Kong) Limited
8、达闼科技
Cloudminds Inc.
9、哈尔滨创越科技有限公司
Harbin Chuangyue Technology Co., Ltd.
10、哈尔滨工程大学
Harbin Engineering University
11、哈尔滨工业大学
Harbin Institute of Technology
12、哈尔滨蕴力达科技开发有限公司
Harbin Yun Li Da Technology and Development Co., Ltd.
13、精纳科技有限公司
JCN (HK) Technology Co. Ltd.
14、快急送物流(中国)有限公司
K Logistics (China) Limited
15、Kunhai (Yanjiao) Innovation Research Institute
16、顶峰多尺度科学研究所
Peac Institute of Multiscale Science
17、奇虎360科技有限责任公司
Qihoo 360 Technology Co. Ltd.
18、奇虎360
Qihoo 360 Technology Company
19、Shanghai Nova Instruments Co., Ltd.
20、四川鼎澄物资贸易公司
Sichuan Dingcheng Material Trade Co., Ltd.
21、四川新天元科技有限公司
Sichuan Haitian New Technology Group Co. Ltd.
22、四川图斯克进出口贸易有限公司
Sichuan Zhonghe Import and Export Trade Co., Ltd.
23、砺剑天眼科技有限公司
Skyeye Laser Technology Limited
24、复旦大学副教授朱杰进
Zhu Jiejin

另有9家中国机构及公司被列入实体名单:


1、中国公安部法医学研究所
China’s Ministry of Public Security’s Institute of Forensic Science
2、阿克苏华孚色纺有限公司
Aksu Huafu Textiles Co.
3、云从科技
CloudWalk Technology
4、烽火科技集团
FiberHome Technologies Group and the subsidiary
5、南京烽火星空通信发展有限公司
Nanjing FiberHome Starrysky Communication Development
6、东方网力
NetPosa
7、深网视界
SenseNets
8、云天励飞
Intellifusion
9、上海银晨智能识别
IS’Vision

转载自:“云技术”公众号

树莓派音乐盒,让你像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

编译:王文文

Raspberry Pi官方的高品质摄像头来了

为满足用户需求,树莓派基金会在2020年5月初发布了一套高品质(HQ)摄像头。

该摄像头可同时支持工业和消费级应用,例如安防或者野生动物拍摄等需要视觉高保真的场景。 

技术指标:

  • 1230万像素Sony IMX477传感器
  • 1.55μm×1.55μm像素尺寸– IMX219的像素面积的两倍
  • 背照式传感器架构,提高了灵敏度
  • 支持现成的C和CS卡口镜头(包括C-CS适配器)
  • 可调节的后焦距(12.5~22.4 毫米)
  • 三脚架安装1/4″-20

系统兼容:

从 Raspberry Pi 1 Model B 开始,此相机模块几乎与所有型号的树莓派开发板兼容(安装有最新操作系统)。

镜头规格:

默认模组不包含镜头,所以需要额外购买。树莓派官方认证的经销商会提供两个选择:6mm 焦距的CS卡口镜头,售价 25 美元;以及 16mm 焦距的C卡口镜头,售价 50 美元。

外挂式搭配:

摄影圈的朋友们有福了。