//For Hiraoka
//ShockSensor & Solenoid & Motor
//2009.7.21
//PinAssign
int SOLENOID=11;
int SWITCH=12;
int SHOCK=14;
//StepMotorPin
int ST_X1=2;
int ST_X2=4;
int ST_Y1=3;
int ST_Y2=5;
//Tsumami
int Pot=5;
//Value
#define MAX 100
int rythm_cnt=0;
int rythm[MAX];
int dly;
int MotorCnt;
//Setup
void setup(){
pinMode(SOLENOID,OUTPUT);
pinMode(SHOCK,INPUT);
pinMode(SWITCH,INPUT);
pinMode(ST_X1, OUTPUT);
pinMode(ST_X2, OUTPUT);
pinMode(ST_Y1, OUTPUT);
pinMode(ST_Y2, OUTPUT);
pinMode(ledPin, OUTPUT);
for(int i=0; i<MAX; i++){
rythm[i]=0;
}
}
//Loop
void loop(){
rythm_cnt++;
if(rythm_cnt>=MAX) rythm_cnt=0;
if(digitalRead(SHOCK)==1){
rythm[rythm_cnt]=1;
}
dly=50;
for(int i=0; i<dly; i++){
delay(1);
if(digitalRead(SWITCH)==1) {
for(int j=0; j<MAX; j++){
rythm[j]=0;
rythm_cnt=0;
}
}
if(rythm[rythm_cnt]==0){
MotorCnt++;
MoveMotor(MotorCnt);
}
}
if(rythm[rythm_cnt]==1){
digitalWrite(SOLENOID,HIGH);
}
else{
digitalWrite(SOLENOID,LOW);
MotorCnt++;
MoveMotor(MotorCnt);
}
}
//MoveMotor
void MoveMotor(int stp){
int s;
s=stp%8;
switch(s){
case 0:
digitalWrite(ST_X1, HIGH);
digitalWrite(ST_X2, LOW);
digitalWrite(ST_Y1, LOW);
digitalWrite(ST_Y2, LOW);
dly = analogRead(Pot)/4;
delay(dly);
break;
case 1:
digitalWrite(ST_X1, HIGH);
digitalWrite(ST_X2, HIGH);
digitalWrite(ST_Y1, LOW);
digitalWrite(ST_Y2, LOW);
dly = analogRead(Pot)/4;
delay(dly);
break;
case 2:
digitalWrite(ST_X1, LOW);
digitalWrite(ST_X2, HIGH);
digitalWrite(ST_Y1, LOW);
digitalWrite(ST_Y2, LOW);
dly = analogRead(Pot)/4;
delay(dly);
break;
case 3:
digitalWrite(ST_X1, LOW);
digitalWrite(ST_X2, HIGH);
digitalWrite(ST_Y1, HIGH);
digitalWrite(ST_Y2, LOW);
dly = analogRead(Pot)/4;
delay(dly);
break;
case 4:
digitalWrite(ST_X1, LOW);
digitalWrite(ST_X2, LOW);
digitalWrite(ST_Y1, HIGH);
digitalWrite(ST_Y2, LOW);
dly = analogRead(Pot)/4;
delay(dly);
break;
case 5:
digitalWrite(ST_X1, LOW);
digitalWrite(ST_X2, LOW);
digitalWrite(ST_Y1, HIGH);
digitalWrite(ST_Y2, HIGH);
dly = analogRead(Pot)/4;
delay(dly);
break;
case 6:
digitalWrite(ST_X1, LOW);
digitalWrite(ST_X2, LOW);
digitalWrite(ST_Y1, LOW);
digitalWrite(ST_Y2, HIGH);
dly = analogRead(Pot)/4;
delay(dly);
break;
case 7:
digitalWrite(ST_X1, HIGH);
digitalWrite(ST_X2, LOW);
digitalWrite(ST_Y1, LOW);
digitalWrite(ST_Y2, HIGH);
dly = analogRead(Pot)/4;
delay(dly);
break;
}
}
//StopMotor
void StopMotor(){
digitalWrite(ST_X1, LOW);
digitalWrite(ST_X2, LOW);
digitalWrite(ST_Y1, LOW);
digitalWrite(ST_Y2, LOW);
}
ひらおかさんのプログラムサンプル3
サーボモーターが4つ、スイッチが4つ、リセットスイッチが1つ。
//For Monma
//Servo*4 and Switch*4 and ResetSwitch*1
//2009.7.17
//Pin
//DIGITAL PIN (8,9,10,11)
int Servo_pin[4]={8,9,10,11};
//ANALOG IN PIN (0, 1, 2, 3)
int Switch_pin[4]={14,15,16,17};
//ANALOG IN PIN (5)
int ResetSwitch_pin = 19;
//ServoSpeed
int Speed_val[4]={50,50,50,50};
//Value
signed int Servo_val[4]={
0,0,0,0};
int MaxCnt=2000;
//Init
void setup(){
for(int i=0; i<4; i++){
pinMode(Servo_pin[i],OUTPUT);
pinMode(Switch_pin[i],INPUT);
Servo_val[i]=90;
}
pinMode(ResetSwitch_pin,INPUT);
}
//Loop
void loop(){
for(int i=0; i<1; i++){
if(digitalRead(Switch_pin[i])){
Servo_val[i]+=Speed_val[i];
if(Servo_val[i]>MaxCnt)Servo_val[i]=MaxCnt;
}
else{
if(digitalRead(ResetSwitch_pin)==1) Servo_val[i]=90;
}
}
Control_Servo4();
}
void Control_Servo4(){
//Control Servo 4
for(int i=0; i<4; i++){
digitalWrite(Servo_pin[i],HIGH);
}
for(int i=0; i<4; i++){
delayMicroseconds(Servo_val[i]+500/4);
}
for(int i=0; i<4; i++){
digitalWrite(Servo_pin[i],LOW);
}
for(int i=0; i<4; i++){
delayMicroseconds((10000-(Servo_val[i]+500))/4);
}
delayMicroseconds(10000);
}
アルミの板の素材
アルミの板は、NCマシン(いつもブーンという機械)で削れます。
アクリルのように、板をカットして、折り曲げることでいろんな形にできます。
削りやすくできているアルミが、「A5052」です。「快削アルミ」ともいいます。
ホームセンターで売っているアルミの板だと、粘りっこいアルミになっていて、削りにくいです。ロボット系を考えている人は、アルミはA5052にしないと加工がやりにくいです。
オリジナルマインドで買えます。
ベアリングなどの動かす系の部品
オリジナルマインド
回転するものを作りたいときに、きちんとベアリングを入れてあるかどうかが、キーポイントになります。外から見えなくて地味だけど、しっかり作りたい人はいれておいて間違いないです。
ベアリングで、板に軸を固定する方法が紹介されていて、固定方法を考えるのに参考になります。
LEDいろいろ
LEDは、秋月電子で買うのが安いです。大量に欲しいときも、だいたい大丈夫です。
最近、テープ状のLEDを扱ってくれてるので、LEDで手軽に広めに明るくしたいところなどは便利です。
最近は、千石電商がLED向けに、放熱基板を売ってくれてます。手軽にLED照明を作りたい人は千石電商の基板がいいと思います。通販では扱ってないのかな??
その他で、ものすごく明るいLEDが欲しかったりすると、「パワーLED」って呼ばれるものがあります。
これは、ストロベリーリナックスがいいです。
乾電池でパワーLEDをつけられる部品が出ました!
ほかに、パワーLED関係は、オーディオQも多種類あつかっていていいです。オーディオなのにLEDなのはナゾです。。
登録:
投稿 (Atom)