![](/media/cache/group/mebd_thumbnail.jpg.50x50_q85.jpg)
f303k8(メイン)用のプログラム。 ver1
Dependencies: mbed BufferedSerial
Diff: main.cpp
- Revision:
- 0:9669502e17f0
- Child:
- 1:b12e35a43ee1
diff -r 000000000000 -r 9669502e17f0 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Aug 15 14:07:43 2021 +0000 @@ -0,0 +1,91 @@ +#include "mbed.h" + +//コマンド取得とモード変換は関数にいれたほうがわかりやすい +void nichrome_ON(); +void buzzerON(); +void getCommand(); + +Serial pc(USBTX, USBRX,38400);//ボーレートを落とすと,USB側からのデータが正確に出力されない.//pcと直接通信してないのに定義する必要ある? +Serial im920(PA_9,PA_10,19200);//TX(IM920_RX), RX(IM920_TX) +DigitalOut mcu_1(PA_7); +DigitalOut mcu_2(PA_6); +DigitalOut cameraPow(PF_0); +DigitalOut cameraRec(PF_1); +DigitalOut nichrome(PA_8); +DigitalOut buzzer(PA_11); +DigitalIn flightPin(PA_12); +Timeout t; + +int main() +{ + //ここに電源投入のプロトコル + char temp; + char str[100]; + int i=0; + + + Timeout t; + + while(1) { + if(im920.readable()) { //IM920からのデータがある場合 + temp = im920.getc();//一文字読み込む + if(temp != '\r') { //読み込み文字が改行で無い場合 + str[i] = temp; + i++; + } else if(temp == '\r') { //読み込み文字が改行の場合//\nではなく\rを使うのに理由はある? + if(str[i-2] == 's') { + if(str[i-1] == 't') { //今回はstartの"st"で判定する + mcu_1=1; + wait(0.1); //電流流すの何秒間にしましょう? + mcu_1=0; + break; + } + } + } + } + } + cameraPow=1; + cameraRec=1;//カメラスタートという指示しかないけど、電源と録画開始は同じ時間でいいのか? + + while(flightPin!=1) { + if(im920.readable()) { //IM920からのデータがある場合 + temp = im920.getc();//一文字読み込む + if(temp != '\r') { //読み込み文字が改行で無い場合 + str[i] = temp; + i++; + } else if(temp == '\r') { //読み込み文字が改行の場合//\nではなく\rを使うのに理由はある? + if(str[i-2] == 'r') { + if(str[i-1] == 'e') { //今回はresetの"re"で判定する + mcu_1=1; + mcu_2=1; + wait(0.1); //電流流すの何秒間にしましょう? + mcu_1=0; + mcu_2=0; + } + } + } + } + } + t.attach(nichrome_ON,3);//ニクロムを作動させるまでの時間 + //ここからGPSの情報取得して送信 +} + +void nichrome_ON(){ + printf("テグスカット!\n\r"); + nichrome=1; + wait(2.0);//テグスを切るまでにかかる時間 + nichrome=0; + t.detach(); + t.attach(buzzerON,6);//ブザー作動までの時間 +} + +void buzzerON(){ + printf("ブザー作動\n\r"); + buzzer=1; + //ここからモード変換だけど、わかりにくかったら他の関数に入れてもいいかも + mcu_1=1; + wait(0.1);//電流何秒流す? + mcu_1=0; +} + +void getCommand(){} \ No newline at end of file