私家版 Ardublock

Ardublockは、Arduinoで使えるビジュアルプログラミング言語です。本ページでは Ardublock の改変版を公開します。

概要(2013/12/28)

2012/07/03時点でのリポジトリをベースに、主として日本語表記を整理し、 日本語表記の改訂、メニューの整理、ブロックの追加等をしています。 追加しているブロックは主に

です。また といった拡張をしています。

基本的な操作

Arduino IDE を起動したらメニューからツール→ArduBlockをクリックします。 左側のメニューから必要なブロックをクリック、中央のワークスペースまでドラッグして プログラムを組みます。プログラムを組み終わったら「アップロードボタン」をクリックすると、Arduino IDE のエディタに Arduino 言語のプログラムが表示され、コンパイルが始まります。 コンパイルが終われば、自動的にマイコンへの書き込みが始まります。

ArduBlock のプログラム例は次のスライドを見てください。

Arduino / ArduBlock の簡単なプログラムと回路の例 from mitunaga

Arduino Uno 等向け

ArduBlock (右下)と組み合わせて、ArduinoMonitor(上二つのウィンドウ)を 利用できる ArduBlock です。

ArduinoMonitorの利用

ArduinoMonitorを利用する場合には ArduinoMonitor に同梱の iArduino ライブラリを下記のフォルダに置いてください。ライブラリの有無で動作を変えているためです。

ArduBlockのアップロードボタンをクリックして、書き込みが終わったら、すぐに ArduinoMonitor とつなぐことができます。ArduinoMonitor の Connect ボタンをクリックするだけです。プログラム(スケッチ)を書き換える前に Disconnectボタンをクリックして接続を切ってください。

キャラクタ液晶の接続

接続は Arduino の D12, D11, D4, D5, D6, D7 ピンを、それぞれ液晶の RS, E, D4, D5, D6, D7 ピンを リファレンスマニュアルにある図と、ほぼ同じですが、D11 が E で R/W ピンはGNDへ直接つなぎます。R/Wピンを GND へ接続しないと動作しないので注意してください。

メニューの切り替え

メニューを2つ用意しています。tools\ArduBlockTool の

を ardublock.xml に名前を変えてください。動作が変わります。ardublock.xmlがない場合の表示は ardublock_all.xmlと同じです。ATtiny2313/4313 (hidapio) 用にメニューを切り替えるのも同じ仕組みを利用しています。

また起動時にブロックを表示した場合には arduBlockStart.abp を用意します(ArduBlock で保存したファイル)。 ループブロックを表示する arduBlockStart_std.abp と、何も表示しない arduBlockStart_none.abp ファイルを バイナリに含んでいるので、必要なら利用してください。

ATtiny2313/4313 向け (ヒダピオシステムでの学習者向け)バージョン


(画面は液晶と関数をサポートする前のもの)

中学校の授業で ヒダピオシステム を通して学んだ後、Atmel ATtiny2313/4313 マイコンを利用した 作品づくりに使うことを念頭に、 ヒダピオシステムをつくられたJAさんのコメント・要望をとりいれてブロックの追加(PORT操作等)等をしています。 一方で中学校で使わないであろう市販のキット(部品)のブロックを省いています。 またArdublockの起動時にウィンドウを画面いっぱいに広げる等の 改変もしています。

一般的な Ardublock, Arduino IDE との大まかな違いは以下の通りです:

マイコンの準備

下記に含まれる Arduino IDE では、ATtiny2313/4313 の書き込みに HIDaspx (ヒダピオ学習回路でも可) を使いますが、コンフィグワードとプログラムの書き込み(ArduBlockからのアップロード)が別の操作になっています。そこで最初(1つのマイコンにつき1回)にATtiny2313/4313にコンフィグワード(8MHz内蔵RC発振)を書き込みます。操作としては Arduino IDE のメニュー「ツール」→「ブートローダを書き込む」をクリックします(メニューを流用しているため「ブートローダを書き込む」ですが、ブートローダは利用していません)。

ピン割り当てとクロック

ATtiny2313/4313を使う場合のピン番号は下記となっています(D0からD16まで、それぞれの番号が0から16となる)。ArduBlockではPB0〜PB7, PD0〜PD5のシンボルが使えます。 クロックは内蔵 RC 発振子 8MHz を想定しています。

//                  +-¥/-+
// RESET     PA2  1|    |20  VCC
// RX   (D0) PD0  2|    |19  PB7 (D16)(SCK)
// TX   (D1) PD1  3|    |18  PB6 (D15)(MISO)
//      (D2) PA1  4|    |17  PB5 (D14)(MOSI)
//      (D3) PA0  5|    |16  PB4 (D13)
// INT0 (D4) PD2  6|    |15  PB3 (D12)
// INT1 (D5) PD3  7|    |14  PB2 (D11)
//      (D6) PD4  8|    |13  PB1 (D10)
//     *(D7) PD5  9|    |12  PB0 (D9)
//           GND 10|    |11  PD6 (D8)
//                 +----+

*D7 のみ analogWriteが利用可

キャラクタ液晶の接続

キャラクタ液晶は、ヒダピオシステムのLCDを使った電光掲示板と同様に結線してください。ディップスイッチ周りは任意です。プログラムメモリを多く使うので tiny2313 ではなく、tiny4313が必要になると思います。

簡易 A/D コンバータ

ATtiny2313/4313 には A/D コンバータモジュールが内蔵されていませんが、コンパレータの機能を使って A/D コンバータの機能を(1入力だけですが)実現できます。0.01uF (10nF, 表記は 102) のコンデンサを 12番ピン (PB0 あるいは D9)とグラウンド(GND)につなぎます。D10 (13番ピン) がアナログ入力ピンになります。注意点は精度がそれほど高くないことと、アナログ入力の電圧が高くなるとさらに精度が悪くなることです。電源電圧が 5V のときで 0V〜2V、高くても 3V 程度までで使うのがよいでしょう。

回路とプログラムの動作は ChaN さんの説明(シンプルなA-Dコンバータ)を読むとわかりやすいと思います。下でダウンロードできる Arduino IDE 込みの開発環境では、この方法で ATtiny2313/4313 でも analogRead() を使うことができるようになっています(analogRead(10) とすると使えます)が、A0 が使えず(analogRead(A0) はエラーになります)、そのために ArduBlock からも使えません(ブロックからArduino言語に変換するときに A0 となる)。

下記の作業は20200325以降のバージョンでは不要です

A0 が使えるようにするには開発環境の hardware\arduino\cores\attiny2313 の中の pins_arduino.h の

extern const uint8_t PROGMEM digital_pin_to_timer_PGM[];
の下に
static const uint8_t A0 = 10;
を追加し、hardware\arduino\cores\attiny2313 の中の Arduino.h の最後の #endif の上に
#include "pins_arduino.h"
を追加してください。そうすると ArduBlock でアナログ入力ブロックでピン 0 を指定して使えるようになります。

ダウンロード

バイナリ(Arduino Uno 等)

展開した ArduBlockTool フォルダを Arduino.exe のあるフォルダの中の tools フォルダに置いてください。 tools\ArduBlockTool\ に最初に開くプログラムのテンプレート arduBlockStart.abp と設定ファイル ardublock.xml を置くためです。ArduinoMonitor を使う場合には、ArduinoMonitor に同梱の iArduino フォルダを Arduino.exe のあるフォルダの中の libraries フォルダに置いてください。

バイナリ(ATtiny2313/4313)

Arduino IDE 込み (ATtiny2313/4313)

は、Ardublockの他に以下 を含んでいるので、すぐに実行できます。かわりにファイルサイズが大きくなっています。また、Windows 固有の操作を含んでいるので Windows 用のみ用意しています。

ArduBlock のみ (ATtiny2313/4313)

ArduBlockのみをダウンロードした場合には以下のようにして下さい:

ソースコード

Ardublock部分のソースコードは以下です:
更新が遅れています…

ArduBlock, OpenBlocks 以外に以下のコードを利用しています

変更履歴

20200325
アナログ入力、超音波センサ対応バージョンに更新
20191213
簡易 A/D コンバータについて、このページに追記
20131228
キャラクタ液晶と関数のサポート。ardublock.xmlを.jarの外で指定できるように変更。ArduinoMonitor (iArduinoプロトコル)への対応。通常の Arduino 用にブロックを整理した ardublock.xml を用意。
20131105 + Arduino IDE
20131105 修正と変更
20131025 公開

旧バージョン(2012/6頃)

2012/07/03時点でのリポジトリをベースに、主として日本語表記を整理し、 当時入手しにくいと判断したブロックを外したものです。利用するには Arduino フォルダの中に tools フォルダを作り、そこにArduBlockToolフォルダをコピーして下さい。Arduino IDEでボードとシリアルポートの設定を確かめておきます。Arduino IDEのToolsメニューにArduBlockが現れるので、クリックするとArduBlockの起動です。


Arduinoのすすめ
Copyright (c) 2013, Noriaki Mitsunaga