raspberry pi_在Raspberry Pi上使用Rust编程现实世界

raspberry pi

如果您拥有Raspberry Pi,则很可能已经尝试过物理计算-编写代码以与真实的物理世界进行交互,例如使某些LED闪烁或控制伺服电机 。 您可能还使用了GPIO ZeroGPIO零) ,这是一个Python库,它通过友好的Python API为Raspberry Pi的GPIO设备提供了简单的接口。 GPIO Zero由Opensource.com社区主持人Ben Nuttall开发

我正在研究rust_gpiozero ,这是使用Rust编程语言的超棒GPIO零库的端口。 这项工作仍在进行中,但已经包含了一些有用的组件。

Rust是Mozilla开发的一种系统编程语言。 它专注于性能,可靠性和生产率。 如果您想了解更多信息,Rust网站将提供大量资源

入门

在开始使用rust_gpiozero之前,对Rust编程语言有基本的了解是很明智的。 我建议至少阅读《 Rust编程语言》一书的前三章。

我建议使用rustup在Raspberry Pi上安装Rust 。 另外,您可以使用cross (仅在x86_64 Linux主机上有效)或this how-to设置交叉编译环境。

安装Rust后,通过输入以下内容创建一个新的Rust项目:

 cargo new rust_gpiozero_demo 

加入rust_gpiozero为(目前在v0.2.0)的依赖通过添加以下的依赖关系一节中您Cargo.toml文件

 rust_gpiozero = "0.2.0" 

接下来,通过使用以下命令修改main.rs文件,使LED闪烁(物理计算的“世界”):


   
   
use rust_gpiozero ::*;
use std :: thread ;
use std :: time :: Duration ;

fn main ( ) {
    // Create a new LED attached to Pin 17
    let led = LED :: new ( 17 ) ;

    // Blink the LED 5 times
    for  _ in   0 .. 5 {
       led.on ( ) ;
        thread :: sleep ( Duration :: from_secs ( 1 ) ) ;
        led.off ( ) ;
        thread :: sleep ( Duration :: from_secs ( 1 ) ) ;
    }
}

rust_gpiozero为使LED闪烁提供了更简单的界面。 您可以使用眨眼方法,提供应保持打开和关闭的秒数。 这将代码简化为以下内容:


   
   
use rust_gpiozero ::*;
fn main ( ) {
    // Create a new LED attached to Pin 17
    let mut led = LED :: new ( 17 ) ;

    // on_time = 2 secs, off_time=3 secs
    led.blink ( 2.0 , 3.0 ) ;

    // prevent program from exiting immediately
    led.wait ( ) ;
}

其他组件

rust_gpiozero提供了一些类似于GPIO Zero的组件,用于控制输出和输入设备。 其中包括LED蜂鸣器电动机 ,脉宽调制LED( PWMLED ), 伺服按钮

最终将增加对其他组件,传感器和设备的支持。 您可以参考文档以获取更多使用信息。

更多资源

Raspberry Pi外围设备访问库(RPPAL)

类似于基于RPi.GPIO库的GPIO零,rust_gpiozero建立在Rene van der Meer 出色的RPPAL库的基础上。 如果要使用Rust对项目进行更多控制,则绝对应该尝试RPPAL。 它支持GPIO,内部集成电路(I 2 C),硬件和软件脉冲宽度调制(PWM)和串行外围设备接口(SPI)。 通用异步收发器(UART)支持目前正在开发中。

Sense HAT支持

Sensehat-rsJonathan Pallant@therealjpster )的库,为Raspberry Pi Sense HAT附加板提供Rust支持。 乔纳森(Jonathan)还有一个使用该库的入门讲习班 ,他在MagPi杂志的第73 期中写了一个初学者的介绍,以在Raspberry Pi上使用Rust,即“ Read Sense HAT with Rust”。

结语

希望这激发了您在您的Raspberry Pi上使用Rust编程语言进行物理计算。 rust_gpiozero是一个库,提供有用的组件,例如LED,蜂鸣器,电动机,PWMLED,伺服和按钮。 我们计划了更多功能,您可以在Twitter上关注我,或者查看我的博客以保持关注。

翻译自: https://opensource.com/article/19/3/physical-computing-rust-raspberry-pi

raspberry pi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值