树莓派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亿)。

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

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

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

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

学习树莓派的几个推荐站点

1、树莓派 Pico 中文站

这里不仅有树莓派 Pico 开发板的说明文档,还提供了完备的 RP2040 芯片资料。

​​​​​​树莓派 Pico 中文站

2、pimylifeup

里面有很多树莓派教程,步骤很详细

Raspberry Pi Index – Pi My Life Up

3、树莓派官网

Teach, Learn, and Make with Raspberry Pi

Teach, Learn, and Make with Raspberry Pi

4、elinux

树莓派的相关异常可以查询这个网站

R-Pi Troubleshooting​elinux.org​

查询支持的SD卡:

RPi SD cards – eLinux.org​elinux.org​

5、Raspberry Tips

树莓派学习网站

RaspberryTips – Projects and tutorials for Raspberry Pi

6、IoT前哨站

物联网相关的应用、开发资讯,IoT智能装置和云端结合的技术研究,新鲜事物的分享。

IoT前哨站 – 物联网相关的应用、开发资讯,IoT智能装置和云端结合的技术研究,新鲜事物的分享。 (iotcomeon.com)

7、博客园的树莓派专区

树莓派网络方面应用写的很详细

树莓派 – 标签 – Yogile – 博客园 (cnblogs.com)

用新系统Bullseye为树莓派加速20%

树莓派官方最近又升级 Raspberry Pi OS 系统了,基于Debian Bullseye的新版。

本来是系统升级更新并不是什么大事,但这次的系统更新居然可以把你的树莓派CPU从1.5GHz升级到1.8GHz(仅限Raspberry Pi 4)。

其实在2020年11月份推出的Raspberry Pi 400上面,CPU出厂频率就是1.8GHz了,但采用同款博通BCM2711芯片的Raspberry Pi 4却只有1.5GHz,其实是个偏保守的设定。主要是为了兼顾供电能力。

现在新系统的Turbo模式默认把主频也提高到了1.8GHz,这300MHz也就是20%的提升,官方表示这主要是改进了供电设计。

具体操作

1、打开终端并更新软件存储库列表。

$ sudo apt update

2.运行安装的完整升级

$ sudo apt dist-upgrade -y

3.更新树莓派固件

$ sudo rpi-update

4.打开准备编辑的sources.list 文件

$ sudo nano /etc/apt/sources.list

5. 使用箭头键,向下滚动文件并找到以下行

deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

6.将行从 buster更改为 Bullseye 并按 CTRL + X,然后按 Y 和 Enter 保存并退出。

deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi

7.更新 Bullseye 软件存储库

$ sudo apt update

8.运行另一个发行版升级以安装 Bullseye 软件要求。

$ sudo apt dist-upgrade

9.清理安装文件

$ sudo apt autoclean

10.重新启动您的 Raspberry Pi 以使更改生效。

$ sudo reboot

现在你可以运行基于“Bullseye”版本的 Raspberry Pi OS了。

如果不想升级新系统怎么办?

其实也可以手动超频,官方表示可以通过手动修改config.txt文件,加入arm_freq=1800一行命令就行了,如果遇到运行不稳定,再按50MHz逐级下调,或者稍微加点电压。

注:本文的系统升级图文来自 Les Pounder 在Tom’s hardware上的文章。

树莓派加高清摄像头能拍电影?

说起电影拍摄用的摄影器材,以往都是高端设备。

再不济也得是5000RMB左右DV才行,树莓派加摄像头不到1000RMB的成本,也可以做电影摄像机了?

老外还真做了一个,成片看着还挺像回事。

视频地址:

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

以上视频是使用Raspberry Pi 高品质相机和 6mm 镜头在 4GB树莓派4B上拍摄的。它以 12位RAW DNG、2028×1080、24fps 格式拍摄,并使用 DaVinci Resolve 编辑 RAW 素材。

对电影制作和编程的热情

该项目的作者多年来一直使用 Raspberry Pi 产品,最终他们把自己对电影制作和编程的热情结合进去了。

这位电影制作人表示:

对于那些懂行的人来说,高端摄像机通常使用较好的编解码器(比如RAW)结合大量手动控制来拍摄高清视频(4K+),以便在后期处理图像时可以游刃有余。

开箱即用的 Raspberry Pi 提供了非常友好的摄影体验,具有自动白平衡、自动曝光、高效的 h264/jpeg 编解码器等便利功能。这些功能可满足各种一般应用的需求,但对于高端视频工作而言,这些功能通常是你控制图像质量的障碍。

因此,他们将拍摄高端视频的最佳元素与 Raspberry Pi 提供的易用性相结合。

看起来奏效了,他们做出的设备能够与售价 1000 美元左右的相机拍出类似效果。

Davinci Resolve编辑套件运行中

项目地址:

https://github.com/schoolpost/cinepi

如虎添翼——融合乐高的树莓派Build HAT

以前乐高积木和树莓派的结合,大多都是爱好者自己DIY的结果,虽然可行,多少还是有些复杂。

最近树莓派基金会推出了一款专用扩展板 —— Raspberry Pi Build HAT,可以更好的将树莓派和乐高融合在一起。

Raspberry Pi Build HAT 是树莓派基金会和LEGO® Education合作的一部分,旨在增加 STEAM 学习的影响和范围。乐高教育产品体验主管 Andrew Sliwinski 表示:“我们很高兴与 Raspberry Pi 合作,为世界各地的学生、教师和创客提供工具,以扩展他们的创造性数字技能并增加实战经验。”

乐高已经存在了几十年,以好玩又好用而闻名,但它还可以用于创建高级项目,例如机器人解决魔方问题等等。

Build HAT 售价 25 美元,借助 Build HAT 配套的 Python 模块及其四个 LPF2 连接器(乐高零件使用的那种),我们可以将乐高与现有的 Raspberry Pi 附加组件混合使用。

目前,这款新的扩展板使 Raspberry Pi 可以很方便的驱动 Spike Prime、Technic 和 Mindstorms 套件中的电机和传感器。

新 HAT 适用于所有 40 针 GPIO Raspberry Pi 板,包括 Raspberry Pi 4 和 Raspberry Pi Zero。通过添加带状电缆或其他扩展设备,还可以将其与 Raspberry Pi 400 一起使用。

Build HAT 的酷炫设计意味着所有电子元器件都在底部,在板的上方留出空间供乐高小人搭便车或放置迷你面包板。

你可以使用附带的接头将 HAT 直接连到 Raspberry Pi,并使用 9 毫米垫片以确保稳定,
或者你可以添加一个超高接头以保持未使用的 GPIO 引脚可被访问。

无论你选择哪种方法,请确保在将 Build HAT 安装到 Raspberry Pi 上时正确的放置它!

电源方面,乐高机械组马达和大多数电机一样,驱动它们需要一个外部 7.5V 电源。于是树莓派基金会还为 Build HAT创造了一种全新的电源,它可靠、坚固且可以充分使用这些电机。它的售价为 15 美元。

如果你只是想从电机编码器和SPIKE力传感器读取数据,你可以通过你的树莓派USB电源插座为你的树莓派和Build HAT供电。

其它像马达、SPIKE颜色和距离传感器什么的,需要外部电源。  

LEGO® Education SPIKE™ Prime套件

SPIKE 产品组合中包含的乐高机械组非常适合快速制作机器人或物理计算项目的原型。

可用的传感器包括距离传感器、颜色传感器和令人难以置信的多功能力传感器。

角马达有多种尺寸,包括集成编码器,你可以查询到它们的位置。这意味着你可以精确地控制设备的运动,或将编码器用作其本身的输入设备。

没有这套东西也没关系,树莓派基金会已经编译了所有可与Build HAT兼容的LEGO元素的列表,这样你就可以检查哪些元素最适合你的项目。

地址:https://www.raspberrypi.com/documentation/accessories/build-hat.html#device-compatibility  

新建的HAT Python 库

为了让构建将 Raspberry Pi 的计算能力与你的乐高积木结合的更容易,我们为 Build HAT创建了一个 Python 库,任何使用过其他 Raspberry Pi 库(如 gpiozero 或用于Sense HAT的玩家都可以轻松掌握。

相关文档:https://buildhat.readthedocs.io/en/latest/buildhat/index.html

Build HAT 的Python库已经支持 SPIKE Portfolio 中包含的所有 LEGO Technic 设备,以及来自 LEGO® MINDSTORMS® Robot Inventor 套件和其他使用 LPF2 连接器的设备的设备。

OKdo启动Renew活动:旧树莓派换10英镑代金券

通过和 Raspberry Pi 以及索尼技术中心的合作,OKdo 近日启动了 OKdo Renew 活动。该活动主要用于回收旧的树莓派主板,用户提交闲置的树莓派 3b/3b+/4 主板之后可以获得 1 张价值 10 英镑的代金券,可以在 OKdo 上进行消费。

OKdo 的技术高级副总裁 Richard Curtin 表示:我们非常高兴与 Raspberry Pi 和索尼技术中心合作,为 Raspberry Pi 社区提供这项独特的新服务。据预测,到 2030 年全球人口将接近 90 亿,我们使用的资源比地球所能提供的还要多。我们的未来取决于以可持续的方式重新使用我们所拥有的东西。

幸运的是,有一种资源是无限的,那就是创新,这正是 OKdo 开发这个创新的循环经济计划的原因,以回收、翻新和重新使用树莓派。该计划的目的是开始回收目前流通的 4000 万台树莓派中的一部分,这些树莓派是曾经被使用过但不再使用的。这是我们 ESG 战略的一部分,也是我们对可持续发展、电子废物回收和“科技为善”的持续承诺。最初,这项服务正在英国各地推广,但我们有计划在 2021 年底前将其扩展到全球。

Raspberry Pi 的创始人兼首席执行官 Eben Upton 补充:Raspberry Pi 长期致力于可持续发展。我们的计算机比它们所取代的传统 PC 消耗电力更少,当然在制造过程中消耗的能源、材料和劳动力也更少。自 2012 年以来,Raspberry Pi 电脑已售出 4000 多万台,其中绝大多数仍处于工作状态,甚至在其所有者升级到更高版本之后。这些剩余单元的管理性再利用提供了一个进一步减少环境足迹的途径,我们欢迎来自 OKdo 和索尼的这个令人兴奋的新举措。

退回的电路板被直接送至最初制造它们的索尼技术中心。它们经过全面测试、修复和更新,使用回收的包装,准备通过OKdo以较低的价格转售。OKdo 将为翻新后的板子提供12个月的保修,并为每一块板子的售出向Raspberry Pi基金会捐款。

树莓派要涨价了 — 有史以来第一次

众所周知,随着 COVID-19 大流行,全球供应链处于不断变化的状态。

半导体需求旺盛,供不应求。

连一直不涨价的树莓派也撑不住了,近期宣布,将把树莓派4的2GB内存版本涨价28.57%,之前35美元一个,现在45美元一个。

尽管需求大幅增加,树莓派最终只能在2021年生产700万片左右,与2020年产量基本相同。结果导致了一些产品的短缺,尤其是树莓派Zero和2GB版本的树莓派4。

为了减轻供货压力,树莓派官方做了一些临时调整。

一、之前35美元的2GB内存Raspberry Pi 4售价调整至 45 美元。

二、之前停产的 1GB内存Raspberry Pi 4重新供货,售价35美元。

三、在分配有限的40nm芯片库存时,树莓派官方将优先考虑CM3、CM3+和 Raspberry Pi 3B、3B+。

四、由于Raspberry Pi 3B+采用与Raspberry Pi 4相同的无线芯片组,具有相同的FCC模块化认证,因此树莓派官方鼓励3B+的客户将产品迁移到Raspberry Pi 4。

树莓派创始人Eben Upton表示,这是特殊时期支持所有客户的最佳方式,也是临时措施。等到全球供应链问题缓和,树莓派的定价将尽快恢复到原来的水平。

Eben希望在接下来的 12 个月内拥有足够的 28nm芯片来支持Raspberry Pi 4 和 Compute Module 4的新老客户。

预计,供应链紧张的情况将持续到 2022 年的大部分时间,希望大家对此有个心理准备。

树莓派挖矿教程之Chia篇

随着数字货币的兴起,不少人又开始了挖矿生涯。

除了经典的显卡和CPU挖矿以外,其实业内还有一种硬盘挖矿的方法。这就是号称“绿色比特币”的Chia。

目前的价格大概是4500-5500RMB一枚。

它倒是不怎么耗电,但很耗硬盘。所以你接个树莓派也可以挖。

基本配置:

树莓派4B(至少4GB内存版本)

64位系统(不一定要RaspberryPi OS)

大容量硬盘一块

步骤:

先到chia.net下载工具。

找到树莓派的版本,目前官方测过的主要就是树莓派4B。

直接安装或者下载后安装都可以。

安装完启动该程序。

别忘了24个助记词。

把P好的文件导入。当然,如果你不嫌慢,在树莓派上生成Plots也可以。

如果硬盘挂载顺利,可以看到现成的Plot文件。

导入以后你可以在标签栏里看到它们。

在网络同步完成之后,你就可以开始挖了。

Chia挖矿的入门,就是这么简单。