MicrobitでHttpリクエストを飛ばすためのメモ

作戦その1:ブロックからC++を呼び出す

イベントハンドラを使用する

下のブロックは

下のコードに変換されるらしい

// このメソッド(関数)がイベントに反応して起動する
void onButtonA(MicroBitEvent e)
{
    uBit.display.print("A");
}

int main()
{
    uBit.messageBus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, onButtonA);
}

ということは、ブロックで作成したものを取得できるかもしれない。。。

→ブロック言語からC++が作成されるのであれば。。。

作戦その2:「ラジオ」ブロックを使用する

ラジオブロックのCコードは、uBit.serial.sendのようだ。

ここのサイトでは、以下の項目に関して記載がある

  1. MicrobitでのWifi接続手順
  2. TCP/IPでのリクエスト送信方法

しかし、なんで温度の表示を行う記事ばかりあるのかね?

 作戦その3

マイクロビットからUSBシリアルポートでのデータ通信を行う。

Javaでシリアルデータを受けてHttpリクエストを行う。参考サイト

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

Microbitで遊んでみる

マイクロビットで遊ぶ

とりあえず、ここをクリックして下のサイトに飛びます。

https://makecode.microbit.org/#editor

上記のような画面が開くと思います。※ログインとかが必要になるかも?

そして中央にある。「Blocks」の隣にある「JavaScript」をクリックすると。。。

ブロックがJavaScriptに変わります。そして下のようなコードを記述して見ます。

そして、元に戻すと。。。

こんなブロックができました。

実際のところ定義のみだから起動しませんが(笑)

 

Microbit リファレンス 〜サイトを眺めてみる〜

イントロダクション

MBedオンラインコンパイラの使い方がいまいちわからないので一通りドキュメントを眺めたメモ

APIリファレンスページもあった

1.ワークスペース.

上のようなディレクトリ(フォルダ)構成になっている

C++ではヘッダファイル(*.h)とソース(*.cpp)ファイルがセットになっている。

ヘッダファイル(*.h)

定数、継承関係、マクロ、依存関係(インポートファイル)などを定義する。大雑把にどんなクラスなのかを見たいときはこのファイルを見れば良い。

ソースファイル(*.cpp)

実装部分が書いてある、継承関係などがないのでJavaで言うとこの親クラスにあるフィールドなどは、ヘッダファイルなどを見ないとわからない。

なんでも行けてしまうからJavaよりも難しいです。(自分の認識)

<main.cpp>参照するヘッダは<MicroBit.h>

#include "MicroBit.h"

MicroBit uBit;

int main()
{
    // Initialise the micro:bit runtime.
    uBit.init();

    // Insert your code here!
    uBit.display.scroll("HELLO WORLD! :)");

    // If main exits, there may still be other fibers running or registered event handlers etc.
    // Simply release this fiber, which will mean we enter the scheduler. Worse case, we then
    // sit in the idle task forever, in a power efficient sleep.
    release_fiber();
}

処理は、3行。以下の通り

  1. マイクロビットを初期化
  2. "HELLO WORLD! :)"を表示する
  3. 細かいところはわからないが終了処理

こんなけ。。。

「C/C++」だからちょっとビビってたけど、これならなんとか(笑)

そして、他のフォルダを見てみると。。。

  • Classes         : Microbitのクラスリファレンスが入っている
  • inc                 : MicroBit.h マイクロビットのヘッダファイル
  • Microbit-dal  : Microbit-dalプロジェクト、この階層と同じようになっている
  • module.json : このモジュール(プロジェクト)の名前などのJSON形式のデータ
  • source          : Microbit.cppが入っている
  • README.md: 初めに読んでね。のファイル


まとめ

マイクロビットのMBedワークスペースは、下のような構成になっている

一番上の「リファレンス」あるのが嬉しい(笑)

Micro:bitで遊ぶ

  1. Micro:bit(Chibi:bit) での開発環境セットアップ
  2. Micro:bit スマホでプログラミング〜Bluetoothの設定〜

C/C++ Micro:bit(Chibi:bit) 〜MBED CLIのインストール〜

<Macの場合> ※他のOSの手順も記載してありました。

このページからCLIをインストールする

そして起動、セットアップ処理が走るようです。

処理が終わったら下のようにコマンドの入力待ち状態になります。

この状態で、コンパイラなどの必要な物が揃った状態のようです。

コマンドで色々と実行できるようですが、IDEと連携することもできるようです。


 

C/C++ Micro:bit(Chibi:bit) 〜初めのプログラム開発〜

イントロダクション

マイクロビット + C/C++で開発をしようと思います。まずは手順に沿って開発のセットアップを行います。

余談ですが、これは「ハローワールド」と呼ばれるプログラムです。以前に「Java Basic」でやりました。どのプログラム言語でもやると思います。

大きな目的としては「プログラムが走ることの確認」のため、初めてプログラムを作成するときなどです。プログラムに慣れてきたら、自作ライブラリ、フレームワークなどいろんなものの起動確認で実行する機会があります。

ちなみに、PCでの開発環境と、スマホでの開発環境(IDE)と色々出てきたので混乱しないようにしてください。

いざ!C/C++!

参考サイトは「Getting start with C/C++ on Micro:bit」です。日本語訳を利用して読みます。

初めにオフラインで開発しようと思い、色々やりましたが、下の「惨敗履歴」に示したように結局何も進展がなく。。。

とりあえずは、オンラインコンパイラを使用して慣れていこうと思います。

セットアップ

上記のリンクはChibibitでやった時の手順ですが、Microbitでも同じようになります。ちなみに、自分の作業としてはChibibitが自分のワークスペースに登録されていたので「ボードの追加」を行いました。

1. https://os.mbed.com/platforms/Microbit/へ移動します。

2.下の「Compiler」をクリックしてワークスペースに移動します。

3.画面の右上部分が以前「Chibibit」になっていたので名前の部分をクリック

4.下のような画面を開きます。

5.左下ので左から2番目に「Add Bord」とあるのでそれをクリック

そして使用するのは「Microbit」なのでそれを選択します。

するとワークスペースに「Microbit」が追加されます。※「Blinky」をインポートした後の画像です。

サイトにサンプルプログラムをインポートします。

ボードを追加した時にインポートするものを聞かれるので「Blinky」を選択します。

ここまででひと段落です。下のものは作業がうまくいかなかった時の履歴なので読まなくても大丈夫です。オフラインでの開発をするのであれば多少は参考になると思います。


惨敗履歴:オフラインでやるのは難しい

yottaのインストール

自分の使用している端末はMacなのでHome brewを使用してインストールします。

<Home brewでのインストール>

  1. ターミナルを開く
  2. brew install srecord」とコマンドを入力してEnter

下のリンクを参照してください

手動でのインストール

<手順: Macの場合>

  1. yottaをインストールする
  2. yotta.appをクリックしてターミナルを起動する
  3. brew upgradeを実行する

自分の実行結果

1:リンクを参考にyottaをインストールして以下のようなアイコンがでた(yotta.appのインストール完了)

2:上記のアプリを起動するとターミナルを起動する

3:以下のコマンドでサンプルプロジェクトを取得する

git clone https://github.com/lancaster-university/microbit-samples

そして、ディレクトリを移動する

cd ./microbit-sample

さらにビルドをかける

yt build

とここでビルドエラーがでました。

ちなみに「ビルド」というのは起動ファイルを作成するコマンドのことだと思ってくれれば良いです。

そして、ここのサイトではビルド時に必要なことが記載されていました。

ここには、以下のように手順が書かれていました。

    1. 「brew tap ArmMbed/homebrew-formulae」を実行する
    2. 「brew install python cmake ninja arm-none-eabi-gcc」を実行する

などと色々やりましたが、結局解決せず。。。

別の手法でアプローチ

基本的に初めからやってみることにしました。http://docs.yottabuild.org/tutorial/tutorial.html

上のサイトでは、「yotta init」コマンドでそのままプロジェクトを作成するものでした。

テンプレートのディレクトリ構成が作成されます。ここからオフラインでの開発を行うようです。。。

中途半端ですが。。。