シヨツ鬼のブログ

初心者向けに分かりやすくIT関連の情報を発信しています。

【動画解説付き】ラズパイとマイクロビットを通信させる方法

f:id:shiyotsuki:20200119181744p:plain
どうも、プログラミングの鬼シヨツ鬼です。
この記事では「Raspberry Pi(ラズパイ)とmicro:bit(マイクロビット)を通信させてみたいぜ」って人に向けてラズパイとマイクロビットの接続からマイクロビットから得た情報をラズパイで取得するまでの流れを説明します。
ちなみに、この記事は次の動画と同じ内容ですので、記事だけだと分かりづらい部分は、そちらもご活用ください。
(ボタンの位置や操作方法などがわかるので、初心者の方は動画のほうが分かりやすいかも)
YouTube:【電子工作】ラズパイとマイクロビットを通信させてみた

準備するもの

Raspberry Pi 3 model B(OSインストール済のもの。OSのインストール方法はこちら
BBC micro:bit
・データ通信のできるUSB Type-AとmicroUSB Type-Bの接続部を持つコード
・入力文字を間違えない注意深さ

ラズパイとマイクロビットを接続する

ラズパイとマイクロビットをUSB Type-AとmicroUSB Type-Bの接続部を持つコードを使って接続します。接続に成功するとラズパイの画面に「リムーバブルメディアの挿入」のウィンドウが自動で出てきます。

muを起動する

ラズパイでマイクロビット用のpythonプログラムを作るためにmuというソフトを起動します。

  1. ラズパイのメニュー画面より「プログラミング>mu」でソフトを起動します。
  2. 「モードの選択」の画面が開いたら「BBC micro:bit」を選択します。

サンプルプログラムを作る

1.マイクロビットの画面に文字を表示してみる

ラズパイでマイクロビットのプログラムが作れることを確認するために、マイクロビットの画面に好きな文字を表示させるプログラムを作ります。
以下のようなプログラムを「#ここにコードを書いてね:-)」の下に書いて「転送」ボタンを押します。

from microbit import *           #microbitの関連ライブラリの読み込み
display.scroll('shiyotsuki')       #「shiyotsuki」と表示する

「shiyotsuki」とマイクロビットの画面に流れたら成功です。

2.マイクロビットのボタンを使ったプログラムを作ってみる

マイクロビットのAボタン、Bボタンが押されたときに動くプログラムを作ってみます。
muの「新規」のボタンを押して新しくプログラムを書くページを開き、次のようなプログラムを書いて「転送」ボタンを押します。

from microbit import *           #microbitの関連ライブラリの読み込み
while True:        #以下をずっと繰り返す
    if button_a.is_pressed():             #Aボタンが押されたら
        display.scroll('A PRESSED')    #「A PRESSED」と表示する
    if button_b.is_pressed():             #Bボタンが押されたら
        display.scroll('B PRESSED')    #「B PRESSED」と表示する

Aボタンを押すと「A PRESSED」と表示され、Bボタンを押すと「B PRESSED」と表示されれば成功です。

3.マイクロビットのセンサーを使ったプログラムを作ってみる

マイクロビットの加速度センサを使ったプログラムを作ってみます。
muの「新規」のボタンを押して新しくプログラムを書くページを開き、次のようなプログラムを書いて「転送」ボタンを押します。

from microbit import *           #microbitの関連ライブラリの読み込み
while True:        #以下をずっと繰り返す
    if accelerometer.was_gesture('shake'):    #micro:bitが振られたら
        display.show(Image.SQUARE)    #micro:bitの画面に四角を表示
        sleep(100)    #100ms(0.1秒)待つ
    else:    #micro:bitが振られていなかったら
        display.clear()    #micro:bitの画面を消す

マイクロビットを揺さぶると、画面に四角が表示されれば成功です。

4.マイクロビットで取得した値をラズパイで表示してみる

マイクロビットのセンサーで取得した値をラズパイ側で受け取って表示させてみます。

マイクロビット側の準備

ラズパイでMakeCodeのサイトを開き、次の画像のようなプログラムを作成します。
(MakeCodeの詳しい使い方はこちら)
f:id:shiyotsuki:20200119211906p:plain
作成したプログラムをダウンロードし、マイクロビットへ転送します。

ラズパイ側の準備

1.screenのインストール
マイクロビットから取得した値を表示するためにscreenというソフトをインストールします。以下のコマンドをターミナルから実行してください。
sudo apt-get install screen

2.デバイス名の確認
マイクロビットがラズパイにどのように認識されているのか確認します。
「/dev」ディレクトリの下から「ttyACM<数字>」となっているファイルを探してください(例:ttyACM0)。これがラズパイ側でのマイクロビットの認識しているデバイスです。

3.screenコマンドの実行
以下のコマンドを実行してマイクロビットから取得した値を表示します。
sudo screen /dev/ttyACM0 115200
※/dev/ttyACM0 の部分は先ほど調べたデバイス名に変えてください

まとめ

ラズパイとマイクロビットが通信できると夢が広がるね。
最後まで読んでくれてありがとう。
参考になったら「☆」を押してね。