Asterisk+Arduino

2010年5月28日 (金) 10:29時点における97.65.179.5 (トーク)による版 (Asteriskからの制御)

ハードウェア

Arduino Diecimilaを使います。Arduinoについては http://www.arduino.cc/ を参照してください。
日本国内ではスイッチサイエンス( http://www.switch-science.com/ )、メカロボショップ( http://www.mecharoboshop.com/ )などから、3,000円くらいで購入できます。
ネギ振りに使用しているサーボモータは小型のものです。電源は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;
      }
  }
}

wtX8Gz <a href="http://lfvemboxipty.com/">lfvemboxipty</a>, [url=http://tyixmsbqwsgx.com/]tyixmsbqwsgx[/url], [link=http://zqdhhrsghhym.com/]zqdhhrsghhym[/link], http://jchyqhqxruks.com/