用树莓派Pico W创建自己的Slack机器人

原作:Sandeep Mistry 

编译:IoT前哨站

Slack是一款在线协作软件,可以让你与团队成员进行聊天、文件传送、语音/视频通话等功能。Slack还可以整合多种工具和服务,如电子邮件、Google Drives、Twitter、Trello等,以提高工作效率和自动化任务。Slack是世界各地公司和个人的首选平台,拥有超过20万付费客户和77个财富100强企业的使用者。它有App方便大家在手机或平板电脑上使用。

这次要实现的树莓派Pico W远程控制机器人,简单来说,就是我们在手机上用Slack发消息,指挥Pico W帮我们干活。

Slack 的 chat.postMessage API 可将消息从开发板发送到 Slack 频道。Slack 为应用和机器人提供了一个事件 API,用于响应 Slack 上的活动。由于开发板不能从公共互联网直接访问,因此无法使用公共 HTTP webhook。我们必须使用Slack 的Socket Mode。Socket Mode使应用和机器人能够使用动态的WebSocket 接收事件。动态套接字连接的URL可以通过Slack的apps.connections.open API获取。

Pico W与Slack API 接收事件和发送消息的通信机制:

要完成上述操作,你必须先有Slack令牌。

配置 Slack

在 Web 浏览器中,访问 https://api.slack.com/apps 并使用您的 Slack 凭据登录。单击“创建新应用”按钮。

单击“从头开始”选项。

输入应用程序的名称(例如“Pico W”),为应用程序选择一个工作区,然后单击“创建应用程序”按钮。

单击左侧的“Socket Mode”部分,然后单击切换到“启用Socket Mode”。


输入应用级令牌的“Token Name”,例如“Pico W app”,然后单击“生成”按钮。

生成并显示应用级令牌,复制该值并保存以备将来使用,然后单击“完成”按钮。

单击左侧的“OAuth 和权限”部分,向下滚动到“Scopes”部分,然后单击“添加 OAuth 范围”按钮。

添加“app mention:read”权限。

添加“chat:write”权限。

单击左侧的“事件订阅”部分,然后单击“启用事件”开关。

展开“订阅bot事件”部分并单击“添加bot用户事件”按钮。

选择“app_mention”。

点击右下角的“保存更改”按钮。

点击左侧的“基本信息”部分,然后点击“请求安装”按钮。

填写“简短描述”,选择“背景颜色”,点击“保存更改”按钮

工作区管理员可以批准申请。然后转到“基本信息”部分,单击“安装到工作区”按钮。

安装完成后,单击左侧的“OAuth & Permissions”部分,滚动到“工作区的OAuth Token”部分,然后复制“Bot User OAuth Token”值并保存以供将来参考。

现在你有了一个应用程序级别的令牌值和一个Slack应用程序的Bot用户OAuth令牌值,可以在Raspberry Pi Pico W板上使用。

基于 MicroPython 的 Slack 机器人

MicroPython 为许多基于 Arm Cortex-M 的微控制器提供 Python 3 实现,包括 Raspberry Pi Pico W 板上的 Raspberry Pi RP2040。

Thonny IDE 将用于安装 MicroPython 并将代码上传到 Raspberry Pico W 板。从 Thonny 主页下载适用于您的计算机的操作系统 (OS) 专用版本的 Thonny。在撰写本指南时,Thonny 4.1.2 是最新版本。

用Thonny刷好MicroPython以后,将 GitHub 中的代码下载到计算机上的文件夹。

相关代码:

https://github.com/IoToutpost/example-of-a-slackbot-for-pico-w

打开 Raspberry Pi Pico W 板上的 config.py 文件,填写 Wi-Fi 网络的 SSID 和密码,以及之前配置的 Slack 应用和机器人令牌。

打开树莓派Pi Pico W板上的 main.py 文件,然后按绿色的播放按钮运行应用程序。如果一切配置正确,开发板现在将连接到您的 Wi-Fi 网络,然后连接到 Slack。

基于 C 语言的 Slack 机器人

对于 C 版本,以下库将与 pico-sdk 一起使用:

  • FreeRTOS 内核 – 为网络堆栈提供实时操作系统 (RTOS)
  • lwIP – 用于 TCP/IP 通信
  • Mbed TLS – 用于 TLS 通信
  • coreHTTP – 用于 HTTP 客户端
  • cJSON – 用于解析和序列化 JSON 数据

使用 Raspberry Pi 的 Pico SDK 和所需的工具链设置您的计算机。有关更多信息,请参阅 Raspberry Pi Pico 入门指南。

在终端窗口中,设置 PICO_SDK 环境变量:

export PICO_SDK_PATH=/path/to/pico-sdk

将目录更改为下载示例代码的位置,然后将目录更改为文件夹:pico-sdk

cd path/to/example-of-a-slackbot-for-pico-w

cd pico-sdk

创建一个构建目录,并将目录更改为该目录:

mkdir build

cd build

使用你的 Wi-Fi SSID 和密码以及 Slack 应用和机器人令牌运行,然后运行以编译应用程序:cmakemake

cmake .. -DPICO_BOARD=pico_w -DWIFI_SSID="<WIFI SSID>" -DWIFI_PASSWORD="<Wi-Fi Password" -DSLACK_APP_TOKEN="<Slack App Token>" -DSLACK_BOT_TOKEN="<Slack Bot Token>"

make

按住 Pico 板上的 BOOTSEL 按钮,同时使用 USB 电缆将板插入计算机。

将文件复制到挂载的Raspberry Pi Pico启动ROM磁盘:picow_slack_bot.uf2

按住 Pico 板上的 BOOTSEL 按钮,同时使用 USB 电缆将板插入计算机。

将文件复制到挂载的Raspberry Pi Pico启动ROM磁盘:picow_slack_bot.uf2

cp -a picow_slack_bot.uf2 /Volumes/RPI-RP2/.

使用串行监视器应用程序(如屏幕)查看主板的 USB 串行输出,将 /dev/cu.usbmodem00000000000001 替换为主板的路径:

screen /dev/cu.usbmodem0000000000001

如果一切配置正确,开发板现在将连接到您的 Wi-Fi 网络,然后连接到 Slack。

测试应用程序

在计算机上打开 Slack,并创建一个新的测试频道。在信息输入窗口中输入,然后点按绿色按钮或按回车键发送。@<name of Slack app> LED on

在 Slack 中向 Pico W 发送第一条消息

由于 Pico W 不在频道中,系统将提示您添加它们。点击“邀请他们”按钮。

邀请Raspberry Pi Pico W加入频道

被邀请后,开发板将点亮 LED, 然后回复消息告知状态。您也可以尝试发送消息以关闭 LED。@<name of Slack app> LED off

Raspberry Pi Pico W 在 Slack 中收到指令并回复

结论

本指南介绍了通过Raspberry Pi Pico W上运行MicroPython和C应用程序,来与Slack API发送和接收消息。

示例应用程序代码可以接收并处理消息文本,以控制板载 LED,然后将 LED 的当前状态告知用户。

你可以在自己的Raspberry Pi Pico W上尝试一下,然后在示例代码的基础上构建更多功能,从而将 Slack 扩展到物理世界。

树莓派获得Arm的战略投资,进一步加强长期合作伙伴关系

Arm控股有限公司和树莓派近日宣布达成一项协议,由Arm对树莓派进行战略投资,收购树莓派的少量股权,进一步加强两家公司的长期合作伙伴关系,为物联网(IoT)开发社区提供关键解决方案。

随着业界对边缘计算的需求加速,对物联网和人工智能应用的要求越来越高,树莓派为全球各地的企业与个人提供了低成本、高性能的产品和解决方案。

预计这项投资案将进一步巩固双方自 2008 年开启的伙伴关系,让树莓派可以为学生、技术爱好者与商业开发人员推出更多受欢迎的 Arm 架构产品。

比如2023年10月底上市的树莓派旗舰 Raspberry Pi 5,就是基于Arm架构,目前最先进的一款树莓派产品。

Arm物联网业务线高级副总裁兼总经理Paul Williamson表示:“Arm和树莓派有一个共同的愿景,即:通过降低创新门槛,使所有人都获得计算能力。让任何地方的任何人都可以学习、体验和创造新的物联网解决方案。 基于 Arm 架构,开发人员能够更快、更轻松地进行创新,这对于推动全球高性能物联网设备的应用至关重要。这项战略投资进一步证明了我们对开发者社区以及树莓派伙伴关系的持续承诺。”

树莓派首席执行官Eben Upton表示:“Arm技术一直是我们平台的核心,这项投资也是我们长期合作伙伴关系的一个重要里程碑。我们将继续为每一位玩家降低门槛,不管是学生和技术爱好者,还是大规模部署商业系统的专业开发人员。采用 Arm 技术作为当前和未来产品的基础,将使我们能够获得所需的计算性能、能效和广泛的软件生态系统,”

相关链接:

https://newsroom.arm.com/news/raspberry-pi-investment

用树莓派Pico W做蓝牙遥控车

不然树莓派Pico W刚放出来那会,官方只对Wi-Fi做了支持,并未启用蓝牙功能。但这个小片片上有英飞凌的CYW43439无线模块,蓝牙、Wi-Fi都支持的。

经过漫长的等待,2023年6月,官方终于腾出手让这小片片功能全部释放。

你现在不需要再外接HC-05等其它模块,只需要原来的一片Pico W,就可以通过C语言或MicroPython来启用蓝牙了。

蓝牙在嵌入式领域有多重要,多好使,估计物联网和应用电子的从业者能跟你讲半天。

这次就让Kevin McAleer这位树莓派Pico W老粉,用MicroPython编程来给大家实践一下。

从蓝牙基础,一直跟你讲到蓝牙控制小车。深入浅出,精打实招。

https://mp.weixin.qq.com/s/EZic0V6Uba93gPiqRdGTBg

相关代码:

https://github.com/IoToutpost/pico_ble_remote

Raspberry Pi Pico W 蓝牙功能已获得固件支持

Raspberry Pi Pico W 发布后,一年时间已卖出 50 万片。有众多应用项目是用它来实现,例如用来架设网站、用来监看植物生长状态等。

不过,Pico W 的无线功能只开启了部份,只能使用 WiFi 功能,蓝牙功能仍关闭着,而 Pico W 上的英飞凌(Infineon)CYW43439 芯片其实是 WiFi、蓝牙功能都有的。不仅可以使用 2.4GHz 频段的 IEEE 802.11n WiFi,也可以使用 2.4GHz 频段的蓝牙 5.2,而且是经典 classic 蓝牙、BLE(Bluetooth Low Energy)蓝牙都可以用。

所以在 Pico W 推出时,就已经有人推测之后会再推出可以启动蓝牙功能的版本,或者是已经售出的 Pico W 可以透过固件更新重启蓝牙功能,而这个猜测果然没错。树莓派官方在 2023 年 6 月释出更新,可以让已经卖出的 Pico W 也能启用蓝牙。

注:其实 2023 年 2 月的 C SDK 1.5.0 就已经支持蓝牙,但相同时间 MicroPython 还没有支持。

Pico W 的 C SDK 是以 BSD 3-Clause 协议,MicroPython 则是采 MIT 协议。

Pico W 支持蓝牙现况说明

由于 Pico W 支持 C 语言和 MicroPython 语言的开发,两种版本都有更新,都可以启用蓝牙。C 语言是 1.5.1 版的软件开发工具包(SDK)上开始支持蓝牙,MicroPython 则是透过新建立(build)的固件来支持。

新版虽然支持经典蓝牙,但有一部份暂时不行,即 ACL(Asynchronous Connectionless Lin)与 SCO(Synchronous Connection Oriented Link),估计要更后续才可能完备。而在 BLE 方面,Pico W 可以扮演中央(central)角色也可以扮演外围(peripheral)角色。

更重要的是,并不是同时间只能选择使用经典蓝牙或 BLE 蓝牙,其实是可以两者同时启用的,不需要取舍。至于新版到底支持多少种蓝牙应用型态与通讯协议,可以直接上 GitHub 查看:

https://github.com/bluekitchen/btstack#supported-protocols-and-profiles

为了方便大家尽快启用Pico W的蓝牙功能,官方推荐可以参考 Pico W 的在线文件:

https://www.raspberrypi.com/documentation/microcontrollers/

另外也有一份指引可以快速导引创客用 Pico W 连上 Internet:

https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf

Pico W 历经一年发展,大体可以看出其推进模式。首先,树莓派官方认为 WiFi 的需求会大于蓝牙,所以刚推出时只先支持 WiFi,之后再透过软件开发工具包与固件更新来补充支持蓝牙。

然后,由于软件开发工具包是在计算机上使用,加上 C 语言比较轻量,所以 C 语言的支持速度又比 MicroPython 快一点,MicroPython 是解释式程序语言,需要换替固件才能改变直译环境,也较吃硬件支持,所以支持的速度会慢于 C 语言。

或许未来树莓派也会开放 Pico W 上无线通信芯片,使创客撰写的程序可以直接跑在无线通信芯片上,而不一定非要跑在 RP2040 主控芯片上。

树莓派5模拟任天堂游戏机

由于Raspberry Pi 5的推出, Raspberry Pi上的游戏达到了新的高度。 比如Leepspvideo 对 Pi 5 游戏的最新探索。

在视频中,Leepspvideo 展示了他在 Raspberry Pi 5 上模拟任天堂 GameCube 的成果。它在一个名为 Dolphin 的 GameCube 专用模拟器上运行。结果是可以玩的,只要你让 Pi 保持足够的凉爽,它就可以轻松处理大量GameCube ROM。

Leepspvideo 还尝试使用相同的模拟器进行 Wii 模拟。性能不如真正的任天堂 Wii ,但一点点超频和主动冷却就可以让它正常工作。

当涉及到 Raspberry Pi 5 上的图形接口时,你有几个选项可供选择。Leepspvideo 选择使用 OpenGL 而不是 Vulcan,因为该工具迫切需要在 Pi 5 上得到一些关注。

你无需额外的硬件即可模拟 GameCube,Pi 5 上的所有部件都足以实现这一目标。当真正玩游戏时,你需要一个手柄。在本例中,Leepspvideo 使用的是 Xbox 360 控制器,但你也可以使用任何兼容的控制器。

因为一切都是新的。随着时间的推移,仿真性能只会变得更好,尤其是当用户可以使用 Pi 5 并亲自尝试之后。

Leepspvideo 遇到了一些延迟,并建议做一些工作来改进体验。

相关视频:https://www.bilibili.com/video/BV1JN41147MG/?spm_id_from=333.999.0.0

树莓派Zero做的电子墨水名片

“你好,我的名字是……”

人们参加沙龙或者酒会的时候,经常要对别人口述自己的名字和职业。

如果可以用电子墨水,以像素化的形式显示他们的名字和脸时,相信能节约很多时间。

创客Josh King做的这个PiE-Ink电子墨水名片,就很有意思。

在他的Instructables教程中,他解释了完整的方法。

乔什·金电子墨水名牌树莓派

对于徽章,Josh使用了Raspberry Pi Zero,PaPiRus 2“电子墨水HATAdafruit Powerboost 1000c和LiPo电池。他还用到了其它配件,例如磁铁和粘土。

Josh把树莓派Zero和Powerboost通过焊接连在一起,并允许LiPo电池为设备供电。

乔什·金电子墨水名牌树莓派

然后,他连接PaPiRus HAT并用粘土固定整个装置,以确保紧密贴合。他还加了一个迷你滑动开关。

乔什·金电子墨水名牌树莓派

在SD卡上预装Raspbian后,Josh遵循PaPiRus的设置,确保所有库文件都装好,并且让树莓派识别2英寸屏幕。

然后下载代码,运行……

注:你可以直接从Josh的GitHub帐户下载相关代码。记得将图像缩小到 200×96 才能使其适合电子墨水屏幕。

乔什·金电子墨水名牌树莓派

有了它,你就可以在各种活动和会议上让大家快速认识你了。

如果你想用树莓派Pico做电子墨水名片的话看这里:

https://mp.weixin.qq.com/s/Nip6ZB60et0xujLQgNRldw

骑在龟背上监测保护区的树莓派

为了引起人们对野生动物面临威胁的关注,动物保护技术组织Arribada的创始人戴维斯设计并制作了多款低成本的野生动物观察工具。从可以唤醒并检测动物路过的自动相机,到可以在特定动物出现时发出警报的设备……他认为设备成本不应该成为帮助极度濒危动物的障碍。

在龟背上拍摄的照片

挑战

Arribada的第一个项目是监测绿海龟,他们需要一套强大但成本不高的设备,可以在偏远的地方使用,而且不需要人为干预。这个设备将显示渔业和人类活动对绿海龟的影响,以及为这种濒危物种引入什么样的保护措施提供线索。

为了追踪海龟,Arribada 的解决方案需要能够在海龟游动的深度下防水,以及能够在没有人为干预的情况下可靠地运行。它还需要既经济又易于被当地研究团队使用。

解决方案

最终的成品,将Raspberry Pi Zero和Raspberry Pi相机模块封装在了一个轻巧的防水外壳中。这可以无害地附着在海龟的壳上,以跟踪它在海浪下的旅程。设备将捕获照片、视频和位置信息。一旦视频录制完成,设备就会从海龟的壳上脱离。这样既不影响海龟的活动,又可以拍下海龟们的行为。

其中的一个挑战是,GPS定位只有在海龟浮出水面时才有效。但在游动中,海龟浮出水面的时间通常不到两秒,根本来不及唤醒监控设备以获得三角定位,因此Arribada开发了自己的Horizon Assted-GPS标签,作为基于树莓派Zero套件的关键部分。

戴维斯表示:“你可以想象在Raspberry Pi设备上为海龟运行AI模型的好处,我们可以唤醒设备,捕获场景,处理场景,我们甚至可以让设备做出一些明智的选择,这值得记录吗?回去睡觉还是应该留下来?”

除了做出“继续监控”或“进入睡眠周期”的决定之外,使用 Raspberry Pi 还可以获得机器学习优势。比如下载新模型,训练模型,调整和审查视频内容。Arribada可以用很低的成本完成这一切,因为树莓派非常实惠。

这种方法已经让Arribada成为一个成熟的研究合作伙伴,动物保护组织对Edge ML将要做的事情表现出了“真正的兴趣”。已经不只在海龟身上使用它。”

一个由树莓派驱动的设备正在南极洲监视企鹅

另外,有一些项目需要定制的解决方案。塞浦路斯的情况就是这样,该国历史最悠久的动物保护机构 —— 海龟保护协会(SPoT)就热衷于使用LoRa无线电通信来监测捕鱼活动。

而Arribada基于船只的LoRaWAN网关就可以提供当地捕鱼活动的详细信息,并报告该国沿海五个重要海龟繁殖地的任何潜在威胁。塞浦路斯的通信法规要求SIM卡在使用四个月后进行注册,这使得在那里用蜂窝通信很麻烦,因此使用树莓派4和树莓派以太网供电帽来设置LoRaWAN。这种设置也意味着船主不用为船上的跟踪系统支付任何费用。一根8米高的天线就能搞定一个强大的监控系统,可以清晰地发现半径15公里内的任何渔船。

结果

Arribada用树莓派收集的视频理清了海龟的数量,并揭示了它们的筑巢地点。支持了在一年中的特定时间禁止进入特定海滩和沿海区域的论点 —— 这是对这种濒危物种的重要保护。

以前,环保主义者需要的许多摄影工具都标价很高,以至于研究项目要么变得不可行,要么最终在范围上受到严重限制。高昂的费用让很多项目只能进行一次监测,而不是重复监测以跟踪一段时间的变化。

防水外壳通常是套件中最昂贵的部分

用不到50英镑的树莓派相机(带有树莓派Zero或Zero W),而不是500英镑的商业相机。意味着可以部署更多设备,覆盖更大的范围,从而提供更准确的统计结果。在大多数情况下,3D打印的防水外壳是每个套件中最昂贵的元素。随着最新树莓派相机硬件的出现,Arribada能够对图像和视频捕捉能力进行巨大的改进。

Arribada还赢得了企鹅观察项目的肯定,这是一个广泛的研究项目,监测世界不同地区的企鹅数量。Arribada由Python控制的树莓派相机装置比企鹅学家以前用的商用相机便宜至少三倍。费用的减少意味着研究团队不用太过计较设备的放置地点,把设备留在原地进行远程监测也更加放心,因为有些设备不可避免地会受到损坏。

事实上,这些硬件设备对温度的适应能力令人印象深刻,在Arribada团队进行维护之前,企鹅观察相机在南极度过了三个冬天。他们能够检索到三年的照片,并发现树莓派的设备每天都能可靠地拍摄并保存一张照片。这些照片直接促成了人们对气候变化和企鹅栖息地丧失的思考和讨论。

Arribada的官网:

https://arribada.org/

用树莓派Pico和气体传感器保护厨房

当你在厨房烹饪食物,又跑去刷剧,玩游戏,取快递……

食物正在加热,没人看着,锅烧焦了怎么办?着火了怎么办?

无人看管的烹饪是迄今为止厨房火灾的主要原因。

你可能需要有个东西来帮你盯一下。

这个小东西主要是由树莓派Pico和传感器构成的。

先说开发板,虽然该项目是基于Raspberry Pi Pico构建的,但你可以使用任何与RP2040兼容的电路板创建它。

该项目中使用的Grove-HCHO传感器可检测空气VOCs(挥发性有机化合物)的气体浓度。比如:甲醛和苯。

相关链接:

https://wiki.seeedstudio.com/Grove-HCHO_Sensor/

它是如何工作的?

通过在Raspberry Pi Pico上运行Edge Impulse的Sensor Fusion软件,它可以从气体,温度和湿度传感器读取数据。然后数据通过神经网络模型计算,会判断当前的厨房是否处于安全状态。

是的,要更准确的判断厨房安全状态,你需要更多传感器配合。

Edge Impulse相关链接:

https://studio.edgeimpulse.com/

这里有相关视频来引导你完成软件下载、设置和部署。如果你有兴趣构建自己的厨房监视器,可以照着完成。

经过AI训练,它可以检测厨房的三种状态:空闲,正常烹饪和非正常燃烧。

隐藏在炉子上方风扇罩中的传感器

除了烹饪,从新房子到新家具,也都会存在危害健康的挥发性有机化合物(比如甲醛)。如果你在家里检测到高浓度的挥发性有机化合物,那么你要尽快通风来保证安全。

相关链接:

用Phew在Pico W上构建登录系统

Home Assistant 加 Pico W 改进车库门

树莓派Pico如何用好定时器

在树莓派Pico上跑BASIC程序

Pico SDK — 树莓派Pico起步

树莓派Pico W控制玩具车

树莓派Pico怎么接DHT11温湿度传感器

树莓派Pico W迷你火星车

用Arduino IDE给Pico W开发应用

树莓派Pico上跑TinyML音频分类

用Rust语言来开发树莓派Pico

树莓派Pico的CircuitPython入门

用Pico W做个手机遥控的车库门

太阳能驱动的Pico W在线气象站

Pico W搭网站并显示访问者IP

通过MicroPython控制Pico W上的板载LED

基于树莓派Pico的机器学习

在树莓派Pico上运行“毁灭战士”

用树莓派Pico制作的无人机PiWings

如何让树莓派Pico支持LoRaWAN

长者为你开启树莓派Pico的I/O世界

在树莓派Pico上播放《Bad Apple》

在树莓派Pico上用BBC Micro模拟器玩游戏

树莓派能跑Stable Diffusion了

Stable Diffusion是一种文本到图像生成的大型深度学习模型,它可以根据文本的描述生成详细的图像,也可以用于其他任务,如图像修复、图像扩展、图像翻译等。

它是基于潜在扩散模型(Latent Diffusion Model)的一种变体,通过对图像添加和去除噪声来训练和生成图像。

该模型由Stability AI和LAION联合开发,目前是一个开源的AI平台,有很多用户和开发者贡献了不同的预训练模型和插件。

一般情况下,跑Stable Diffusion需要的配置:最好是有英伟达(Nvidia)的独立显卡,显存不少于4GB,推荐8GB以上;内存8GB以上,推荐16GB或以上;硬盘40GB以上的可用空间,最好是固态硬盘;操作系统支持Windows 10/11,macOS(仅限Apple Silicon或更新版本),Linux等。

但最近有人在树莓派Zero 2上运行Stable Diffusion了,而树莓派 Zero 2 只是内存512MB 的单板计算机。

它的配置和规格如下:

  • 处理器:Broadcom BCM2710A1,四核64位SoC(Arm Cortex-A53 @ 1GHz)
  • 内存:512MB LPDDR2
  • 连接性:2.4GHz IEEE 802.11b/g/n无线局域网,蓝牙4.2,BLE,带天线的屏蔽罩
  • 接口:1 × USB 2.0 OTG接口
  • HAT兼容的40针I/O头插座(未焊接)
  • microSD卡插槽
  • Mini HDMI端口
  • CSI-2摄像头连接器
  • 视频:HDMI接口
  • 复合的视频和复位引脚焊点
  • 多媒体:H.264, MPEG-4解码(1080p30)
  • H.264编码(1080p30)
  • OpenGL ES 1.1, 2.0图形
  • 输入电源:5V DC 2.5A
  • 工作温度:-20°C to +70°C

Raspberry Pi Zero 2 W的尺寸是65mm × 30mm,与原来的Raspberry Pi Zero一样。它的性能比原来的单核Raspberry Pi Zero提高了五倍。一般用于智能家居、物联网等项目。

为了让更多低配置的计算机也能用Stable Diffusion出图。

一个名为vitoplantamura的开发者决定写一个超小的推理库,让260MB内存的单板机也能将Stable Diffusion跑起来。终于,他成功了。

他用C++开发的OnnxStream,是一个能够在低内存设备上运行 Stable Diffusion 的推理库,它通过分离推理引擎和权重提供器,以及量化等技术,完成了在树莓派 Zero 2 上生成图像的挑战。

与微软的OnnxStream 相比,vitoplantamura的OnnxStream 只需要消耗 1/55 的内存就可以达到同样的效果,但(在 CPU 上的)速度只比前者慢 0.5-2 倍。

虽然运行速度较慢,但它却是大模型在更小、更有限的设备上部署的崭新尝试。

相关源码:

https://github.com/vitoplantamura/OnnxStream

用Pi-Timolo和树莓派做一个夜视摄像头

安德鲁·格雷戈里 (Andrew Gregory) 发现,后花园的狗经常深夜叫唤。

于是他用树莓派做了一个夜间摄像头,来拍下那个不断引发狗叫的神秘访客。

要放在室外,少不了一个防雨且有一定强度的容器,这里他用到了几块厚木板。

市场上有一系列适用于 Raspberry Pi 的摄像头,比如:Pi Camera Module 3、Raspberry Pi Global Shutter Camera、Raspberry Pi High Quality Camera 和各种热敏模块。

但当访客在夜间到来,最好用的是 Pimoroni 等厂商提供的夜视摄像头。

关于树莓派的选择,作者用到了Raspberry Pi Zero W,比较轻便,兼容性也很好。

这个摄像头设在后花园,距离足够近,可以通过家庭 Wi-Fi 网络即可获取视频流。

但作者不想拉电源线,所以需要电池供电。

事后看来,最好是选择 USB 电池组——这种电池组可以即插即用到任何设备,并具有一定程度的保护作用。

作者选择了 1200mAh,3.7 V LiPo 电池,它裸露且易碎,无法直接连接到 Raspberry Pi Zero W。所以需要给 Raspberry Pi Zero 添加一个 LiPo SHIM(这需要一些焊接)。

本文提到的树莓派电池连接板,相关地址:

把供电模块、摄像头、树莓派都接好后的状态,差不多是这样。

装好系统,通电联网,登录系统执行如下命令进行测试:

raspistill -v -o test.jpg

如果一切顺利,你会看到一个图像在屏幕上闪了一两秒钟,然后颜色会变暗。那是因为夜视摄像头模块使用红外线(大多数摄像头模块会过滤掉这层光谱)。

作者在这里使用的软件包为 Pi-Timolo(Raspberry Pi Time、Motion 和 Low light),由 Claude Pageau 开发。 

可以执行如下命令安装(最好是update系统以后):

curl -L https://raw.github.com/pageauc/pi-timolo/master/source/pi-timolo-install.sh | bash

然后到一个设置界面,自行操作即可。

不过与 Raspberry Pi Camera Module 3 的 12MP 相比,夜视摄像头上的 5MP 传感器还是有些很小,因此作者很想找到一些红外 LED 并制作自己的摄像头模块。

来自:HackSpace 第 66 期