yana_lab

Arduino

最終更新:

yana_lab

- view
だれでも歓迎! 編集

Arduino関連


Arduinoは初心者に最もおすすめできるマイコンボードです.
シンプルなプログラム(スケッチ)でいろいろなことができますし,資料が豊富です.
他のマイコンを使っているときでも,何か不具合があるときは,確認用に使用することもできます.

生産工学部機械工学科ではメカトロニクス演習の授業や応用プロジェクト演習の授業で使います.

ここでは1例として,応用プロジェクト演習のピンポン玉仕分け装置関連の資料をまとめておきます.
(Arduinoは教科書もわかりやすいWebサイトも充実しています.リファレンスも日本語でとても分かりやすいので,細かい点は自分で調べてください.)

センサによる計測

フォトセンサ(RPR-220)で計測するためのスケッチです.
回路は以下の図を参考にしてください.



void setup() {//初期設定
  Serial.begin(9600);//シリアル通信の設定
 }
 
void loop(){
  int sensorValue = analogRead(A0);//A0につながったセンサの値を取得する
  Serial.println(sensorValue);//シリアル通信で測定値を送る
  delay(100); //100msごとに計測する
 }
 

サーボモータの制御

次はサーボモータを制御してみましょう.
配線は以下を参考にしてください.


#include <Servo.h>  //サーボモーター用ライブラリを読み込み
Servo myservo1; //サーボ用のオブジェクトを作成
void setup()
{
  myservo1.attach(9); //デジタル9番ピンをサーボの角度命令出力ピンとして設定
 }
void loop()
{
  myservo1.write(10); //サーボを動かす
  delay(1500);
 
  myservo1.write(100); //サーボを動かす
  delay(1500);
 }
 

ボール仕分け装置

上記の2つのスケッチを組み合わせてピンポン玉の色に応じてボールを仕分けする装置を作ってみます.
下の例はサーボモータを2個使っています.

#include <Servo.h>  //サーボモーター用ライブラリを読み込み
Servo myservo1,myservo2; //サーボ用のオブジェクトを作成
void setup()
{
  myservo1.attach(9); //デジタル9番ピンをサーボの角度命令出力ピンとして設定
  myservo2.attach(10); //デジタル10番ピンをサーボの角度命令出力ピンとして設定
  Serial.begin(9600);//計測値確認用 シリアル通信
 }
void loop()
{
  myservo1.write(30); //サーボを動かす(基準位置)
  myservo2.write(55); //サーボを動かす(基準位置)
  delay(1500);
 
  int sensorValue = analogRead(A0); //フォトセンサによる計測(白は値が小さい 黒は値が大きい)
  Serial.println(sensorValue); //測定値確認用
 
  if (sensorValue < 450){ //ゴルフボールのとき
      myservo1.write(10); //サーボを動かす(解放)
      myservo2.write(100); //サーボを動かす(解放)
      delay(1500);
    }else if(sensorValue < 850){//ピンポン玉の時とき
      myservo1.write(100); //サーボを動かす(解放)
      myservo2.write(10); //サーボを動かす(解放)
      delay(1500);  
    }else{//何もないとき
      myservo1.write(30); //サーボを動かす(基準位置)
      myservo2.write(55); //サーボを動かす(基準位置)
      delay(1500); 
    }
 }
 

うまくいけばこんな感じになります.(動画はピンポン玉とゴルフボールを仕分けしています.)

タグ:

Arduino
+ タグ編集
  • タグ:
  • Arduino
添付ファイル
ウィキ募集バナー