IMの指示からカメラを起動する
Dependencies: mbed
main.cpp@1:fd48964c294a, 2022-02-12 (annotated)
- 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?
User | Revision | Line number | New 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 | } |