RustでLチカしてみました。ラズパイにSWとLEDを接続しています。
接続方法からプログラムまで紹介していきます。
プログラミング初心者の方でも、誰でも同様にテスト可能です。
RustでLチカ!ラズベリーパイで試してみた
プログラミング言語のRustでLチカを試してみました。
ラズベリーパイのGPIOにスイッチとLEDを接続してテストしています。
Rustのプログラム、ラズベリーパイの回路図含めて紹介していきます。
下記動画でもテストの一連の流れを紹介しています。是非一緒にご覧ください。
Rustのインストール
Rustのインストール方法からプログラム実行方法を別記事で紹介しています。
Rust初心者・未経験の方でもラズパイで簡単に始めることが可能です。
是非一緒にご覧ください。(リンクはこちら)
Rustのプログラミング
Rustのインストール後にプロジェクトを作成します。
下記コマンドではフォルダ名を「led_test」としていますが、各自好きな名前でOKです。
作成後はプロジェクトのフォルダに移動します。
RPPAL(ラズパイ用のライブラリ)
ラズパイ用のGPIOが使えるライブラリをRustに設定します。
Rustの設定ファイル(Cargo.toml)にRPPALというライブラリを使う旨を記載します。
筆者はVimで編集しました。各自好きなエディタで対応すれば大丈夫です。
Cargo.toml内の[dependencies]の下に「rppal = "0.12.0"」を追記します。
rppal = "0.12.0"
RPPAL(ラズパイ用のライブラリ)はGPIO,I2C,SPI,UARTなど多くのIFに対応しています。
詳細は下記の公式ページを参考ください。
https://crates.io/crates/rppal#gpio
Rustのプログラム(main.rs)
Rustのプログラム(main.rs)はプロジェクト内のsrcフォルダに入っています。
各自のエディタでプログラムを編集します。
今回作成したRustのプログラムの概要です。
一つのLEDは常時点滅して、もう片方のLEDはスイッチを押下中は点滅します。
点滅周期は2秒周期(1秒ON→1秒OFF)としています
実際のプログラムは下記です。
ライブラリRPPALの公式ページ内のサンプルに若干追記・修正したレベルです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
extern crate rppal; use std::error::Error; use std::thread; use std::time::Duration; use rppal::gpio::Gpio; use rppal::gpio::Level; use rppal::system::DeviceInfo; const GPIO_LED1: u8 = 17; const GPIO_LED2: u8 = 27; const GPIO_SW: u8 = 22; fn main() -> Result<(), Box<dyn Error>> { println!("Blinking an LED on a {}.", DeviceInfo::new()?.model()); let mut led1 = Gpio::new()?.get(GPIO_LED1)?.into_output(); let mut led2 = Gpio::new()?.get(GPIO_LED2)?.into_output(); let sw = Gpio::new()?.get(GPIO_SW)?.into_input(); // Blink the LED by setting the pin's logic level high for 1000 ms. loop{ if sw.read() == Level::High { println!("SW_ON"); led2.set_high(); }else{ println!("SW_OFF"); } led1.set_high(); thread::sleep(Duration::from_millis(1000)); led1.set_low(); led2.set_low(); thread::sleep(Duration::from_millis(1000)); } } |
ラズベリーパイの回路
ラズベリーパイの回路としてはスイッチ(SW)一つとLEDを2つ接続しています。
ジャンパー線とブレットボードで接続していますので。誰でも同様にテストできます。
汎用的な電子工作セットの部品で対応可能です。
LEDの制限抵抗は330Ωで、SWのプルダウン抵抗は10kΩを接続しています。
GPIOは17,27,22を使用しています。回路図としては下記形です。
RustのLチカのテスト
プロジェクト直下に戻り、プログラムをビルド+実行します。
冒頭でも紹介しましたが、動画で見るとテストの一連の流れが分かります。
是非一緒にご覧ください。
プログラムが実行されると緑LEDが点滅します。
SWが押されていないので「SW_OFF」の表示がされています。
SWを押下すると、赤LEDが点滅して「SW_ON」の表示がされます。
無事ラズパイでRustからLチカをすることが出来ました。
まとめ
今回はラズパイ環境下でのRustのLチカに関して紹介させていただきました。
記事をまとめますと下記になります。
ラズベリーパイ(raspberry pi)で簡単にRustのLチカを始めることが可能です。
皆様もぜひ試してみてください。
コメント
[…] https://misoji-engineer.com/archives/rust-led.html […]
[…] https://misoji-engineer.com/archives/rust-led.html […]