イノたまごラボ・あのぶる の「こんなの作ったよ!」

「イノたまごラボ」はひとり同人サークルのようなものです。今のところ同人誌は作っていませんが、ソフトウェアからイベントまで、心惹かれたものを細々と。

フォースカーブ測定機を作りたい・part2 Raspberry PiのセットアップとRubyでのLチカ

既に仕事始めは通り過ぎているのですが、やっと冬休みの宿題が終わりました。

前回までのあらすじ

blog.innotamago.com

キーボード用キースイッチのフォースカーブ測定機を作りたくなったので、先駆者の記事を参考にしてなんとなく構造を理解したので、さっそく手を動かしていくぞ、となったところ。

今回やったこと

前回の記事の時点では電子はかりを作ろうと思ったのですが、まずは電子工作界のHello Worldである「Lチカ*1」をやってみることにしました。

用意したもの

  • ラズパイ関係
    • Raspberry Pi本体
      • 今回は自宅のガジェット箱に眠っていた3Bですが、なるべく最新版を手配した方が資料は見つけやすいと思います
    • microSDカード
      • 最低8GBの容量が必要らしい。とりあえず16GBでやってる。
    • ACアダプタ
      • スイッチサイエンスのこれを買いました
    • キーボード
      • 最初は有線の方がよさそう
    • マウス
    • モニタとHDMIケーブル
      • 厳密には用意したというより使いまわしている
  • Lチカ関係
    • ブレッドボード
    • ジャンパワイヤのオス-オスとオス-メス 2本ずつ
    • 抵抗(1kΩ)
    • LED

ラズパイのセットアップ

まずはこの記事を参考にRaspberry Pi Imagerを手元のWindows機にインストール。microSDカードにOSイメージを書き込みます。
イメージャをインストールすれば、ダウンロードにちょっと時間がかかったくらいですんなり。

qiita.com

古い記事を読むと日本語対応とかBluetoothキーボードの認識とかがややこしかったようなのですが、特別なパッケージを入れるまでもなくすんなりいきました。ありがたい。

とりあえずLピカ

Lチカする前にLピカ*2を試してみる。

セットアップが出来ていればこんな感じの配線でいける。
この時点ではシンプルに+は3.3Vのピン、マイナスはGNDのピンから取る。

f:id:thatblue:20220111012359p:plain

Rubyのインストール

基本はこの記事を参考にしました。バージョンは3.0.3にしたけど3.1系でもよかったかも。

qiita.com

rbenv install する前にlibssl-devをインストールしておかないとダメだったのでやっておく。

sudo apt-get install -y libssl-dev

コマンドラインでLチカしてみる

この記事の「コマンドラインからLED点灯」のあたりを参考にやってみた。

blog.akanumahiroaki.com

まずは配線をこんな感じに修正。+を3.3VではなくGPIO 22ピンに変更しておく。

f:id:thatblue:20220111012415p:plain

どのピンがどんな役割なのかは以下を参照。

pinout.xyz

# GPIOの22番ピンを使う
$ echo 22 > /sys/class/gpio/export 
# /sys/class/gpio/gpio22 にピン操作のためのファイルが作られるので操作していく

# 22番ピンを出力に設定する
$ echo out > /sys/class/gpio/gpio22/direction

# LED点灯
$ echo 1 > /sys/class/gpio/gpio22/value 

# LED消灯
$ echo 0 > /sys/class/gpio/gpio22/value

# 22番ピンの使用を終了する
$ echo 22 > /sys/class/gpio/unexport

Rubyのコードを書いてLチカしてみる

引き続きこの記事を参考にする。「RubyスクリプトでLチカ」のあたり。

blog.akanumahiroaki.com

参考っていうか、ほぼ写経。 RubyからGPIOのピン操作をするにはpi_piperというgemが必要なのでインストールして、ピンのON/OFFを1秒ごとに繰り返していく感じ。

実行してみるとこんな感じになる。動画だとかなり見づらいので抵抗もうちょっと低いやつでもよかったかも…

次回予告

改めてロードセルの取り扱い練習として、電子はかりを作る予定。

*1:LEDを点滅させること

*2:LEDを光らせること