展示会用に簡単にしています
Dependencies: ADXL345 AigamozuControlPackets_展示会 HMC5843 ITG3200 MBed_Adafruit-GPS-Library XBee agzIDLIST mbed
Fork of Aigamozu_Robot_March by
Diff: main.cpp
- Revision:
- 45:a90c4301ee45
- Parent:
- 38:5cd6d4964f65
- Child:
- 46:f1e87c375e02
- Child:
- 49:a6ae71759d0f
--- a/main.cpp Mon Oct 24 08:15:16 2016 +0000 +++ b/main.cpp Thu Mar 30 10:48:04 2017 +0000 @@ -29,6 +29,7 @@ //Pin Setting // ///////////////////////////////////////// +//Serial Connect Setting: mbed <--> motor driver VNH5019 agz_motorShield(p21,p22,p23,p24,p25,p26); @@ -36,6 +37,7 @@ // //Connection Setting // +// ///////////////////////////////////////// //Serial Connect Setting: PC <--> mbed @@ -48,22 +50,17 @@ XBee xbee(p13,p14); ZBRxResponse zbRx = ZBRxResponse(); -//set up GPS module - //set up AigamozuControlPackets library AigamozuControlPackets agz(agz_motorShield); - -int change = 0; - ///////////////////////////////////////// // //Plus Speed // -//MNUAL_MODEの時にスピードを変える +//ロボットを操縦する ///////////////////////////////////////// -void Plus_Speed(uint8_t *packetdata){ +void plusSpeed(uint8_t *packetdata){ if(agz.nowMode == MANUAL_MODE){ agz.changeSpeed(packetdata); @@ -77,9 +74,9 @@ // //New Mode // +//ロボットのモードを変更する ///////////////////////////////////////// - -void New_Mode(uint8_t *packetdata){ +void newMode(uint8_t *packetdata){ //bool result; agz.changeMode(packetdata); @@ -99,32 +96,34 @@ pc.baud(PC_BAUD_RATE); //set xbee frequency to 57600bps xbee.begin(XBEE_BAUD_RATE); - //GPS setting gps_Serial = new Serial(p28,p27); Adafruit_GPS myGPS(gps_Serial); - - Timer auto_Timer; - const int auto_Time = 2000; //refresh time in ms + + //2secごとの更新用Timer + Timer autoTimer; + const int autoTime = 2000; //refresh time in ms + + //interrupt start + autoTimer.start(); + agz.moveTimer.start(); wait_ms(2000); - - //interrupt start - auto_Timer.start(); - agz.Move_Timer.start(); - printf("start\n"); - + printf("start\n"); + while (true) { //Check Xbee Buffer Available xbee.readPacket(); - + + //Xbee受信があった場合 if (xbee.getResponse().isAvailable()) { xbee.getResponse().getZBRxResponse(zbRx); + //frame dataの格納 uint8_t *buf = zbRx.getFrameData(); - + if (xbee.getResponse().getApiId() == ZB_RX_RESPONSE) { xbee.getResponse().getZBRxResponse(zbRx); uint8_t *buf = zbRx.getFrameData();//フレームデータを格納する @@ -133,18 +132,18 @@ //Check Command Type switch(Command_type){ //Get Request command - case MANUAL:{ - Plus_Speed(buf); + case MANUAL:{ //マニュアルモードパケット + plusSpeed(buf); //ロボットの操縦 break; } - case STATUS_REQUEST:{ + case STATUS_REQUEST:{ //ステータスリクエストパケット break; } - case CHANGE_MODE:{ - New_Mode(buf); + case CHANGE_MODE:{ //モード変更パケット + newMode(buf); //モードの変更 break; } - case RECEIVE_STATUS:{ + case RECEIVE_STATUS:{ //レシーブステータスパケット break; } default:{ @@ -154,9 +153,10 @@ }//endifZB_RX_RESPONSE }//endifisAvailable - if(agz.nowMode == AUTO_GPS_MODE && auto_Timer.read_ms() >= auto_Time){ - auto_Timer.reset(); - agz.gpsAuto(); + //ロボットがオートモードのとき、シーケンス動作する + if(agz.nowMode == AUTO_GPS_MODE && autoTimer.read_ms() >= autoTime){ + autoTimer.reset(); + agz.autoMove(); } }