Closed okhiroyuki closed 9 years ago
Scratchでいうところの、イベントとして"最初の準備"イベントを作って、そこにつながったものはsetup関数の中に入れるというのはいかがですか?
ご提案ありがとうございます!
まず、Blocklyduino自体の仕様なのですが、もともとSetup関数とLoop関数の取り扱いは、あまり気にしないでいいように、ピンの宣言やシリアル通信に関する関数などsetup関数の中に必要なコードを記述する必要があるものは、自動生成する仕組みになっています。
たとえば、setup()やヘッダにコードを記述する例は、以下のような感じです。 重複を避けるため、ユニーク関数として定義しなければいけないようです。
setup()へ追加
var valuepin = A0; Blockly.Arduino.setups['setupoutput'+ value_pin] = 'pinMode('+value_pin+', INPUT);';
headerへ追加
Blockly.Arduino.definitions_['define_sonic_timeout'] = 'int Sonic_Time_out = 3000;\n';
そのため、仕様上Setup関数だけを段取りするのはどうかな〜と迷っておりました。
今、ちょうどその部分に着手しており、散々迷った挙句、Arduino 日本語リファレンス setup()を読み、不足しているのはピンの初期化に関する部分だけなので、ピン制御ブロック(inout.js)の一番下にSetup関数なるものを追加するようにしようと思いました。
今後、さらにsetup関数への追加項目が増えそうなら、別途カテゴリーとして設けてもいいかと思いました。 このような方針でどうでしょうか?
この辺り、一度レクチャーしていただけると嬉しいです。今から岡田さんのレベルに独学でキャッチアップするのは難しいし、足を引っ張りかねないです。
そうですね。 私もすべての内容をwikiなど文章として網羅するのは難しいですよね。 どこかのタイミングで、時間を取らせていただき、ざっとBlocklyduinoの仕様などを説明させていただければ、一気に理解が進むような気がします。 サンプルサイトなどについても、あわせて説明できればと思ってます。 また、ご都合など教えてください。
デジタルピンの初期化などは、setup内に記述したほうが、Arduino本来の書き方に近い。
解決としては、setupブロックを作成し、その中に必要な関数を用意する方法が簡単かな。