Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed 2019ROBOKONmanualProgram
Revision 2:830db42bae7e, committed 2019-09-17
- Comitter:
- shina
- Date:
- Tue Sep 17 08:54:21 2019 +0000
- Parent:
- 1:99294241f2ba
- Commit message:
- aaaaaaaaa
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Sep 05 09:40:50 2019 +0000
+++ b/main.cpp Tue Sep 17 08:54:21 2019 +0000
@@ -9,7 +9,7 @@
0x16:左前
0x18:サーボ制御回路
0x20:右ラック
-0x22:左ラック
+0x22:左ラック.
0x24:回収機構
0x26:右ファン
0x28:左ファン
@@ -30,7 +30,9 @@
DigitalOut pwm(D4);
DigitalOut stop(D10);
DigitalOut led1(LED1);
-
+Timer timer;
+Timer timer2;
+Timer timer3;
//変数
char data1;//右上
@@ -45,7 +47,7 @@
char data9;//左ファン
char data10;//パトランプ
char data11;//吐き出し機構
-char get_data_rs232=0x80;
+char get_data_rs232=0x00;
int Ry;
int Rx;
int Ly;
@@ -78,10 +80,15 @@
int o=1;
int old_right1=0;
int old_left1=0;
-int p=2;
+int p=5;
int q=0;
-
-
+int old_ue1=0;
+int old_shita=0;
+int old_left2=0;
+int old_triangle=0;
+int old_cross=0;
+int r=6;
+int s=5;
//関数プロトタイプ宣言
@@ -90,34 +97,40 @@
void change_data();
void change_pwm();
void change_servo();
-void change_rack();
+//void change_rack();
void change_fan();
void send_data(char address,char data);
void emergency();
void change_rack_2();
-void sequence_kaisyu();
-//void kaisyu();
-void sequence_hakidashi();
-//void hakidashi();
+//void sequence_kaisyu();
+void kaisyu();
+void kaisyu_short();
+//void sequence_hakidashi();
+void hakidashi();
+void mode_change();
//メイン関数
-int main(){
+int main()
+{
led=1;
+ pwm=1;
initialization();
- while(true){
+ while(true) {
emergency();
get_data();
+ mode_change();
change_pwm();
change_servo();
change_data();
- change_rack();
+ //change_rack();
change_rack_2();
- sequence_kaisyu();
- //kaisyu();
- sequence_hakidashi();
- //hakidashi();
+ //sequence_kaisyu();
+ kaisyu();
+ kaisyu_short();
+ //sequence_hakidashi();
+ hakidashi();
change_fan();
send_data(0x10,data1);
send_data(0x12,data2);
@@ -131,16 +144,17 @@
send_data(0x28,data9);
send_data(0x40,data10);
//send_data(0x30,data11);
-
+
+
+
-
-
- }
}
-
-
+}
+
+
//初期化
-void initialization(){
+void initialization()
+{
data1=0x80;
data2=0x80;
data3=0x80;
@@ -152,7 +166,7 @@
data9=0x80;
data10=0x80;
data11=0x80;
-
+
send_data(0x10,data1);
send_data(0x12,data2);
send_data(0x14,data3);
@@ -165,12 +179,26 @@
send_data(0x40,data10);
send_data(0x30,data11);
-
- }
+ data10=0x3f;
+ send_data(0x40,data10);
+ if(q==0){
+ data10=0xdf;
+ send_data(0x40,data10);
+ }else if(q==1){
+ data10=0xcf;
+ send_data(0x40,data10);
+ }
+
+ timer.reset();
+
+}
+
+
//データ読み込み
-void get_data(){
+void get_data()
+{
Ry=ps3.getRightJoystickYaxis();
Rx=ps3.getRightJoystickXaxis();
Ly=ps3.getLeftJoystickYaxis();
@@ -189,241 +217,298 @@
hidari1=ps3.getButtonState(hidari);
migi1=ps3.getButtonState(migi);
get_data_rs232=slave.getc();
-
+
- if(get_data_rs232==0x20||get_data_rs232==0x22||get_data_rs232==0x24||get_data_rs232==0x32||get_data_rs232==0x34){
+ if(get_data_rs232) {
led1=1;
- }else{
- led1=0;
- }
- pc.printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",Ry,Rx,Ly,left1,left2,right1,right2,select,start,ue1,shita,triangle,square,migi1,hidari1,tushin_check,i);
- if(Ry==0&&Rx==0&&Ly==0&&left1==0&&right1==0&&right2==0&&left2==0&&select==0&&start==0&&shita==0&&triangle==0&&ue1==0&&migi1==0&&hidari1==0&&square==0&&circle==0&&cross==0){
+ } else {
+ led1=0;
+ }
+ //pc.printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",Ry,Rx,Ly,left1,left2,right1,right2,select,start,ue1,shita,triangle,square,migi1,hidari1,tushin_check,i);
+ if(Ry==0&&Rx==0&&Ly==0&&left1==0&&right1==0&&right2==0&&left2==0&&select==0&&start==0&&shita==0&&triangle==0&&ue1==0&&migi1==0&&hidari1==0&&square==0&&circle==0&&cross==0) {
data_check=0;
- }else{
- data_check=1;
- }
-
+ } else {
+ data_check=1;
}
-
+
+}
+
//緊急停止
-void emergency(){
- if(start!=old_start){
- old_start=start;
- if(start==1){
- if(j==1){
- //緊急停止
- led=0;
- stop=1;
- j=0;
- }else if(j==0){
- //緊急停止解除
- led=1;
- stop=0;
- j=1;
+void emergency()
+{
+ if(start!=old_start) {
+ old_start=start;
+ if(start==1) {
+ if(j==1) {
+ //緊急停止
+ led=0;
+ stop=1;
+ j=0;
+ } else if(j==0) {
+ //緊急停止解除
+ led=1;
+ stop=0;
+ j=1;
}
}
- }
+ }
+}
+
+
+//モードチェンジ
+void mode_change(){
+ if(old_select!=select){
+ old_select=select;
+ if(select==1){
+ if(q==0){
+ //送風モード
+ q=1;
+ data10=0xcf;
+ send_data(0x40,data10);
+ }else if(q==1){
+ //回収モード
+ q=0;
+ data10=0xdf;
+ send_data(0x40,data10);
+ }
+ }
+ }
}
-
//データ変化(メカナム)
-void change_data(){
-
- if(Ry!=0||Rx!=0){
+void change_data()
+{
+
+ if(Ry!=0||Rx!=0) {
square=0;
+ migi1=0;
+ }
+
+ if(Ry>30&&i==0) {
+ if(right1==1) {
+ data1=0xcf;
+ data2=0x00;
+ data3=0xcf;
+ data4=0x00;
+ } else if(left1==1) {
+ data1=0x00;
+ data2=0xcf;
+ data3=0x00;
+ data4=0xcf;
+ } else {
+ data1=0x00;
+ data2=0x00;
+ data3=0x00;
+ data4=0x00;
}
-
- if(Ry>30&&i==0){
+ } else if(Ry<-30&&i==0) {
if(right1==1){
- data1=0xcf;
- data2=0x00;
- data3=0xcf;
- data4=0x00;
+ data1=0xdf;
+ data2=0xff;
+ data3=0xdf;
+ data4=0xff;
}else if(left1==1){
- data1=0x00;
- data2=0xcf;
- data3=0x00;
- data4=0xcf;
- }else{
- data1=0x00;
- data2=0x00;
- data3=0x00;
- data4=0x00;
- }
- }else if(Ry<-30&&i==0){
- data1=0xff;
- data2=0xff;
- data3=0xff;
- data4=0xff;
- }else if(Rx>30&&i==0){
- if(right1==1){
data1=0xff;
data2=0xdf;
- data3=0xcf;
- data4=0x00;
- }else if(left1==1){
- data1=0xdf;
- data2=0xff;
- data3=0x00;
- data4=0xcf;
- }else{
- data1=0xff;
- data2=0xff;
- data3=0x00;
- data4=0x00;
- }
- }else if(Rx<-30&&i==0){
- if(right1==1){
- data1=0xcf;
- data2=0x00;
data3=0xff;
data4=0xdf;
- }else if(left1==1){
- data1=0x00;
- data2=0xcf;
- data3=0xdf;
+ }else{
+ data1=0xff;
+ data2=0xff;
+ data3=0xff;
data4=0xff;
- }else{
- data1=0x00;
- data2=0x00;
- data3=0xff;
- data4=0xff;
+ }
+ } else if(Rx>30&&i==0) {
+ if(right1==1) {
+ data1=0xff;
+ data2=0xdf;
+ data3=0xcf;
+ data4=0x00;
+ } else if(left1==1) {
+ data1=0xdf;
+ data2=0xff;
+ data3=0x00;
+ data4=0xcf;
+ } else {
+ data1=0xff;
+ data2=0xff;
+ data3=0x00;
+ data4=0x00;
}
- }else if(right1==1&&i==0){
+ } else if(Rx<-30&&i==0) {
+ if(right1==1) {
+ data1=0xcf;
+ data2=0x00;
+ data3=0xff;
+ data4=0xdf;
+ } else if(left1==1) {
+ data1=0x00;
+ data2=0xcf;
+ data3=0xdf;
+ data4=0xff;
+ } else {
+ data1=0x00;
+ data2=0x00;
+ data3=0xff;
+ data4=0xff;
+ }
+ } else if(right1==1&&i==0) {
data1=0xff;
data2=0x00;
data3=0xff;
data4=0x00;
- }else if(left1==1&&i==0){
+ } else if(left1==1&&i==0) {
data1=0x00;
data2=0xff;
data3=0x00;
data4=0xff;
- }else if(Ry>30&&i==1){
- if(right1==1){
- data1=0x4f;
- data2=0x3f;
- data3=0x4f;
- data4=0x3f;
- }else if(left1==1){
- data1=0x3f;
- data2=0x4f;
- data3=0x3f;
- data4=0x4f;
- }else{
- data1=0x3f;
- data2=0x3f;
- data3=0x3f;
- data4=0x3f;
+ } else if(Ry>30&&i==1) {
+ if(right1==1) {
+ data1=0x4f;
+ data2=0x3f;
+ data3=0x4f;
+ data4=0x3f;
+ } else if(left1==1) {
+ data1=0x3f;
+ data2=0x4f;
+ data3=0x3f;
+ data4=0x4f;
+ } else {
+ data1=0x3f;
+ data2=0x3f;
+ data3=0x3f;
+ data4=0x3f;
+ }
+ } else if(Ry<-30&&i==1) {
+ if(right1==1){
+ data1=0x5f;
+ data2=0xbf;
+ data3=0x5f;
+ data4=0xbf;
+ }else if(left1==1){
+ data1=0xbf;
+ data2=0x5f;
+ data3=0xbf;
+ data4=0x5f;
+ }else{
+ data1=0xbf;
+ data2=0xbf;
+ data3=0xbf;
+ data4=0xbf;
}
- }else if(Ry<-30&&i==1){
- data1=0xbf;
- data2=0xbf;
- data3=0xbf;
- data4=0xbf;
- }else if(Rx>30&&i==1){
- if(right1==1){
- data1=0xbf;
- data2=0x5f;
- data3=0x4f;
- data4=0x3f;
- }else if(left1==1){
- data1=0x5f;
- data2=0xbf;
- data3=0x3f;
- data4=0x4f;
- }else{
- data1=0xbf;
- data2=0xbf;
- data3=0x3f;
- data4=0x3f;
+ } else if(Rx>30&&i==1) {
+ if(right1==1) {
+ data1=0xbf;
+ data2=0x5f;
+ data3=0x4f;
+ data4=0x3f;
+ } else if(left1==1) {
+ data1=0x5f;
+ data2=0xbf;
+ data3=0x3f;
+ data4=0x4f;
+ } else {
+ data1=0xbf;
+ data2=0xbf;
+ data3=0x3f;
+ data4=0x3f;
}
- }else if(Rx<-30&&i==1){
- if(right1==1){
- data1=0x4f;
- data2=0x3f;
- data3=0xbf;
- data4=0x5f;
- }else if(left1==1){
- data1=0x3f;
- data2=0x4f;
- data3=0x5f;
- data4=0xbf;
- }else{
- data1=0x3f;
- data2=0x3f;
- data3=0xbf;
- data4=0xbf;
+ } else if(Rx<-30&&i==1) {
+ if(right1==1) {
+ data1=0x4f;
+ data2=0x3f;
+ data3=0xbf;
+ data4=0x5f;
+ } else if(left1==1) {
+ data1=0x3f;
+ data2=0x4f;
+ data3=0x5f;
+ data4=0xbf;
+ } else {
+ data1=0x3f;
+ data2=0x3f;
+ data3=0xbf;
+ data4=0xbf;
}
- }else if(right1==1&&i==1){
+ } else if(right1==1&&i==1) {
data1=0xbf;
data2=0x3f;
data3=0xbf;
data4=0x3f;
- }else if(left1==1&&i==1){
+ } else if(left1==1&&i==1) {
data1=0x3f;
data2=0xbf;
data3=0x3f;
data4=0xbf;
- }else{
+ } else {
data1=0x80;
data2=0x80;
data3=0x80;
data4=0x80;
- }
}
+}
-//pwm変化
-void change_pwm(){
-if(select!=old_select){
- old_select=select;
- if(select==1){
- if(i==1){
- pwm=0;
- i=0;
- }else if(i==0){
- pwm=1;
- i=1;
+//pwm変化
+void change_pwm()
+{
+ if(cross!=old_cross) {
+ old_cross=cross;
+ if(cross==1) {
+ if(i==1) {
+ pwm=0;
+ data10=0xbf;
+ send_data(0x40,data10);
+ i=0;
+ } else if(i==0) {
+ pwm=1;
+ data10=0x3f;
+ send_data(0x40,data10);
+ i=1;
}
}
}
}
//サーボモーター
-void change_servo(){
- if(right2!=old_right2){
- old_right2=right2;
- //ハンガー機構
- if(right2==1){
- if(o==1){
- data_servo=0x01;
- //send_data(0x18,data_servo);
- o=2;
- }else if(o==2){
- data_servo=0x02;
- //send_data(0x18,data_servo);
- o=3;
- }
- //data_servo=0x01;
- }
- }else if(circle!=old_circle){
- old_circle=circle;
- //バスタオル挟む機構
- if(circle==1){
- if(k==1){
- data_servo=0x03;
- //send_data(0x18,data_servo);
- k=0;
- }else if(k==0){
- data_servo=0x04;
- //send_data(0x18,data_servo);
- k=1;
- }
- }
- }/*else if(hidari1!=old_hidari1){
+void change_servo()
+{
+ if(right2!=old_right2) {
+ old_right2=right2;
+ //ハンガー機構&バスタオル機構initialize処理
+ if(right2==1) {
+ if(o==1) {
+
+ // timer.start();
+ // data_servo=0x03;
+ // send_data(0x18,data_servo);
+ data_servo=0x01;
+ //send_data(0x18,data_servo);
+ o=2;
+ } else if(o==2) {
+ data_servo=0x02;
+ //send_data(0x18,data_servo);
+ o=3;
+ }
+ //data_servo=0x01;
+ }
+ } else if(circle!=old_circle) {
+ old_circle=circle;
+ //バスタオル挟む機構
+ if(circle==1) {
+ if(k==1) {
+ data_servo=0x03;
+ //send_data(0x18,data_servo);
+ k=0;
+ } else if(k==0) {
+ data_servo=0x04;
+ //send_data(0x18,data_servo);
+ k=1;
+ }
+ }
+ }/*else if(hidari1!=old_hidari1){
old_hidari1=hidari1;
-
+
if(hidari1==1&&select==0){
if(n==1){
data_servo=0x05;
@@ -434,243 +519,443 @@
}
}
}*/
- }
-
+
+ /* if(timer.read()>2&&o==2){
+ data_servo=0x04;
+ send_data(0x18,data_servo);
+ timer.stop();
+ timer.reset();
+ }*/
+}
+
//ラック
-void change_rack(){
-
-
- //右
- if(triangle==1&&cross==0&&ue1==0&&shita==0&&(-32<Ly<32)){
- if(get_data_rs232!=0x20&&get_data_rs232!=0x22){
- data5=0x00;
- }else if(get_data_rs232==0x20||get_data_rs232==0x22){
- data5=0x10;
- }
- }else if(triangle==0&&cross==1&&ue1==0&&shita==0&&(-32<Ly<32)){
- if(get_data_rs232!=0x26&&get_data_rs232!=0x28){
- data5=0xff;
- }else if(get_data_rs232==0x26||get_data_rs232==0x28){
- data5=0x10;
- }
+/*
+void change_rack()
+{
+
+
+ //右
+ if(triangle==1&&cross==0&&ue1==0&&shita==0&&(-32<Ly<32)) {
+ if(!(get_data_rs232 & 0x01)) {
+ data5=0x00;
+ } else if(get_data_rs232 & 0x01) {
+ data5=0x10;
+ }
+ } else if(triangle==0&&cross==1&&ue1==0&&shita==0&&(-32<Ly<32)) {
+ if(!(get_data_rs232 & 0x04)) {
+ data5=0xff;
+ } else if(get_data_rs232 & 0x04) {
+ data5=0x10;
+ }
//左
- }else if(triangle==0&&cross==0&&ue1==1&&shita==0&&(-32<Ly<32)){
- if(get_data_rs232!=0x20&&get_data_rs232!=0x24){
- data6=0xff;
- }else if(get_data_rs232==0x20||get_data_rs232==0x24){
- data6=0x10;
- }
- }else if(triangle==0&&cross==0&&ue1==0&&shita==1&&(-32<Ly<32)){
- if(get_data_rs232!=0x26&&get_data_rs232!=0x30){
- data6=0x00;
- }else if(get_data_rs232==0x26||get_data_rs232==0x30){
- data6=0x10;
- }
- }else if(triangle==0&&cross==0&&ue1==0&&shita==0&&(-32<Ly<32)){
- data5=0x80;
- data6=0x80;
-
+ } else if(triangle==0&&cross==0&&ue1==1&&shita==0&&(-32<Ly<32)) {
+ if(!(get_data_rs232 & 0x02)) {
+ data6=0xff;
+ } else if(get_data_rs232 & 0x02) {
+ data6=0x10;
}
+ } else if(triangle==0&&cross==0&&ue1==0&&shita==1&&(-32<Ly<32)) {
+ if(!(get_data_rs232 & 0x08)) {
+ data6=0x00;
+ } else if(get_data_rs232 & 0x08) {
+ data6=0x10;
+ }
+ } else if(triangle==0&&cross==0&&ue1==0&&shita==0&&(-32<Ly<32)) {
+ data5=0x80;
+ data6=0x80;
+
+ }
}
+*/
//ラック左右
-void change_rack_2(){
- if(triangle==0&&cross==0&&ue1==0&&shita==0&&Ly>32){
- if(get_data_rs232==0x20){
+void change_rack_2()
+{
+ /*
+ if(triangle==0&&cross==0&&ue1==0&&shita==0&&Ly>32) {
+ if(get_data_rs232 & 0x01) {
data5=0x10;
+ } else {
+ data5=0x00;
+ }
+ if(get_data_rs232 & 0x02) {
data6=0x10;
- }else if(get_data_rs232==0x22){
- data5=0x10;
+ } else {
data6=0xff;
- }else if(get_data_rs232==0x24){
- data5=0x00;
+ }
+ } else if(triangle==0&&cross==0&&ue1==0&&shita==0&&Ly<-32) {
+ if(get_data_rs232 & 0x04) {
+ data5=0x10;
+ } else {
+ data5=0xff;
+ }
+ if(get_data_rs232 & 0x08) {
data6=0x10;
- }else{
+ } else {
+ data6=0x00;
+ }
+ } else if(triangle==0&&cross==0&&ue1==0&&shita==0&&(-32<Ly<32)) {
+ data5=0x80;
+ data6=0x80;
+ }
+ */
+
+ if(ue1!=old_ue1){
+ old_ue1=ue1;
+ if(ue1==1&&start==0){
data5=0x00;
data6=0xff;
}
- }else if(triangle==0&&cross==0&&ue1==0&&shita==0&&Ly<-32){
- if(get_data_rs232==0x26){
- data5=0x10;
- data6=0x10;
- }else if(get_data_rs232==0x28){
- data5=0x10;
- data6=0x00;
- }else if(get_data_rs232==0x30){
- data5=0xff;
- data6=0x10;
- }else{
+ }else if(shita!=old_shita){
+ old_shita=shita;
+ if(shita==1&&start==0){
data5=0xff;
data6=0x00;
}
- }else if(triangle==0&&cross==0&&ue1==0&&shita==0&&(-32<Ly<32)){
- data5=0x80;
- data6=0x80;
+ }
+
+ if((get_data_rs232 & 0x01)&&data5==0x00){
+ data5=0x10;
+ send_data(0x20,data5);
+ }else if((get_data_rs232 & 0x04)&&data5==0xff){
+ data5=0x10;
+ send_data(0x20,data5);
}
+
+ if((get_data_rs232 & 0x02)&&data6==0xff){
+ data6=0x10;
+ send_data(0x22,data6);
+ }else if((get_data_rs232 & 0x08)&&data6==0x00){
+ data6=0x10;
+ send_data(0x22,data6);
+ }
+
+
}
//回収機構
+/*
+void sequence_kaisyu()
+{
+ if(q==0){
+ if(square!=old_square) {
+ old_square=square;
+ if(square==1) {
-void sequence_kaisyu(){
- if(square!=old_square){
- old_square=square;
- if(square==1){
-
- data_servo=0x07;
- send_data(0x18,data_servo);
- wait(1.5);
- data7=0x00;
- while(get_data_rs232!=0x32){
- send_data(0x24,data7);
- get_data_rs232=slave.getc();
- }
- data7=0x10;
- send_data(0x24,data7);
- data_servo=0x08;
- send_data(0x18,data_servo);
- wait(2);
- data7=0xff;
- while(get_data_rs232!=0x34){
- send_data(0x24,data7);
- get_data_rs232=slave.getc();
- }
- data7=0x10;
- send_data(0x24,data7);
- data_servo=0x07;
- send_data(0x18,data_servo);
+ data_servo=0x07;
+ send_data(0x18,data_servo);
+ wait(1.5);
+ data7=0x00;
+ while(!(get_data_rs232 & 0x10)) {
+ send_data(0x24,data7);
+ get_data_rs232=slave.getc();
+ }
+ data7=0x10;
+ send_data(0x24,data7);
+ data_servo=0x08;
+ send_data(0x18,data_servo);
+ wait(1.5);
+ data7=0xff;
+ while(!(get_data_rs232 & 0x20)) {
+ send_data(0x24,data7);
+ get_data_rs232=slave.getc();
+ }
+ data7=0x10;
+ send_data(0x24,data7);
+
+ }
+ }
+ }
+}
+*/
+
+
+void kaisyu(){
+ if(q==0){
+ if(old_square!=square){
+ old_square=square;
+ if(square==1){
+ p=1;
+
+ }
+ }
+ switch(p){
+
+ case 1:
+ data_servo=0x07;
+ send_data(0x24,data_servo);
+ timer2.start();
+ if(timer2.read()>3.5){
+ timer2.stop();
+ timer2.reset();
+ p=2;
+ }
+ break;
+
+ case 2:
+ data7=0x00;
+ send_data(0x24,data7);
+ if(get_data_rs232 & 0x10){
+ data7=0x10;
+ send_data(0x24,data7);
+ p=3;
+ }
+ break;
+
+ case 3:
+ data_servo=0x08;
+ send_data(0x18,data_servo);
+ timer2.start();
+ if(timer2.read()>1.3){
+ p=4;
+ }
+
+ break;
+
+ case 4:
+ data7=0xff;
+ send_data(0x24,data7);
+ if(get_data_rs232 & 0x20){
+ data7=0x10;
+ send_data(0x24,data7);
+ p=5;
+ }
+ break;
+
+ default:
+ p=5;
+ break;
+
+ }
+ }
+ }
+
+
+/*
+void sequence_hakidashi()
+{
+ if(q==0){
+ if(migi1!=old_migi1) {
+ old_migi1=migi1;
+ if(migi1==1&&select==0) {
+ data_servo=0x07;
+ send_data(0x18,data_servo);
+ wait(1);
+ data7=0x00;
+ send_data(0x24,data7);
+ wait(0.5);
+ data7=0x10;
+ send_data(0x24,data7);
+ data11=0xff;
+ while(!(get_data_rs232 & 0x40)){
+ send_data(0x30,data11);
+ get_data_rs232=slave.getc();
+ }
+ data11=0x10;
+ send_data(0x38,data11);
+ data11=0x00;
+ while(!(get_data_rs232 & 0x80)){
+ send_data(0x30,data11);
+ get_data_rs232=slave.getc();
+ }
+ data11=0x10;
+ send_data(0x30,data11);
+ data7=0xff;
+ while(!(get_data_rs232 & 0x20)){
+ send_data(0x24,data7);
+ get_data_rs232=slave.getc();
+ }
+ data7=0x10;
+ send_data(0x24,data7);
+
+ }
+ }
+ }
+}
+*/
+
- }
- }
+void hakidashi(){
+ if(q==0){
+ if(old_migi1!=migi1){
+ old_migi1=migi1;
+ if(migi1==1){
+ r=1;
+ }
+ }
+
+ switch(r){
+ case 1:
+ data_servo=0x07;
+ send_data(0x18,data_servo);
+ timer2.start();
+ if(timer2.read()>1.5){
+ timer2.stop();
+ timer2.reset();
+ r=2;
+ }
+ break;
+
+ case 2:
+ data7=0x00;
+ send_data(0x24,data7);
+ timer2.start();
+ if(timer2.read()>0.3){
+ timer2.stop();
+ timer2.reset();
+ data7=0x10;
+ send_data(0x24,data7);
+ r=3;
+ }
+ break;
+
+ case 3:
+ data11=0xff;
+ send_data(0x30,data11);
+ if(get_data_rs232 & 0x40){
+ data11=0x10;
+ send_data(0x30,data11);
+ r=4;
+ }
+ break;
+
+ case 4:
+ data11=0x00;
+ send_data(0x30,data11);
+ if(get_data_rs232 & 0x80){
+ data11=0x10;
+ send_data(0x30,data11);
+ r=5;
+ }
+ break;
+
+ case 5:
+ data7=0xff;
+ send_data(0x24,data7);
+ if(get_data_rs232 & 0x20){
+ data7=0x10;
+ send_data(0x24,data7);
+ r=6;
+ }
+ break;
+
+ default:
+ r=6;
+ break;
+ }
+ }
+}
+
+void kaisyu_short(){
+ if(q==0){
+ if(triangle!=old_triangle){
+ old_triangle=triangle;
+ if(triangle==1){
+ s=1;
+ }
+ }
+
+ switch(s){
+ case 1:
+ data_servo=0x07;
+ send_data(0x18,data_servo);
+ timer3.start();
+ if(timer3.read()>3.5){
+ timer3.stop();
+ timer3.reset();
+ s=2;
+ }
+ break;
+
+ case 2:
+ data7=0x00;
+ send_data(0x24,data7);
+ timer3.start();
+ if(timer3.read()>0.5){
+ data7=0x10;
+ send_data(0x24,data7);
+ s=3;
+ }
+ break;
+
+ case 3:
+ data_servo=0x08;
+ send_data(0x18,data_servo);
+ timer3.start();
+ if(timer3.read()>1.3){
+ s=4;
+ }
+ break;
+
+ case 4:
+ data7=0xff;
+ send_data(0x24,data7);
+ if(get_data_rs232 & 0x20){
+ data7=0x10;
+ send_data(0x24,data7);
+ s=5;
+ }
+ break;
+
+ default:
+ s=5;
+ break;
+ }
+ }
+}
+
+//ファン
+void change_fan()
+{
+ if(q==1){
+ if(left2==1&&(old_triangle==triangle)) {
+ data8=0xff;
+ data9=0xff;
+ data10=0xff;
+ } else if(left2==0&&(old_triangle==triangle)) {
+ data8=0x00;
+ data9=0x00;
+ data10=0x00;
+ }else if(left2==0&&(old_triangle!=triangle)&&select==0){
+ old_triangle=triangle;
+ if(triangle==1){
+ data8=0xff;
+ data9=0xff;
+ data10=0xff;
+ data_servo=0x03;
+ send_data(0x26,data8);
+ send_data(0x28,data9);
+ send_data(0x40,data10);
+ wait(0.5);
+ send_data(0x18,data_servo);
+ wait(1);
+ data8=0x00;
+ data9=0x00;
+ data10=0x00;
+ send_data(0x26,data8);
+ send_data(0x28,data9);
+ send_data(0x40,data10);
+ wait(0.5);
+ data_servo=0x04;
+ send_data(0x18,data_servo);
+ }
+ }
+}
+
}
-/*void kaisyu(){
- if(square!=old_square){
- if(square==1){
- p=1;
- data_servo=0x07;
- send_data(0x18,data_servo);
- wait(1.5);
- }
- }
-
- //get_data_rs232=slave.getc();
-
- if(p==1&&get_data_rs232_2!=0x32){
- data7=0x00;
- }else if(p==1&&get_data_rs232_2==0x32){
- data7=0x10;
- p=0;
- data_servo=0x08;
- send_data(0x18,data_servo);
- wait(1.5);
- }else if(p==0&&get_data_rs232!=0x34){
- data7=0xff;
- }else if(p==0&&get_data_rs232==0x34){
- data7=0x10;
- p=2;
- }
-
- }
-*/
-
-void sequence_hakidashi(){
- if(migi1!=old_migi1){
- old_migi1=migi1;
- if(migi1==1){
- /* data_servo=0x07;
- send_data(0x18,data_servo);
- wait(1.5);
- data11=0xff;
- while(get_data_rs232!=0x36){
- send_data(0x30,data11);
- get_data_rs232=slave.getc();
- }
- data11=0x10;
- send_data(0x30,data11);*/
- data11=0xff;
- send_data(0x30,data11);
- }
- }else if(hidari1!=old_hidari1){
- if(hidari1==1){
- data11=0x00;
- send_data(0x30,data11);
- }
- } /* else if(hidari1==1){
- if(get_data_rs232!=0x38){
- data11=0x38;
- send_data(0x30,data11);
- }else if(get_data_rs232==0x38){
- data11=0x10;
- send_data(0x30,data11;
- }
- }*/ /*else{
- data11=0x80;
- send_data(0x30,data11);
- }*/
-
- if(get_data_rs232==0x38&&data11==0x00){
- data11=0x10;
- send_data(0x30,data11);
- } else if(get_data_rs232==0x36&&data11==0xff){
- data11=0x10;
- send_data(0x30,data11);
-
- }
- }
-
-
-/*
-void hakidashi(){
- if(migi1==1&&hidari1==0){
- data_servo=0x07;
- if(get_data_rs232==0x36){
- data11=0x10;
- }else if(get_data_rs232!=0x38){
- data11=0xff;
- }
- }else if(migi1==0&&hidari1==1){
- data_servo=0x08;
- if(get_data_rs232==0x38){
- data11=0x10;
- }else if(get_data_rs232!=0x38){
- data11=0x00;
- }
- }else{
- data11=0x80;
- }
-}
-
-*/
-
-//ファン
-void change_fan(){
- if(left2==1){
- data8=0xff;
- data9=0xff;
- data10=0xff;
- }else if(left2==0){
- data8=0x00;
- data9=0x00;
- data10=0x00;
- }
- }
-
-
-
-
//i2c
-void send_data(char address,char data){
+void send_data(char address,char data)
+{
tsushin=1;
tushin_check=0;
- i2c.frequency(100000);
i2c.start();
i2c.write(address);
tushin_check=i2c.write(data);
i2c.stop();
- wait(0.003);
- }
-
+}
+