「Asterisk+Arduino」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(新しいページ: ' ===スケッチ=== #include <Servo.h> Servo servo1; int servoPin = 10; int up = 60; int down = 15; void setup(){ servo1.attach(servoPin); servo1.write(down);...')
 
(スケッチ)
1行目: 1行目:
 
+
===ハードウェア===
 +
Arduino Diecimilaを使います。Arduinoについては http://www.arduino.cc/ を参照してください。<br>
 +
日本国内ではメカロボショップ(http://www.mecharoboshop.com/)などから購入できます。<br>
 +
ネギ振りに使用しているサーボモータは小型のものです。電源はUSBから取ります。<br>
 
===スケッチ===
 
===スケッチ===
 +
サーボモータはArduinoの10番ピンに接続します。<br>
 +
Arduinoは以下のようなプログラムで動作させます。シリアルポート(USB)から入力された数値(1~9)に応じてネギを振る回数が決まります。'u'が入力されると上の位置、'd'が入力されると下の位置で停止します。's'が入力されると1回だけネギを振ります。<br>
 
  #include <Servo.h>
 
  #include <Servo.h>
 
   
 
   
54行目: 59行目:
 
   }
 
   }
 
  }
 
  }
 +
===Asteriskからの制御===

2008年10月19日 (日) 16:34時点における版

ハードウェア

Arduino Diecimilaを使います。Arduinoについては http://www.arduino.cc/ を参照してください。
日本国内ではメカロボショップ(http://www.mecharoboshop.com/)などから購入できます。
ネギ振りに使用しているサーボモータは小型のものです。電源はUSBから取ります。

スケッチ

サーボモータはArduinoの10番ピンに接続します。
Arduinoは以下のようなプログラムで動作させます。シリアルポート(USB)から入力された数値(1~9)に応じてネギを振る回数が決まります。'u'が入力されると上の位置、'd'が入力されると下の位置で停止します。's'が入力されると1回だけネギを振ります。

#include <Servo.h>

Servo servo1;

int servoPin = 10;
int up = 60;
int down = 15;

void setup(){
  servo1.attach(servoPin);
  servo1.write(down);
  
  Serial.begin(9600);
  Serial.print("OK");
}

void servo_loop(char ch)
{
  int i;
  
  servo1.write(down);
  
  for(i=0;i<(int)(ch -'0');i++){
    servo1.write(up);
    delay(150);
    servo1.write(down);
    delay(200);
  }
}

void loop(){
  if(Serial.available()) {
    char ch = Serial.read();
    
    switch(ch) {
      case '1'...'9':
        servo_loop(ch);
        break;
      case 'd':
        servo1.write(down);
        break;
      case 'u':
        servo1.write(up);
        break;
      case 's':
        servo1.write(down);
        servo1.write(up);
        delay(150);
        servo1.write(down);
        break;
      }
  }
}

Asteriskからの制御