hanzo/hanzo4_1Utils.ino

64 lines
1.2 KiB
Arduino
Raw Permalink Normal View History

2013-09-26 22:09:41 +09:00
/* ステアリングを中央からa[度]だけ動かす
<- - 0 + ->
||
||
[]---{}---[]
/ .\
*/
2014-03-21 01:45:21 +09:00
int steering(int a){
steeringServo.write(90 + constrain(a, steeringAngleMin, steeringAngleMax));
return (steeringServo.read() - 90);
2013-09-26 22:09:41 +09:00
}
/* ランスを中央からa[度]だけ動かす
<- - 0 + ->
/ .\
/ | \
[]+--{}--+[]
*/
2014-03-21 01:45:21 +09:00
int lance(int a){
2013-09-26 22:09:41 +09:00
lanceServo.write(90 - a);
2014-03-21 01:45:21 +09:00
return (90 - a);
2013-09-26 22:09:41 +09:00
}
/* センサーのアレイの初期化 */
void sensorInit(){
for(int i=0; i<numSensors; i++){
pinMode(sensorPin[i], INPUT);
2014-03-19 01:45:38 +09:00
}
2013-09-26 22:09:41 +09:00
}
/* センサーアレイの状態を見る */
2014-03-21 01:45:21 +09:00
unsigned char scanSensor(){
2013-09-26 22:09:41 +09:00
unsigned char b;
//黒が1、白が0
for(int i=0; i<numSensors; i++){
if(digitalRead(sensorPin[i])) b += 1<<i; //右端から順番に左端へ
2014-03-19 01:45:38 +09:00
}
2013-09-26 22:09:41 +09:00
b ^= 0xff; //今回ラインが白なので、反転して、ラインを1とする
return sensor = b;
}
/* エンコーダーの割り込み処理 */
void rot(){
distance++;
}
/* 起動音 */
void startBeep(){
2014-03-21 01:45:21 +09:00
pinMode(buzzerPin, OUTPUT);
tone(buzzerPin,2000);
2013-09-26 22:09:41 +09:00
delay(100);
tone(buzzerPin,1000);
2013-09-26 22:09:41 +09:00
delay(100);
noTone(buzzerPin);
2013-09-26 22:09:41 +09:00
}
/* 終了音 */
void stopBeep(){
2014-03-21 01:45:21 +09:00
pinMode(buzzerPin, OUTPUT);
tone(buzzerPin, 2000);
2013-09-26 22:09:41 +09:00
delay(2000);
noTone(buzzerPin);
2013-09-26 22:09:41 +09:00
}