IMの指示からカメラを起動する

Dependencies:   mbed

Committer:
MatsumotoKouki
Date:
Sat Feb 12 15:11:01 2022 +0000
Revision:
1:fd48964c294a
Parent:
0:8cc9c11c6785
start camera from IM command

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Takagisyuiti 0:8cc9c11c6785 1 #include "mbed.h"
Takagisyuiti 0:8cc9c11c6785 2 #include "Serial.h"
Takagisyuiti 0:8cc9c11c6785 3 DigitalOut cam_sw1(D10); //カメラの電源スイッチに接続(Highで電源ON)
Takagisyuiti 0:8cc9c11c6785 4 DigitalOut cam_sw2(D9); //カメラの撮影スイッチ(FET)に接続(HighでD-S導通)
MatsumotoKouki 1:fd48964c294a 5 DigitalOut IM_busy(PA_0);
Takagisyuiti 0:8cc9c11c6785 6 Serial device(PA_2,PA_3);
MatsumotoKouki 1:fd48964c294a 7 Serial im920(PA_9,PA_10);
MatsumotoKouki 1:fd48964c294a 8 Serial pc(USBTX, USBRX);
Takagisyuiti 0:8cc9c11c6785 9 DigitalOut led(LED1);
Takagisyuiti 0:8cc9c11c6785 10
MatsumotoKouki 1:fd48964c294a 11
MatsumotoKouki 1:fd48964c294a 12 char str[100];
Takagisyuiti 0:8cc9c11c6785 13 int i=0;
Takagisyuiti 0:8cc9c11c6785 14 int k=0;
MatsumotoKouki 1:fd48964c294a 15 char buf[100];
MatsumotoKouki 1:fd48964c294a 16
Takagisyuiti 0:8cc9c11c6785 17 void cmd(){
MatsumotoKouki 1:fd48964c294a 18
Takagisyuiti 0:8cc9c11c6785 19 while(1) {
Takagisyuiti 0:8cc9c11c6785 20 if(im920.readable()) { //IM920からのデータがある場合
Takagisyuiti 0:8cc9c11c6785 21 char temp = im920.getc();//一文字読み込む
MatsumotoKouki 1:fd48964c294a 22 pc.printf("%c",temp);
MatsumotoKouki 1:fd48964c294a 23 if(temp != '\n') { //読み込み文字が改行で無い場合(順番では\r\n)
MatsumotoKouki 1:fd48964c294a 24 str[i++] = temp;
MatsumotoKouki 1:fd48964c294a 25 } else if(temp == '\n') { //読み込み文字が改行の場合
MatsumotoKouki 1:fd48964c294a 26 //printf("get Command\r\n");
MatsumotoKouki 1:fd48964c294a 27 }if(str[i-2]=='1'&&str[i-1]=='1'){ //スリープに入るor抜け出す際にはコマンド"11"
MatsumotoKouki 1:fd48964c294a 28 //printf("get 11 !!\r\n");
MatsumotoKouki 1:fd48964c294a 29 cam_sw1 = 1; //カメラの電源スイッチON
MatsumotoKouki 1:fd48964c294a 30 wait(3);
MatsumotoKouki 1:fd48964c294a 31 cam_sw1 = 0;
MatsumotoKouki 1:fd48964c294a 32 wait(10); //カメラの電源ON
MatsumotoKouki 1:fd48964c294a 33 }else if(str[i-2]=='2'&&str[i-1]=='2'){ //撮影開始の際にはコマンド"22"
MatsumotoKouki 1:fd48964c294a 34 cam_sw2 = 1; //撮影スイッチON(撮影開始指示)
MatsumotoKouki 1:fd48964c294a 35 wait(0.2); //撮影開始
MatsumotoKouki 1:fd48964c294a 36 cam_sw2=0;
MatsumotoKouki 1:fd48964c294a 37 printf("get 22\r\n");
MatsumotoKouki 1:fd48964c294a 38 }else if(str[i-2]=='3'&&str[i-1]=='3'){ //ス撮影終了の際にはコマンド"33"
MatsumotoKouki 1:fd48964c294a 39 printf("get 33\r\n");
MatsumotoKouki 1:fd48964c294a 40 cam_sw2=1; //撮影スイッチON(撮影終了指示)
MatsumotoKouki 1:fd48964c294a 41 wait(0.2); //撮影終了
MatsumotoKouki 1:fd48964c294a 42 cam_sw2=0;
MatsumotoKouki 1:fd48964c294a 43 }
MatsumotoKouki 1:fd48964c294a 44
MatsumotoKouki 1:fd48964c294a 45 /* im920.scanf("%s",buf);
MatsumotoKouki 1:fd48964c294a 46 pc.printf("%s",buf);
MatsumotoKouki 1:fd48964c294a 47
MatsumotoKouki 1:fd48964c294a 48
MatsumotoKouki 1:fd48964c294a 49
MatsumotoKouki 1:fd48964c294a 50 else if(str[i-1]=='A'||'a'||'B'||'b'||'C'||'c'){
MatsumotoKouki 1:fd48964c294a 51 device.putc(str[i-1]);
Takagisyuiti 0:8cc9c11c6785 52 }else{
MatsumotoKouki 1:fd48964c294a 53 im920.printf("command error");
MatsumotoKouki 1:fd48964c294a 54 printf("command error");
MatsumotoKouki 1:fd48964c294a 55 i=0;
MatsumotoKouki 1:fd48964c294a 56 } */
MatsumotoKouki 1:fd48964c294a 57 }
Takagisyuiti 0:8cc9c11c6785 58 }
MatsumotoKouki 1:fd48964c294a 59 }
MatsumotoKouki 1:fd48964c294a 60
Takagisyuiti 0:8cc9c11c6785 61
Takagisyuiti 0:8cc9c11c6785 62 int main(){
MatsumotoKouki 1:fd48964c294a 63 //device.baud(9600);
MatsumotoKouki 1:fd48964c294a 64 im920.baud(19200);
MatsumotoKouki 1:fd48964c294a 65 pc.baud(38400);
MatsumotoKouki 1:fd48964c294a 66
MatsumotoKouki 1:fd48964c294a 67 //device.attach(cmd,Serial::RxIrq);
MatsumotoKouki 1:fd48964c294a 68 IM_busy=0;
MatsumotoKouki 1:fd48964c294a 69 cmd();
Takagisyuiti 0:8cc9c11c6785 70 }