Microbit花火〜MicrobitからWebServerまでの旅〜

イントロダクション

マイクロビットで作成したプログラムから全世界にメッセージを送ろう!

実行手順

  1. マイクロビットでPCにシリアル通信でメッセージを送る
  2. PCで受けたメッセージをPythonでWebServerへ飛ばす
  3. ここの画面に表示されることを確認する


マイクロビットのプログラミング方法

Microbitで遊ぶ〜シリアル通信をする〜

シリアル通信の方法

マイクロビットによるシリアル通信プログラムを作成し、接続したUSBで「マイクロビット」→「PC」へマイクロビットで作成したプログラムから文字を送信する。

Micro:bit Python 〜マイクロビット→PCへシリアル通信〜

関連ページ一覧

  1. Microbitで遊ぶ〜ボタンを押す〜
  2. Microbit Python 〜シリアル通信データを受け取る〜
  3. WebSocket in PHP And JS 〜レンタルサーバー上でのWebSocket〜
  4. Python websocket client〜WebSocket送信処理を作る〜

 

Micro:bit Python 〜マイクロビット→PCへシリアル通信〜

送信したことを確認する for Mac

  1. Microbitで「シリアル通信」プログラムを作る
  2. ターミナルを開き、「ls /dev/tty*」(最後はアスタリスク)とコマンドを入力する
  3. 表示されたファイル名をメモしておく
  4. GItから"websocketSernder.py"ファイルをダウンロードする(コピーも可)
  5. ダウンロードしたpyファイルを開き「# コーディング1」と書いている下にある「diviceName = ""」の「""」に2でメモしたファイル名を記入する(例:deviceName="/dev/tty.usbmodemFA132")
  6. http://zenryokuservice.com/project/index.phpをブラウザで開く(PC)
  7. ターミナルから「python3 websocketSernder.py」を起動する

websocketSernder.pyをダウンロードしたディレクトリまでターミナルで移動してください。

ターミナルの使い方

Step1. とりあえず開きます。

手段1

  1. コマンドキーとスペースを押下
  2. Terminal.app」と入力してEnterキーを押下

手段2

右の様なアイコンをクリックする 

Step2. websocketSernder.pyファイルの場所に移動する

  1. websocketSernder.pyの場所を確認する
  2. ダウンロードフォルダにあった場合は"cd Downloads"と入力してエンターキーを押下する
  3. 次のコマンドを入力してエンターキーを押下する「python3 websocketSender.py」
  4. Micro:bitからシリアルデータを送信する

 

上の様なプログラムを作成した場合は、「Aボタン」を押下するとシリアルデータを送信できる。

健闘を祈ります。


Micro:bit スマホでプログラミング〜ブラウザにアクセス〜

イントロダクション

今回は、マイクロビットで遊べるページを作成(コピペ)を作成しました。Micro:bit -> ブラウザで遊べます。

下のリンクにある手順を踏んで、今回はマイクロビットを使って上記のページにブラウザ経由でアクセスしようと思います。

  1. Micro:bit スマホでプログラミング〜Bluetoothの設定〜

参考:マイクロビットのページです。

上記のサイトにはHTMLを作成するような記述があるのですが、こちら(マイクロビットで遊べるページ)に作成したものを配置しておりますので、よかったら遊んで見てください。

参考サイトの手順を追いかけます。手順的には「図7-1-2-9.ペアリング方法の変更(3)」まで終わっている状態です。

※スマホアプリにBluetoothのブロックが表示されていなければMicro:bit スマホでプログラミング〜Bluetoothの設定〜に戻って手順を踏んでください。

スマホでプログラミング!

スマホでMicro:bitのアプリを開きます。※インストールはこちら

上部の「+」マークのある部分、もしくは「Pair a new microbit」と書いてある部分をタップします。

こんな感じの画面が表示されるのでボタンを3つ押します。

裏側(A,Bボタンのない方)のボタンを2〜3秒くらいしたら話します。すると

上記のようなパスワード?ペアリング時の確認キーです。が表示されますのでそれを入力して次へ

「Pairingsuccessful」と表示されるので「OK」

この画面の「Create Code」を押下します。

ブロックはないと思いますが、コーディング用の画面です。

こんな感じでコードを作成します。Bluetoothのタブを選択して作成してください。

こんな感じでコードを作成したら。。。コンパイルしてマイクロビットへ送信(ダウンロード)します。

やってみた感想

一旦は動くけど、一度ペアリングが切れた後に再接続がうまくいかなかったりする、ちょっと不安定な感じでした。実際にコード書いて遊ぶならばPCでやった方が無難かな?

関連ページ一覧

Microbit Python HTTP リクエストを飛ばす

イントロダクション

下の関連ページ一覧にあるようなことをやってきました。Microbit→ PC →ときたので、今度はウェブサーバーにデータを飛ばそうと思います。

リクエストって何?

ブラウザを開くとGoolgeとかYahooとか出てきます。この時に見えないところで「HTTPリクエスト」を携帯の端末(スマホ)から、PCから「どこかにあるウェブサーバー」へとHTTPリクエストが送信されます。ここでいう「リクエスト」とは「HTTPリクエスト」のことです。

環境について

今回は現在使用しているレンタルサーバー「ミニムサーバー」での環境でPythonを使用します。サーバーのCGI仕様にあるように「Python 2.4」を使っているということなので(一応確認もしいました。PHPからPythonを起動してバージョンを確認しました。)

Pythonの2.4を基準にプログラムの構成を考えます。ちなみに自分はMac Book Proを使用しています。ウィンドウズでも関係なく使用できるコマンドだと思うのですが、実際のところはわかりません。

現状の問題は「リクエストを飛ばすにはどの部品(クラス)を使用すればいけるだろうか?」になります。

ネットで調べてみると結構出てくるのでちょいと試してみます。

ちなみにほとんどのものは追加でインストールする必要があります。そして、レンタルサーバー上で追加でインストールしたライブラリをどのようにインポートすれば良いのか?

とりあえず以下のコマンドを叩きます

pip install requests

実はここのサイトを見てやりました。ちなみに「request」と「requests」があるので注意してください。自分は、間違えて「request」の方をインポートしました。これは動きません。。。

Requestのインストール方法〜使い方までコード付きで記載してあります。

翻訳すると「哲学」という項目までありました。現代では「当たり前」になったリクエスト送信について触れてみるのも良いのでわ?

Pythonを実行してみる

コマンドは「pip install requests」を実行しそのあとで「python」でコマンドモードでpythonを開きます。※「コマンドモード」というかは定かではありません。

そして以下のように入力します。

import requests
r = requests.get("http://zenryokuservice.com/project/server.php")

これでリクエストを送信して「レスポンス」を取得します。

レスポンスはブラウザでいうところの画面が表示されたところです。なので中にはHTMLが入っています。

これはこれで、単発では使えないんだなぁ。。。


ちなみにPythonサーバーというのもあるみたいだ。

下のサイトで詳しく書いてある

https://www.linuxjournal.com/content/tech-tip-really-simple-http-server-python

関連ページ一覧

Microbit Python 〜シリアル通信データを受け取る〜

イントロダクション

JS、Javaとシリアル通信データを受信する方法調査してきたけど。。。

結局「C/C++」が一番適切ということになりました。しかし、プログラム初心者には敷居が高いのでノンプログラマにはお勧めできないのが現実。。。

そこでPythonでしょう!

という判断になりました。

Macの場合は簡単にインストールができることを確認済みです。

手順は以下の通り

  1. マイクロビットをMacにUSBで接続する
  2. マイクロビットのプログラムを作る
  3. Macがインターネットに接続していることを確認
  4. pip install pyserialコマンドを叩く
  5. Pythonプログラムを作る
  6. python exePy.py コマンドを叩く

<マイクロビットのプログラム>


<exePy.py>

import serial
import time

def main():
   ser = serial.Serial('/dev/tty.usbmodemFA132', 115200,  timeout=3)
   print(ser.port)
   print(ser.baudrate)


   ser.flushInput()
   ser.flushOutput()
   while True:
      try:
         #data_raw = ser.inWaiting()
         data_raw = ser.read(100)
         print(data_raw)

      except:
         print("Error")
      else:
         print("End Program")
         ser.close()
         break

<実行結果>

※マイクロビットで「Serial Data」を送信しています。

参考にしたサイト

pyserialのインストール

pyserialのドキュメント

シリアルコンソールを使う

関連ページ一覧

  1. MicrobitでHttpリクエストを飛ばすためのメモ
  2. Microbitで遊ぶ〜ボタンを押す〜
  3. Microbitで遊ぶ〜シリアル通信をする〜