未経験者でも簡単!obnizのブロックプログラムをArduinoと比較しました

obniz Board(オブナイズボード)は、誰でも簡単にIoTデバイスをつくることができる製品です。本記事では、プログラミング未経験でも簡単にobnizを動かすことができる、「ブロックプログラミング」をご紹介します。

比較のため、電子工作で大人気のArduino(アルデゥイーノ)のプログラムも合わせてご紹介しております。さあ、あなたもobnizでプログラミングを始めてみませんか?

obniz Boardobniz BoardをAmazonで見る

obnizとArduinoってなに?

obniz

IoTとは、様々なモノがインターネットにつながっている状態のことで、インターネットにつながったモノのことをIoTデバイスと呼びます。例えば、外出先からもスマートフォンで操作できるエアコンは、IoTデバイスの一つです。なんと、「obniz Board(オブナイズボード)」を使うと、そんな便利なIoTデバイスを簡単につくれてしまうのです!

obniz Boardは、電子工作やプログラミングの知識がない人でも簡単に使えるようになっています。ほとんどのパーツはobniz Boardに直接つなぐだけで使えますし、わかりやすいブロックを利用したプログラミングも可能です。

obnizをつかった工作については、以下の記事「これならできる!かんたんIoT工作入門」で詳しくご紹介しておりますので、ぜひご覧ください!

Arduino

Arduinoは、電子工作で大変人気の高いボードです。obnizと同様、ボードに備え付けられたピンにパーツを接続してつかいます。Arduinoのプログラムは、Arduino IDEと呼ばれる統合開発環境を用いて開発するのが一般的です。プログラミング言語として、俗に「Arduino言語」と呼ばれるオリジナル言語を用います。Arduino言語はC言語に非常に近いので、C言語に親しんでいる開発者であればすぐに使いこなせるでしょう。プログラムはUSBケーブルなどを経由して書き込まれます。この点は、インターネット経由で動作するobnizと異なります。

Arduino Uno - R3

Arduinoにはないobnizの魅力

Arduinoのプログラムは大変シンプルですが、そうは言ってもやはりブロックプログラムほど直感的ではなく、またアルファベットを用いたプログラミングが必要で、まったくの未経験者や小さなお子様にはややハードルが高いでしょう。その点、これからご紹介するobnizのブロックプログラムはとてもかんたんです。

また、obnizは「IoTデバイス」の開発に特化した製品なので、インターネットと接続して遠隔操作することができます。同様のことをArduinoで行おうとすると、大変な労力がかかります。IoTデバイス開発の入り口として、obnizは最適です。一方、作品をインターネットに接続する必要がない場合には、Arduinoはとても良い選択肢と言えるでしょう。

obnizのプログラミングは、インターネットを見るためのブラウザ上で行えます。追加でソフトウェアをインストールする必要はありません。Arduinoは専用のソフトウェアをインストールしなければならないので、この点でもobnizは初心者にやさしいデバイスです。

ブロックプログラミングの例

それでは、obnizのブロックプログラムの例をご紹介します。obnizは、ブロックプログラム以外にもJavaScriptというプログラミング言語を用いた開発も行えますので、そちらのコードもご紹介します。

LEDを光らせる

LEDが光るだけのシンプルなプログラムです。1番上の、「obnizをobniz id : ” ” に接続する」というブロックは、obnizのブロックプログラムでは必ず使います。そのあとに、anode(アノード、LEDの長い足)とcathode(カソード、LEDの短い足)が刺さっている場所の番号を指定しています。

これを、obnizのJavaScriptプログラムで書くと、以下のようになります。1行目と2行目が、「 obnizをobniz id : ” ” に接続する 」のブロックに相当しますので、これらは毎回書くことになります。

obniz = new Obniz('xxxx-xxxx');
await obniz.connectWait();

led = obniz.wired("LED",{"anode":0, "cathode":1});
led.on();

同様の動作をArduinoで行おうとすると、以下のようなプログラムになります。このプログラム中の「13」という数字は、LEDのアノードに接続しているArduinoのピン番号です。

void setup()
{
  pinMode(13,OUTPUT);
}

void loop()
{
  digitalWrite(13,HIGH);
} 

LEDを点滅させる

つぎに、このLEDを0.5秒(500ミリ秒)ごとに点滅させてみましょう。これは、「500ミリ秒待つ」というブロックを使って、以下のようにつくることができます。光ったり消えたりをずっと繰り返して欲しいので、「ずっと実行」というブロックも使います。「500」という数字を書き換えることで、光っている時間と消えている時間が変わります。

これを、obnizのJavaScriptプログラムで書くと、以下のようになります。「while (true)」は、「ずっと実行」という意味です。

obniz = new Obniz('xxxx-xxxx');
await obniz.connectWait();

led = obniz.wired("LED",{"anode":0, "cathode":1});
while (true) {
  await ObnizUI.Util.wait(0);
  led.on();
  await ObnizUI.Util.wait(500);
  led.off();
  await ObnizUI.Util.wait(500);
}

Arduinoでは、以下のようになります。Arduinoでは、void loop()の中に書いたプログラムは、自動で繰り返すようになっているため、while文がありません。

void setup()
{
  pinMode(13,OUTPUT);
}

void loop()
{
  digitalWrite(13,HIGH);
  delay(500);
  digitalWrite(13,LOW);
  delay(500);
} 

ちなみに、光っている時間と消えている時間が同じとき、obnizのブロックプログラムでは、「〜ミリ秒間隔で点滅させる」というブロックが使えます。便利ですね!

2つのLEDを交互に光らせる

さて、今度はLEDを2つに増やして、交互に点滅させてみます。LEDの数が増えても、ブロックプログラムなら簡単に動作させられますよ!今回は、2つのLEDに「白いLED」と「赤いLED」という名前を付けています。

obnizのJavaScriptプログラムは、以下のようになります。だんだん複雑になってきましたが、よく見てみるとブロックプログラムとほとんど同じ構造になっています。

obniz = new Obniz('xxxx-xxxx');
await obniz.connectWait();

white_LED = obniz.wired("LED",{"anode":0, "cathode":1});
wed_LED = obniz.wired("LED",{"anode":2, "cathode":3});
while (true) {
await ObnizUI.Util.wait(0);
  white_LED.on();
  await obniz.wait(500);
  white_LED.off();
  red_LED.on();
  await obniz.wait(500);
  red_LED.off();
}

Arduinoでは以下のようになります。

void setup()
{
  pinMode(13,OUTPUT);
  pinMode(12,OUTPUT);
}

void loop()
{
  digitalWrite(13,HIGH);
  delay(500);
  digitalWrite(13,LOW);
  digitalWrite(12,HIGH);
  delay(500);
  digitalWrite(12,LOW);
} 

ドの音を鳴らす

圧電スピーカー(パッシブブザー)を使うと、好きな音を鳴らすことができます。今回は、真ん中のドの音を鳴らしてみましょう。これも、ブロックプログラムならとても簡単です。

obnizのJavaScriptプログラムでは、以下のようになります。「speaker.play(262);」で、ドの音(262kHz)を鳴らしています。この数字を変えれば、ドのシャープ(277kHz)のようなブロックプログラムでは出せない音も扱えるようになります。

obniz = new Obniz('xxxx-xxxx');
await obniz.connectWait();

speaker = obniz.wired("Speaker",{"signal":0, "gnd":1});
speaker.play(262);

Arduinoでは、以下のようになります。とてもシンプルです。(9は、スピーカーのアノードが接続されているArduinoのピン番号です)

void setup() {
}
 
void loop() {  
  tone(9, 262);
}

ブロックできらきら星を演奏する

ブロックプログラムで、曲を演奏することもできます。今回は、きらきら星を演奏させてみます。長くなってしまうので、最初の部分だけご紹介します。是非、続きを完成させてみてください!

いかがでしょうか。「ブロックプログラムなら、プログラミングがわからなくても作れそう!」と思っていただけたのではないでしょうか。以下のページでは、obnizを用いたいろいろな作品を紹介していますので、ぜひご覧ください。

obniz Boardは、Amazonで好評発売中です!

obniz Boardobniz BoardをAmazonで見る