带Wi-Fi的树莓派Pico W上市了

Raspberry Pi Pico 是一款低成本,高性能的嵌入式开发板,也是树莓派基金会发布的第一款MCU。

它集成了 Raspberry Pi 自己的 RP2040 微控制器芯片,运行速度高达133 MHz的双核 Arm Cortex M0 + 处理器,264KB SRAM和2MB板载闪存,以及26个多功能GPIO引脚。

说的再好……Pico没有无线联网功能。

终于!赶在2022年上半年最后一天,Raspberry Pi发布了 Pico W。

带Wi-Fi功能的树莓派MCU,上市了。

关于无线芯片

树莓派基金会此次采用的无线芯片是英飞凌的CYW43439,该芯片同时支持Wi-Fi和低功耗蓝牙,不过目前只能在Pico W上启用Wi-Fi,蓝牙要再等等。

相关电路封装在一个金属屏蔽壳中,为相关集成商降低了合规成本。  

有了2.4GHz 802.11n无线功能之后,Pico W可以成为常见loT解决方案的重要一环。

关于引脚

引脚和老款Pico保持一致

关于固件

https://datasheets.raspberrypi.com/soft/micropython-firmware-pico-w-290622.uf2

开发文档

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

关于售价:

Pico W现在官方售价6美元一块,只是现在是全球缺货状态。粉丝们估计要再等一等了。

如何在树莓派上玩射击游戏,Raspberry Pi 安装Quake 3

在本指南中,记录下如何在树莓派上玩第一人称射击类游戏,需要安装和配置Quake 3。

《Quake 3》是第一人称射击游戏,可以进行多人竞技场射击竞赛。

虽然《Quake 3》早在1999年就已经发布,但在射击游戏爱好者中仍然备受推崇。

软件开发团队发布了引擎的源代码,现在它已经被移植到各种设备上运行,包括树莓派。

在本教程中,我将通过两种不同的方法让Quake 3在树莓派上运行。

第一个也是最直接的方法是使用通过包仓库提供的编译版本安装,这种方法虽然简单,但性能略差。

另一种方法是编译高度优化的Q3Lite,Q3Lite可以在树莓派上高帧数运行,这是比较好的选择。

既然要玩游戏,必然需要运行一个带有桌面界面的Raspberry Pi操作系统版本。

设备清单

下面是所有的设备清单,点击链接直达特别优惠购买

建议

可选

我在Raspberry Pi 4和Raspberry Pi 3B+上测试了本教程,运行的是Raspberry Pi OS的最新可用版本(Buster版本)。

软件包库中安装Quake 3

从Raspberry Pi OS软件包仓库安装Quake 3是最简单的方式。

与更快的Q3Lite相比,有几个优点。

首要原因是它的安装和运行超级简单。只需几个命令,就可以将Quake 3安装到Raspberry Pi上。

第二个原因是,如果使用的是树莓Pi 4,这是目前玩Quake 3 Arena的唯一方式。Q3lite目前还不支持Pi 4的硬件。

缺点是,性能还有很多需要改进的地方。一旦增加了多个玩家,帧数就会急剧下降。

将Quake 3安装到你的Raspberry Pi上

在本节中,完成Quake 3安装到Raspberry Pi上。

为了使这个过程简单化,我使用了Raspberry Pi OS资源库提供的Quake 3版本。

1. 第一个任务是更新操作系统。

可以通过运行以下两个命令来升级所有已经存在的软件包。

sudo apt update
sudo apt full-upgrade

2. 现在操作系统已经更新了,开始从资源库中下载Quake 3。

运行以下命令开始安装。

sudo apt install quake3

这个命令直接从Raspbian仓库下载软件包。请注意,这不包含游戏数据,只包含Quake 3 Arena引擎的移植版本。

3. 安装好Quake 3软件包后,需要通过下面的命令来下载游戏数据。

使用了一个名为game-data-packager的程序。这个程序会将Quake 3竞技场的演示数据下载到设备上。

game-data-packager quake3 -i --gain-root-command sudo

这个过程需要一些时间,因为它会下载Quake 3的数据并将其提取到所需位置。

4. 如果想使用Quake 3的零售版,那么你还需要遵循几个步骤。

首先,从Quake 3 Arena零售版安装中找到名为pak0.pk3的文件。

然后将该文件复制到Raspberry Pi上的以下目录/usr/local/games/quake3/baseq3。

在树莓派上运行Quake 3。

完成Quake 3的安装到Pi上,就可以运行它了。

1. 要在Raspberry Pi上找到Quake 3,打开开始菜单。

点击屏幕左上角的树莓图标即可打开。

2. 接下来需要将鼠标悬停在 “游戏 “菜单上(1. 将鼠标悬停在这个选项上,会弹出操作系统上安装的游戏列表。

在出现的菜单中,点击 “Quake 3 Arena “选项(2.

3. 现在已经在树莓派上运行Quake 3了,并且进入到它的主菜单。

在这个菜单中,可以开始一个新的游戏,并配置游戏的分辨率等设置。

在树莓派上编译Q3Lite

在本节中,完成在树莓派上编译Q3Lite。

使用Q3Lite版《Quake 3》最显著的优势是性能。

Q3Lite采用了ioquake3引擎,删去了不需要的功能,并实现了OpenGL ES渲染器。这两项改进结合在一起,使得所有的树莓PIS都能有更快的渲染速度。

使用此构建,可以在非超频的Raspberry Pi 3上轻松实现每秒超过60帧的速度。

现阶段,Q3Lite目前还没有对树莓派4的支持。不过,很快就应该会支持了。

编译Q3Lite到Raspberry Pi。

在本节中,完成将Quake 3编译安装到Raspberry Pi。

为了简化这个过程,使用Raspberry Pi操作系统仓库提供的Quake 3版本。

1. 在Pi上编译Q3Lite之前,需要确保操作系统是最新的。

可以运行以下命令更新所有现有的软件包。

sudo apt update
sudo apt full-upgrade

2. 接下来,需要安装编译Q3Lite所需的所有包。

运行下面的命令来安装所需的软件包。

sudo apt install git libasound2-dev libudev-dev libibus-1.0-dev libevdev-dev libdbus-1-dev libcurl4-openssl-dev fcitx-libs-dev libgbm-dev libsamplerate0-dev xinput

3. 包全部安装完毕后,来下载Q3Lite源码。

可以利用git程序来检索所需的代码。

git clone https://github.com/cdev-tux/q3lite.git

3. 现在cd到Q3Lite目录下。

cd ~/q3lite

4. 现在运行Q3Lite团队编写的bash脚本。

这个脚本将完成所有繁重的工作,编译Q3Lite软件以及下载它所需要的所有额外数据。

sudo ./make-raspberrypi.sh

这个编译过程会花费一些时间,这个过程在较新的Raspberry Pi上会更快些。

5. 下一步就是安装Quake 3 Arena的补丁数据。

使用make-raspberrypi脚本。

sudo ./make-raspberrypi.sh install

6. 在安装过程中,会被问到是否要下载更新的Quake 3 pak文件。

由于Q3Lite需要这些文件,输入y,然后按回车键。

7. 在脚本下载pak文件之前,需要同意idTech的EULA。

使用TAB键选择”<I Agree>”,然后按ENTER键。

8. 安装过程完成后,可以获取游戏数据来玩了。

获取Quake 3游戏数据

对于这一步,需要在其他设备上拥有Quake 3 Arena,或者下载并安装Quake 3 Demo。

1. 需要在Quake 3的安装目录下找到一个名为pak0.pk3的文件。

这个文件包含了Quake 3所需要的所有数据,包括关卡、角色和声音。

2. 找到了这个文件的位置,把它复制到Raspberry Pi上。

需要复制到的文件夹位于Raspberry Pi上的/usr/local/games/quake3/baseq3。

3. 把文件复制过来,就可以在目录上使用ls命令来验证一切是否正常。

ls -l /usr/local/games/quake3/baseq3/

从这个命令中,应该看到类似下面的东西。现在系统上已经有了所有需要的游戏包。

-rw-r--r-- 1 root root 479493658 Jun 11 09:30 pak0.pk3
-rw-r--r-- 1 root root    374405 Nov 14  2002 pak1.pk3
-rw-r--r-- 1 root root   7511182 Nov 14  2002 pak2.pk3
-rw-r--r-- 1 root root    276305 Nov 14  2002 pak3.pk3
-rw-r--r-- 1 root root   9600350 Nov 14  2002 pak4.pk3
-rw-r--r-- 1 root root    191872 Nov 14  2002 pak5.pk3
-rw-r--r-- 1 root root   7346884 Nov 14  2002 pak6.pk3
-rw-r--r-- 1 root root    320873 Nov 14  2002 pak7.pk3
-rw-r--r-- 1 root root    454478 Nov 14  2002 pak8.pk3
drwxr-xr-x 2 root root      4096 Jun 11 08:43 vm

在树莓派上玩Q3Lite

现在已经完成了Q3Lite的安装,终于可以在Raspberry Pi上启动它了。

1. 首先,打开Raspberry Pi上的开始菜单。

可以通过点击屏幕左上角的树莓图标打开开始菜单。

2. 在开始菜单中,需要将鼠标悬停在 “游戏 “选项上(1.

然后将鼠标悬停在 “Q3lite “文件夹上(2。

在弹出的菜单内,点击 “Q3lite “选项(3.

3. 现在有一个完全可以运行的Quake 3在Raspberry Pi上。使用优化后的Q3Lite引擎。

到这里,你应该已经在你的Raspberry Pi上安装并运行了Quake 3。

原文:

https://pimylifeup.com/raspberry-pi-quake-3/

翻译:

如何在树莓派上玩射击游戏,Raspberry Pi 安装Quake 3

让Apache IoTDB轻松部署到ARM开发板

Apache IoTDB(物联网数据库)是一体化收集、存储、管理与分析物联网时序数据的软件系统。

采用轻量式架构,具有高性能和丰富的功能,并与Apache Hadoop、Spark和Flink等进行了深度集成,可以满足工业物联网领域的海量数据存储、高速数据读取和复杂数据分析需求。

官方提供了x86的版本和源代码,但没提供ARM的版本。

这里编译了一个arm64的版本,方便广大的ARM玩家测试使用。

你可以在树莓派4B,Rockpi,Firefly,香蕉派等arm64架构的系统上调试,运行此镜像。

注:这里的v0.13版本,对应的是apache-iotdb-0.13.0-server-bin.zip这个官方包。

主要工作目录:

/iotdb/sbin

运行后,执行start-server.sh文件,即可启动IoTDB。

nohup start-server.sh >/dev/null 2>&1 &

默认用户名密码都是root。

命令行登录,请执行:

start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root

官方仓库说明:

https://hub.docker.com/r/verdureorange/iotdb_arm

直接拉取镜像:

docker pull verdureorange/iotdb_arm:v0.13

如何将树莓派CM4的Wi-Fi改为外置天线

树莓派 CM4 在设计时考虑到兼容性,系统默认用的是内置 PCB 天线。那怎么设置,切换到外置 WiFi 天线呢?

首先,你得把树莓派 CM4 天线(Antenna Kit)给焊上去,也就是下图那个黄色圆点。 

然后编辑 /boot/config.txt 文件。

在文件末尾加入一行配置:

dtparam=ant2

然后重启 树莓派CM4 ,让配置生效即可。

一个外置天线,大概三十多块钱人民币吧。

树莓派摄像头Picamera2库公测中

作者:大卫·普洛曼

如果你使用过任何 Raspberry Pi 相机,你可能对Picamera很熟悉,这是一个出色的 Python 库,旨在轻松操作 Raspberry Pi 的拍摄功能。

但你可能也知道,随着我们最近转向更开放和更标准的 Linux API,Picamera库(建立在专有的 Broadcom 相机堆栈之上)将来不会再支持了。

带有Raspberry Pi HQ 摄像头的Raspberry Pi 4

最初的Picamera库是第三方软件,由 Dave Jones 开发。事实证明该库在我们的用户中非常受欢迎,因此我们承诺提供替代品。命名为Picamera2的新库正在由 Raspberry Pi 在剑桥内部开发,最终将成为官方支持的软件包。

所以今天我们要宣布Picamera2的第一个预览版

在 Bullseye 桌面上运行的Picamera2示例

预览版是什么意思?

我们所说的预览版是指正在进行的工作。它已经有很多你可以尝试的功能,但仍然缺少一些重要的东西,在我们更广泛地发布该库之前,功能和API 的许多方面也会发生变化。

当前版本中支持的功能包括:

  • 你可以配置和启动摄像头,并接收多个图像流。
  • Picamera2支持预览窗口,无论是独立的还是嵌入在Qt应用程序中。
  • 可以查询和设置相机参数。
  • 你可以将全分辨率图像捕获为JPEGPNG
  • 或者,你可以将它们捕获为numpy数组,以提供给图像分析程序。

但有一个明显缺失的功能,就是我们仍在使用 Raspberry Pi 的硬件h.264编码器进行视频录制。如果你想使用Picamera2从 Python 录制视频,那现在还无法做到,可能还需要“几周”的时间。

如果你有兴趣查看新的Picamera2库(预览版),我们也很想听到相关反馈。比如不该忽略的功能,或者可以优化的地方。

我能用它做什么?

最好的解释可能只是显示一些代码片段!第一个示例启动一个预览窗口,然后进行全分辨率的JPEG捕获:

from qt_gl_preview import *
from picamera2 import *
import time

picam2 = Picamera2()
preview = QtGlPreview(picam2)

preview_config = picam2.preview_configuration()
capture_config = picam2.still_configuration()
picam2.configure(preview_config)

picam2.start()
time.sleep(2)

picam2.switch_mode_and_capture_file(capture_config, "capture.jpg")

在下一个示例中,我们捕获预览图像并将它们传递给OpenCV,以查看它是否可以使用Haar 级联检测图像中的任何人脸。

一位树莓派博主的脸部识别测试

它会在找到的任何人脸周围绘制检测框,并再次在预览窗口中显示图像:

#!/usr/bin/python3

import cv2

from null_preview import *
from picamera2 import *

# Grab images as numpy arrays and leave everything else to OpenCV.

face_detector = cv2.CascadeClassifier("/usr/local/lib/python3.9/dist-packages/cv2/data/haarcascade_frontalface_default.xml")
cv2.startWindowThread()

picam2 = Picamera2()
preview = NullPreview(picam2)
picam2.configure(picam2.preview_configuration(main={"size": (640, 480)}))
picam2.start()

while True:
    im = picam2.capture_array()

    grey = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
    faces = face_detector.detectMultiScale(grey, 1.1, 5)

    for (x, y, w, h) in faces:
        cv2.rectangle(im, (x, y), (x + w, y + h), (0, 255, 0))

    cv2.imshow("Camera", im)

除了这两个之外,我们还创建了 20 多个小示例脚本作为非正式教程,并帮助人们探索此预览版本中可用的功能。在适当的时候,一旦事情变化的速度稳定下来,我们将努力扩展这些信息并添加一些更正式的文档和教程。

我该如何尝试?

你可以在 Github 上找到Picamera2 的预览版,并且存储库README.md提供了完整的安装说明。

但是,预览版不适合胆小的人。由于Picamera2是建立在libcamera自己的 Python 绑定之上的,这些绑定目前处于原始阶段,因此目前的安装涉及libcamera库的一个特殊版本,需要手动编译它。

目前还无法通过包管理器或其他机制安装Picamera2的预览版。你必须从源代码构建它。如果你对此感到不自在,最好等待稳定版本。

但是,如果你有机会查看示例代码并尝试使用该库,我们将非常感谢任何有用的建议。我将密切关注相机论坛上的讨论,以便尝试回答你遇到的任何问题。

树莓派可以网络安装了—— Beta版正在公测

大部分时候,我们都是用另一台计算机(比如运行 Raspberry Pi Imager写入镜像)来给树莓派装系统的。

但是,如果你一开始没有PC,如何将操作系统安装到 SD 卡上呢?

这是经典的先有鸡还是先有蛋的问题,我们刚刚解决了它。

新的网络安装程序正在运行

现在有一个实现网络安装的 Raspberry Pi 引导加载程序beta 版本,我们希望你能帮助我们对其进行测试。

新的网络安装功能可直接在 Raspberry Pi 4 或 Raspberry Pi 400 上启动Raspberry Pi Imager应用程序,方法是:先用以太网电缆从 Internet 下载它。

Raspberry Pi Imager 应用程序将在你的 Raspberry Pi 内存中运行,然后把操作系统写入空白 SD 卡或 USB 磁盘,就像平常一样。

如何使用网络安装程序

如果你想试用这个网络安装程序,首先必须安装bootloader的测试版。

对于当前已经上市的电路板,需要更新bootloader。

不过一旦测试期结束,我们最终将在树莓派出厂时直接安装新的网络引导加载程序,不再需要此步骤。

安装新的 beta 引导加载程序

在 Raspberry Pi 4 或 400 上更新bootloader最简单方法是在 Raspberry Pi 或另一台计算机上运行Raspberry Pi Imager,将所需的软件复制到 SD 卡上。

你需要一张备用的空白 SD 卡,如果你使用的是 Raspberry Pi 或另一台没有 SD 卡插槽的计算机,则需要一个 USB to SD转接头。

你应该知道,用于更新 Raspberry Pi 引导加载程序的 SD 卡将被擦除所有现有数据,因此不要将有重要数据的 SD 卡装在当前Raspberry Pi上 。

在 Imager 应用程序中,单击“选择操作系统”按钮并在弹出窗口中向下滚动“操作系统”列表。选择“Misc utility images”,然后选择“Beta Test Bootloader”。

选择新的 Beta 测试引导加载程序

接下来,你需要选择引导顺序。

所有选项相同,但启动顺序不同。有其他理由,否则应该选择“SD Card Boot”。

选择引导顺序

然后按照正常说明将更新的引导加载程序写入 SD 卡。

当 SD 卡完成写入后,你应该关闭 Raspberry Pi 并移除现有的 SD 卡并将其放在安全的地方。

将刚用 Imager 应用程序写过的卡插入 Raspberry Pi 并重新打开电源。板子 LED 会定期闪烁,屏幕会变绿,表示新的 beta 版本引导加载程序成功启动。

如果你想将引导加载程序恢复到“Release”版本,可以再次执行这些步骤,选择顶部的“引导加载程序”选项而不是“Beta 测试引导加载程序”选项。

现在移除你的引导加载程序更新 SD 卡并重启树莓派。

尝试网络启动

现在你已经更新了引导加载程序,一切应该和以前一样工作。

当 Raspberry Pi 启动时,引导加载程序会搜索要加载的软件。它首先查找 SD 卡,然后查找 USB 记忆棒,依此类推。

它会一直循环下去,直到找到要使用的软件。几秒钟后,你会在屏幕上看到一个诊断信息,告知它正在做什么。

如果你想插入原来的 SD 卡(你在这一切开始之前使用的那个),你的 Raspberry Pi 应该会像往常一样无缝地引导回操作系统。

如果你在插槽中没有 SD 卡或使用空白 SD 卡的情况下启动 Raspberry Pi,并且连接了键盘,那么你现在会看到一些不同的东西。

如果你连接了键盘(Raspberry Pi 400 总是如此),但 Raspberry Pi 无法找到操作系统,它将显示新的网络安装界面。

新的网络安装界面


在后台,你的 Raspberry Pi 仍在寻找可运行的操作系统。但是此时,你可以通过按住该Shift键三秒钟来启动网络安装过程。在出现提示时按确认你要继续按Space,它应该会要求你插入以太网电缆。

你将需要通过以太网电缆将 Raspberry Pi 物理连接到路由器,而不是将其连接到无线网络。你需要一根两端都有公头 RJ45 连接器的以太网电缆。大多数家用路由器的背面都有网口,可让你插入以太网电缆,因此将电缆的一端插入路由器,另一端插入树莓派。

记得插网线

当它检测到已插入电缆时,它会自动下载 Raspberry Pi Imager。如果下载失败,你可以重复该过程。

安装 Raspberry Pi Imager

最终,Raspberry Pi Imager 应用程序在树莓派上启动,允许你将完整的操作系统安装到新的空白 SD 卡或 USB 记忆棒上。

如果你还没有这样做,此时应该将另一张空白 SD 卡插入 Raspberry Pi 卡槽。Raspberry Pi Imager 允许你直接从 Internet 烧录系统。

系统装好后不会在启动时看到网络安装界面。如果还想运行它,只需要删除所有可启动磁盘,等 Raspberry Pi Imager 运行再重新插入它们。但注意不要覆盖任何有重要工作内容的磁盘!

Raspberry Pi OS官方的64位正式版来了

树莓派 Raspberry Pi 的官方操作系统 Raspberry Pi OS 此前一直是 32 位版本。

后来开始内测,但一直没有确定正式版本的发布时间。

近日,树莓派基金会宣布,Raspberry Pi OS 64 位版本正式推出,大家在官网下载频道可以直接下载了。

地址:

https://www.raspberrypi.com/software/operating-systems/

64 位的主要好处是内存超过 4GB 的硬件可以得到充分利用。在所有 Raspberry Pi 计算机中,Raspberry Pi 1、Pi 2 和 Zero 支持 32 位操作系统,而 Zero 2、Pi 3 和 Pi 4 都能够运行 64 位操作系统。

官方表示,由于一些闭源软件仅适用于 arm64 硬件,新推出的 64 位版本系统能够更好地运行这些软件。

需要注意的是,Raspberry Pi OS 64 位操作系统默认安装的 Chromium 不包含 WidevineCDM 库,因此无法在诸如网飞这类网站上观看 DRM 加密的内容。

想在树莓派上跑Julia?没问题。

Julia是一款开源通用编程语言,专为科学计算而设计。它结合了 Python 和 Ruby 等高级语言的易用性,以及 C 的速度。Julia 是大学开发研究的理想选择,从本科到博士都可以考虑它。

其实在2017年,该语言的创造者之一Viral Shah就跟 Raspberry Pi 基金会取得了联系,并将 Julia 移植到了 ARM 平台,特别是针对 Raspberry Pi。从那时起,他们出色的完成了对 ARM 平台以及树莓派的支持。

而树莓派基金会也将Julia正式的纳入了Raspberry Pi OS的软件库,大家可以直接用APT安装了。

现在Julia 团队不仅将语言本身移植到 Pi,而且还增加了对GPIOSense HATMinecraft的支持。

Julia 开发人员之一 Simon 首先将 Julia 徽标加载到Jupyter 笔记本中的矩阵,然后将其显示在 Sense HAT LED 矩阵上。然后他做了一些矩阵变换,Sense HAT 显示了这些操作的效果。

可以使用以下命令在 Raspberry Pi 上安装 Julia:

sudo apt update
sudo apt install julia

为 Julia 安装 Jupyter notebook:

sudo apt install julia libzmq3-dev python3-zmq
sudo pip3 install jupyter
julia -e 'Pkg.add("IJulia");'

也可以从 Julia 控制台轻松安装额外的软件包:

Pkg.add("SenseHat")

Julia 团队还创建了一个资源网站,用于在 Pi 上开始使用 Julia:juliaberry.github.io

好了,Julia开发者们。在树莓派上用起来吧。

树莓派GPIO控制 —— C语言篇

一. 常用开源工程简介

树莓派内核中已经编译自带了gpio的驱动,我们常通过一些第三方写好的库函数来完成具体的操作,比较常见的操作库函数有:

  1. Python GPIO
    【开发语言】——python
    【简单介绍】——树莓派官方资料中推荐且容易上手。python GPIO是一个小型的python库,可以帮助用户完成raspberry相关IO口操作,但是python GPIO库还没有支持SPI. I2C或者1-wire等总线接口。
    【官方网站】—— https://code.google.com/p/raspberry-gpio-python/
  2. wiringPi
    【开发语言】——C语言
    【简单介绍】——wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。wiringPi的API函数和arduino非常相似,这也使得它广受欢迎。作者给出了大量的说明和示例代码,这些示例代码也包括UART设备,I2C设备和SPI设备等。
    【官方网站】—— http://wiringpi.com/
  3. BCM2835 C Library
    【开发语言】——C语言
    【简单介绍】BCM2835 C Library可以理解为使用C语言实现的相关底层驱动,BCM2835 C Library的驱动库包括GPIO. SPI和UART等,可以通过学习BCM2835 C Library熟悉BCM2835相关的寄存器操作。如果有机会开发树莓派上的linux驱动,或自主开发python或PHP扩展驱动,可以从BCM2835 C Library找到不少的“灵感”。
    【官方网站】—— http://www.airspayce.com/mikem/bcm2835/

    . 树莓派GPIO编号方式
  1. 功能物理引脚:
    从左到右,从上到下:左边基数,右边偶数:1-40
  2. BCM:
    编号侧重CPU寄存器,根据BCM2835的GPIO寄存器编号。
  3. wiringpi:
    编号侧重实现逻辑,把扩展GPIO端口从0开始编号,这种编号方便编程。正如图3 WiringPi一栏。

    三. WiringPi GPIO
  1. 说明:
    WiringPi是应用于树莓派平台的GPIO控制库函数,WiringPi遵守GUN Lv3。wiringPi使用C或者C++开发并且可以被其他语言包转,例如python. ruby或者PHP等。
    wiringPi包括一套gpio控制命令,使用gpio命令可以控制树莓派GPIO管脚。用户可以利用gpio命令通过shell脚本控制或查询GPIO管脚。
  2. wiringPi安装
     1)使用GIT工具
    git clone git://git.drogon.net/wiringPi
    cd wiringPi
    ./build
    build脚本会帮助你编译和安装wiringPi

     2)直接下载
    在https://git.drogon.net/?p=wiringPi;a=summary下载最新版本编译使用
    tar xfz wiringPi-xx.tar.gz
    cd wiringPi-xx
    ./build

     3)raspbian使用apt-get安装
    sudo apt-get install wiringpi
  3. 测试:
    wiringPi包括一套gpio命令,使用gpio命令可以控制树莓派上的各种接口,通过以下指令可以测试wiringPi是否安装成功。
    $gpio -v
    $gpio readall #即可出现下面的gpio图
  1. 样例代码:
#include <wiringPi.h>
int main(void)
{
 wiringPiSetup() ;
 pinMode (0, OUTPUT) ;
 for(;;)
 {
  digitalWrite(0, HIGH) ; delay (500) ;
  digitalWrite(0, LOW) ; delay (500) ;
 }
}
  1. 编译运行:
    在树莓派上:
    gcc -Wall -o test test.c -lwiringPi
    sudo ./test

在虚拟机中:
am-linux-gcc -Wall -o test test.c -lwiringPi
sudo ./test

注:
1)IO的编号方式略有不同,采用wiring编码方式。
2)-lwiringPi表示动态加载wiringPi共享库。

四. BCM2835 C Library
下载:
$ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.35.tar.gz
解压缩:
$tar xvzf bcm2835-1.35.tar.gz
进入压缩之后的目录:
$cd bcm2835-1.35
配置编译:
./configuremake
执行检查:
$sudo make check
安装bcm2835库:
$sudo make install

样例代码

#include < bcm2835.h>
//P1插座第11脚
#define PIN RPI_GPIO_P1_11
int main(int argc, char **argv)
{
  if (!bcm2835_init())
   return 1;

 // 输出方式
 bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);

 while (1)
 {
   bcm2835_gpio_write(PIN, HIGH);
  bcm2835_delay(100);

  bcm2835_gpio_write(PIN, LOW);
  bcm2835_delay(100);
 }
 bcm2835_close();
 return 0;
}

编译运行
gcc -o blink blink.c -lbcm2835
./blink

注:
1)IO的编号方式略有不同,采用BCM编码方式
2)-lbcm2835表示动态加载bcm2835共享库

参考链接:

http://elinux.org/RPi_Low-level_peripherals
http://blog.csdn.net/xukai871105/article/details/23115627

树莓派被曝开春上市,估值高于5亿美元,收入主要来源于生产版权费

获得4500万美元融资后,树莓派又启动了上市计划。

据The Telegraph报道,树莓派(Raspberry Pi)计划明年春天在英国伦敦上市,估值可能比5亿美元还高

现在,树莓派基金会已经从Stifel和Liberum两家机构聘请了专家,为公司提供上市咨询服务。

这也是今年3月树莓派被曝计划上市以来,一个最新的进展。

年初计划IPO,估值4亿美元

据The Telegraph称,早在今年3月,树莓派就已经有相关的上市计划,当时估值在4亿美元左右。

今年疫情期间,树莓派的需求也一直在增加。

在9月融资4500万美元后,树莓派的估值更是“水涨船高”,来到了5亿美元。

树莓派首席执行官、创始人Eben Upton对此表示:

我们一直非常在意,如何让机构筹措资金。9月份融到的4500万美元显然减轻了这种紧迫感,也让我们对未来5年有了更好的规划。

目前,这4500万美元主要被用来开发新产品。

树莓派怎么赚钱的?

树莓派基金会创立于2008年,初衷是为了提升青少年的编程能力

创始人Eben Upton在剑桥大学计算机教书时,发现学生们的编程能力“严重退化”,他便辞职进入美国博通,开始制作一个编程开发平台。

2012年2月29日,第一块树莓派面市。

这块树莓派基于ARM微型电脑主板制作,具备PC所有基本功能,部件全部整合在一张信用卡大小的主板上。

在Linux系统的加持下,树莓派只需要几行代码,就能做出不少好玩的项目。

Eben Upton对此非常自豪:

13年来,树莓派已经向100多个国家卖出了4200多万台设备。去年,我们的销售额更是创下了710万台的历史新高,利润为1140万英镑。

目前,树莓派已经向慈善机构捐款超过3000万英镑(约合人民币2.6亿)。

作为一家“非营利机构”,树莓派究竟是怎么赚钱的呢?

事实上,树莓派的大部分收入来源于版权费用。

这家机构主要做的是设计各种树莓派产品,然后将它们授权给制造商,并从中收取专利费用

不知道明年是不是就能买到树莓派的股票了。