top of page
Arduino言語でStuduinoを動かす

 慣れてきたらArduinoに切り変えたいと思います。せっかく使いなれたStuduinoのハードが有るのでこれを利用したいと思います。

​ 関数リファレンスも活用しましょう。

  *(miniは特別な設定が必要です。

Arduino IDE の設定

 マニュアルの通りに行えば簡単にできます。

アーテックのHPから

に入って

Studuinoライブラリセットとハードウェア設定ファイルArduino IDE用をダウンロードして解凍します。

使用しているArduinoのフォルダーに,ダウンロードして解凍した,hardwareの情報とライブラリを入れてやればStuduinoを認識するようになります。

​ 詳しくはアーテックの「Arduino環境設定手順書」をご覧ください

     Studuino

ソフトウエアダウンロード

Arduino IDEご利用の方

スケッチ例 Blink

Brink Studuino01

   1

   2

   3

   4

   5

   6

   7

   8

   9

  10

  11

  12

  13

  14

  15

  16

  17

  18

#include <Servo.h>//サーボ使用
#include <Wire.h>//I2C使用
#include <MMA8653.h>//加速度センサー使用
#include <Clock.h>//プログラムカラフルクロック使用
#include <Studuino.h>//Studuino使用

Studuino board;//boardとしてStuduinoを生成

void setup() {//初期設定
  board.InitSensorPort(PORT_A0, PIDLED);//初期化
}

void loop() {//繰り返し
  board.LED(PORT_A0, ON);//LED点灯
  board.Timer(1000);//1秒待機
  board.LED(PORT_A0, OFF);//LED消灯
  board.Timer(1000);//1秒待機
}

 インスタンスを作って命令を書きます。

Studuino board;//Studuinoを生成

 スケッチ例を見ればすぐにできます。1~4行はこのスケッチでは必要ありません。

 Studuinoのスクラッチで同じプログラムを書いてArduino言語に訳すと541行になってしまいます。いろいろなインクルードファイルも描かれていてArduino言語で動かすことはできませんでした。後ほど検討します。

シリアル通信試験

Brink Studuino02

   1

   2

   3

   4

   5

   6

   7

   8

   9

  10

  11

  12

void setup() {
  Serial.begin(9600);//serial初期化
  pinMode(4, OUTPUT);//D4 LED出力
}

void loop() {
  Serial.println(analogRead(0));//A0にフォトセンサ
  digitalWrite(4, HIGH);//D4点灯
  delay(1000);//1秒待機
  digitalWrite(4, LOW);//D4消灯
  delay(1000);//1秒待機
}

 シリアル通信ができるか試してみたところ,上のスケッチでも動作することがわかりました。

ヘッダーファイル

 ヘッダファイル

 Arduinoですので当然ですがセンサやアクチュエータを使う時は上のスケッチのインクルードファイル(ヘッダ)が必要です。

Brink Studuino01の1~5行の他に

#include <MPU6050.h>

// ジャイロセンサー使用時

#include <IRremoteForStuduino.h>

// 赤外線受信センサー使用時

#include <ColorSensor.h>

// カラーセンサー使用時

 その他にもヘッダが必要になりますが

Studuinoの元

StuduinoのボードはArduino Pro 3.3V 8MHzと構造が似ているようです。tkamadaさんのページで2015年6月に発信しています。

ArduinoでStuduino miniを動かす
miniの設定

 miniの場合はポートを使わずにプログラムの転送をするので設定の変更が必要となります。Arduino IDE 環境 設定手順書のP9

​以降に従って

①file→環境設定→コンパイル,書き込みにチェックを入れます。

②ボードをStuduino miniに設定します。

③書き込み装置もStuduino miniにします。

④書き込みアイコンをクリックして書き込みが表示されている間にminiのResetボタンを押します。

元に戻す

 設定することができても,元に戻せなくてはいけません。

​①file→環境設定→書き込みにチェックを外します。

②使用するボードにします。

③書き込み装置はUSBtinyispに戻します。

​④は必要ありません。

プログラムを試す

プログラムを試す

 プログラムを試すだけであれば,上のようなArduinoのプログラムであっても動作(コンパイル)します。

 D5,D6,D9は初期では内蔵LEDに設定されています。

 A6は初期では内蔵の光センサに設定されています。

photo TR0

   1

   2

   3

   4

   5

   6

   7

   8

   9

  10

  11

  12

void setup() {
  pinMode(5, OUTPUT);//D5 LED出力
}

void loop() {
  int a;
  a=analogRead(6);
  digitalWrite(5, HIGH);
  delay(a*10);
  digitalWrite(5, LOW);
  delay(a*10);
}

​ 内蔵のディバイスだけでこのようなプログラムを書くことができます。

miniのpin切り替え

LEDを内蔵と外付けに切り替える

 miniは内蔵のLEDを持っていますがセンサpinが少ないので,外付けの部品を使うために切り替える命令が有ります。

miniのpin内蔵LED

​5pin 内蔵LED赤

board.InitDigitalPort(PORT_D5, PIDLED);

6pin 内蔵LED黄色

board.InitDigitalPort(PORT_D6, PIDLED);

9pin 内蔵LED緑

board.InitDigitalPort(PORT_D9, PIDLED);

miniのpin

miniのpin外付けLED

board.InitSensorPort(PORT_D5, PIDLED);

board.InitSensorPort(PORT_D6, PIDLED);

board.InitSensorPort(PORT_D9, PIDLED);

とすると

​5pin 外付けLED

6pin 外付けLED

9pin 外付けLED

StuduinoMini board;

miniのインスタンス

​ 必要なインクルードファイル(ヘッダ)も事前に読み込みます。

StuduinoMini board;

等とインスタンスを作成します。

​ bord.xxx のようにminiのボードに対する命令が使えるようになります。

 Clockは

Clock

InitClock();

で初期化しないと命令を受け付けません。

clock0

   1

   2

   3

   4

   5

   6

   7

   8

   9

  10

  11

  12

  13

  14

  15

  16

  17

  18

  19

  20

  21

  22

  23

  24

  25

#include <Clock.h>
#include <Studuino.h>//Studuinoを使う

 

StuduinoMini board;

 

void setup() {
  board.InitSensorPort(PORT_A0, PIDLED);//A0を外付けLEDとする
  board.InitDigitalPort(PORT_D5, PIDLED);//A5を外付けLEDとする
  board.InitDigitalPort(PORT_D6, PIDLED);//A6を外付けLEDとする
  board.InitDigitalPort(PORT_D9, PIDLED);//A9を外付けLEDとする
  board.InitClock();//Clockの初期化
  //board.setTime(9, 0);//時刻の設定
  board.setBackLight(15, 10, 5); // 赤 15 緑 10 青 5 の色を設定する。
}

void loop() {
  board.backLight(ON); 
  board.LED(PORT_A0, ON);
  board.LED(PORT_D5, ON);
  board.Timer(1000);
  board.backLight(OFF); 
  board.LED(PORT_A0, OFF);
  board.LED(PORT_D5, OFF);
  board.Timer(1000);
}

 バックライトの色を指定して,ブリンクさせるプログラムです。

bottom of page