中継機能つけた受け取りオムニ

Dependencies:   mbed MultiSerial

Committer:
Hatter
Date:
Thu Sep 04 02:53:40 2014 +0000
Revision:
10:5b67d18f30a9
Parent:
9:f05f881226a3
Child:
11:8b1a63a1172a
bug fixed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Hatter 0:fddd018033fb 1 /*
Hatter 0:fddd018033fb 2 * 4WD_OMNI_simple by Tomoki Hokida
Hatter 0:fddd018033fb 3 * Simple Type
Hatter 0:fddd018033fb 4 *
Hatter 0:fddd018033fb 5 * motor pins piar
Hatter 0:fddd018033fb 6 * motor(p21,p22):motor(p23,p24)
Hatter 0:fddd018033fb 7 * motor(p25,p26):motor(p27,p28)
Hatter 0:fddd018033fb 8 * 通信中継用
Hatter 6:26e5a520472d 9 * data[0]:arm
Hatter 6:26e5a520472d 10 * data[1]:omni
Hatter 0:fddd018033fb 11 * reset 0
Hatter 0:fddd018033fb 12 */
Hatter 0:fddd018033fb 13
Hatter 0:fddd018033fb 14 #include "mbed.h"
Hatter 6:26e5a520472d 15 #include "MultiSerial.h"
Hatter 0:fddd018033fb 16
Hatter 9:f05f881226a3 17 #define DATA_NUM 8 //DATA_NUM[byte]通信 この値はmemcpy使ってるんでxbee_packet構造体のメモリ数といい感じに合わせるようにしてください
Hatter 6:26e5a520472d 18 #define XBEE_KEY 0xAA//keycode
Hatter 9:f05f881226a3 19 #define ARM_KEY 0xAA
Hatter 3:1f1498403eec 20
Hatter 9:f05f881226a3 21 BusOut check(LED1,LED2,LED3,LED4);
Hatter 9:f05f881226a3 22 //BusIn sw(p21,p22,p23,p24);
Hatter 0:fddd018033fb 23 BusOut motors(p21,p22,p23,p24,p25,p26,p27,p28);
Hatter 0:fddd018033fb 24
Hatter 9:f05f881226a3 25 Serial pc(USBTX,USBRX);
Hatter 0:fddd018033fb 26
Hatter 9:f05f881226a3 27 MultiSerial xbee(p13,p14,read);
Hatter 9:f05f881226a3 28
Hatter 10:5b67d18f30a9 29 MultiSerial armMbed(p9,p10,write);
Hatter 0:fddd018033fb 30
Hatter 6:26e5a520472d 31 typedef struct{
Hatter 6:26e5a520472d 32
Hatter 6:26e5a520472d 33 uint8_t arm[1];
Hatter 6:26e5a520472d 34 uint8_t leg;
Hatter 4:5da566692b79 35
Hatter 6:26e5a520472d 36 }xbee_packet;
Hatter 6:26e5a520472d 37
Hatter 6:26e5a520472d 38 xbee_packet packet;
Hatter 6:26e5a520472d 39
Hatter 10:5b67d18f30a9 40 uint8_t get_data[DATA_NUM]={0};
Hatter 0:fddd018033fb 41
Hatter 0:fddd018033fb 42 int main()
Hatter 0:fddd018033fb 43 {
Hatter 9:f05f881226a3 44 //sw.mode(PullUp);
Hatter 6:26e5a520472d 45
Hatter 10:5b67d18f30a9 46 xbee_packet *pt_packet=&packet;
Hatter 9:f05f881226a3 47
Hatter 9:f05f881226a3 48 xbee.read_data(get_data,XBEE_KEY);
Hatter 7:07863c4a74b8 49
Hatter 0:fddd018033fb 50 for(;;){
Hatter 9:f05f881226a3 51
Hatter 9:f05f881226a3 52 wait(0.1);
Hatter 8:ee465babfd98 53
Hatter 8:ee465babfd98 54 check = !check;
Hatter 8:ee465babfd98 55
Hatter 9:f05f881226a3 56 // get_data[0]=0xFF;
Hatter 9:f05f881226a3 57 // get_data[1]=0x01;
Hatter 9:f05f881226a3 58
Hatter 9:f05f881226a3 59 //memcpy(&packet, get_data, DATA_NUM); //ちょい危険
Hatter 9:f05f881226a3 60
Hatter 10:5b67d18f30a9 61 packet.arm[0] = get_data[1];
Hatter 10:5b67d18f30a9 62 packet.leg = get_data[0];
Hatter 6:26e5a520472d 63
Hatter 9:f05f881226a3 64 check = get_data[1];
Hatter 8:ee465babfd98 65
Hatter 6:26e5a520472d 66 if(packet.leg==0x0) motors = 0;
Hatter 8:ee465babfd98 67 if(packet.leg&0x1) motors = 0x05; //p21,p23
Hatter 8:ee465babfd98 68 if(packet.leg&0x2) motors = 0x0A; //p22,p24
Hatter 8:ee465babfd98 69 if(packet.leg&0x4) motors = 0x50; //p25,p27
Hatter 8:ee465babfd98 70 if(packet.leg&0x8) motors = 0xA0; //p26,p28
Hatter 9:f05f881226a3 71
Hatter 10:5b67d18f30a9 72 pc.printf(" arm = %d" ,packet.arm[0]);
Hatter 9:f05f881226a3 73 pc.printf(" leg = %d" ,packet.leg);
Hatter 9:f05f881226a3 74
Hatter 10:5b67d18f30a9 75 armMbed.write_data(pt_packet->arm,ARM_KEY);
Hatter 6:26e5a520472d 76 }
Hatter 0:fddd018033fb 77 }