Raspberry Piやろう?


00はじめに

※この記事は近畿大学Advent Calendar 2019の7日目の記事です。
※基本的に近大生向けに書いています。
※今回は安価で試すのに向いているRaspberryPi ZeroWを使う前提で書きますが、他のRaspberryPiでも同じ手順でできます。
※某JavaScript大好き同級生に乗せられるままつよつよ連中の中に突っ込んでしまいました。ゴメンネ

さて、みなさんはRaspberryPiって聞いたことないですか?
まあ、ありますよね。

「ワイ電子回路わからんし...」

って感じでなんだかんだでやったことない人はかなり多いと思います。
なんでまあ、どうせいつもの一人クリスマスを過ごすのなら、ちょっとやってみませんかって話です。
もちろんRaspberryPi4を待ってからもアリだと思います。

01買う

そこの君は実に運がいい。だってkinkyな大学の最寄り、長瀬駅から日本橋までなんて近鉄使えばすぐじゃないか、いますぐ日本橋に向かうんだ。

シリコンハウス、デジット、千石電商、マルツパーツあたりにほぼほぼ在庫あるので、まずはビギナー向けのケーブルなどがセットになっているものを買うと楽です。maybe...
安く済むRaspberryPi ZeroW(ハンダづけ必須)RaspberryPi ZeroWH(ピン付けされているもの)がお試しにはおすすめです。

買いに行けない人はいんたーねっつで買えばいいと思います。
Raspberry Pi Shop by KSY
SWITCHSCIENCE

私はRaspberryPiをこれ書いている時くらいから無くしたことに気づき、慌てて探す羽目に。
1時間ゴミ部屋と格闘してました。掃除しろ。

02はじめにやること

この辺のことはいろんな記事が書かれているので簡単に書きます。
ググればどっさりヒットしますよ。

SDカードをフォーマットする

OSを焼く前の準備です。
形式がFAT16,FAT32以外のものは通常のフォーマットとは少し違う方法で、対応形式にする必要があります。
下記のサイトを参考にしてフォーマットしてください。
FabShop【step-02】raspberry-piに使用するmicroSDカードのフォーマット

買ってきたRaspberryPiにOSを焼く

今回は一般的にRaspberryPiに使われるRaspbianを焼きます。

「スターターセットについてきたインストール済みのはダメなのか?」

ダメです。
大体スターターキットなるものについてくるRaspbianはびっくりするほど古いです。
あと容量も心もとないので数百円で新しいSDを買ったほうがいいです。
こういうのとか。(アフィじゃないゾ!)
Amazon-Team microSDHCカード 16GB

RaspberryPiはSDカードとの相性が悪いと最悪認識しません。
買う前にはそのSDカードが使えるか調べましょう。(だいたいレビューがあります。)

多分大体一番新しいのを選べば問題ないです。
下記のサイトでZIPをダウンロードして解凍し、SDにぶちこみます。
RaspberryPi.org

ここまできたら焼いたSDをRaspberryPinにぶっさして起動します。
起動したらRaspbianをインスコしましょう。

ローカルIPを固定する

1.ターミナルでifconfigしてRaspberryPinのアドレスを調べる。
2.sudo nano /etc/dhcpcd.confで編集します。

/etc/dhcpcd.conf
interface wlan0
static ip_address=192.168.xxx.xxx
static routers=192.168.yyy.yyy
static domain_name_servers=192.168.zzz.zzz

ip_addressは設定したいIPアドレス
routersはルーターのIPアドレス
domain_name_serversはDNSサーバーのIPアドレスを設定する。

3.sudo service dhcpcd reloadする(しなくてもできるはず、できてなかったら試してください)
4.sudo reboot再起動
4.ifconfigで設定の反映を確認

ちなみにこれをsshでやると3~4番で止まっちゃう(当たり前)けどとりあえず設定したIPアドレスでsshし直してみてください。

ssh設定

1.sudo touch /boot/sshします
2.再起動してアラートがでますが「OK」して、画面上部メニュー→「設定」→「Raspberry Piの設定」
3.「インターフェース」でSSHを「有効」に設定する。

これで完了です。

MacBookのターミナルでssh [email protected]すると、
パスワードを要求されるのでデフォルトのパスワードraspberryを入力します。

デフォルトのユーザーネームpiとパスワードraspberryは後からでも変更できます。
変更後はssh [email protected]してPASSWORDを入力します。

03VScodeと連携させる

ずっとnanoとかviとか嫌なので直接Raspberry PiにVScodeで編集できるようにします。

VScodeでsshしワークスペースを編集できるSSH FSを使います。
https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs

使い方はサイトの通り、設定したIPアドレス、ssh時のパスワードを入力するだけ。
そしたらConnect as Workspace folderを選択して、

繋がるのを待つと、

このようになります。
ファイル作成、削除などファイルに動きがあるときは逐一リロードが必要です。

04GPIOピン制御

風邪でもバイトに駆り出すスーパーのせいで書く時間がないのでGPIOピンの制御もう書いちゃいます。

PythonでGPIOピンの制御をするにはRPI.GPIOパッケージを使用します。


import RPi.GPIO as GPIO

asで好きな名前をつけてください。

GPIO番号の表現の方法は2種類あって、それはGPIOピンの番号とボードピンの番号です。

GPIO.setmode(GPIO.BCM)#GPIO番号指定
GPIO.setmode(GPIO.BOARD)# ボードピン番号指定

自分がやりやすい方を選んでください。
今回自分はGPIO番号にしました。

次にそのピンが入力なのか、出力なのかを設定します。
制御したいピンは17番ピンなので、


GPIO.setup(17, GPIO.IN)#入力
GPIO.setup(17, GPIO.OUT)#出力

出力の場合、RaspberryPiからの電圧は3.3Vで0と1で設定できます。


GPIO.output(17, 1)#出力を3.3Vにする

こうすると17番ピンに3.3V出力されます。
出力を0Vにするには、


GPIO.output(17, 0)#出力を0Vにする

プログラムが終了するときにはGPIOピンの設定をオフにします。


GPIO.cleanup()

05Lチカ

これらを踏まえて一例を紹介します。

電子工作の世界にもHello, Worldライクなものが存在します。
それがLチカです。

面白くもなく、ただLEDがチカチカしているだけなのですっ飛ばす人もいますが、一回はやってて損しないかと。
自分のプログラムがターミナルでなく、光として出力されるのは初めてやってみると案外面白いものです。

「あれっLEDが見つからない...秋月で買ったはずなんだが????」

~after 2h~

「あった!」
めっちゃ探したから褒めて欲しい。掃除しろ。

lchika.py
#!/usr/bin/python
# coding: utf-8

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)#GPIO番号指定

GPIO.setup(17, GPIO.OUT)#出力

for i in range(10):
    GPIO.output(17, 1)#出力を3.3Vにする
    time.sleep(0.5)
    GPIO.output(17, 0)#出力を0Vにする
    time.sleep(0.5)

GPIO.cleanup()#GPIOピンの設定をリセット

と書いて保存。

$ ./lchika.py

で実行すると10回LEDが点滅します。
(最初のでかいRaspiのAAは.bash_profileを弄りました。sshしたときにわかりやすくていいよ!)

結果は下の画像リンクでyoutubeに飛んで見てみてください。
Lチカ

ちなみに(当たり前だけど)iTerminalでもできる。

さいごに

これじゃハンズオンじゃないか。。。
アドカレ7日目がこんな記事で許してくれ。。。許してくれ。。。
流石に自分自身が満足してないので、アドカレ関係なしに、2を設けます。
ここでGPIOピンの基本的な制御まで済ませておいたので、次回はちょっと面白いラズパイ向けのツールで遊んでみたいと思います。