harurobo_sensor

Dependencies:   uw_28015 mbed

Committer:
yuki0701
Date:
Wed Feb 06 05:12:33 2019 +0000
Revision:
1:e208df501049
Parent:
0:0deb9ab4a262
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yuki0701 0:0deb9ab4a262 1 #include "mbed.h"
yuki0701 0:0deb9ab4a262 2 #include "uw.h"
yuki0701 0:0deb9ab4a262 3
yuki0701 0:0deb9ab4a262 4 //CAN can1(p30,p29,1000000);
yuki0701 0:0deb9ab4a262 5 CAN can1(PA_11,PA_12,1000000);
yuki0701 0:0deb9ab4a262 6 DigitalOut led(LED1);
yuki0701 0:0deb9ab4a262 7 Ticker ticker;
yuki0701 0:0deb9ab4a262 8 Uw uw1(PF_1); //機体背面の超音波センサー(三宝アーム側)
yuki0701 0:0deb9ab4a262 9 Uw uw2(PF_0); //機体正面の超音波センサー(果物アーム側)
yuki0701 0:0deb9ab4a262 10 Uw uw3(PB_4); //機体左側の超音波センサー
yuki0701 0:0deb9ab4a262 11 Uw uw4(PA_0); //機体右側の超音波センサー
yuki0701 0:0deb9ab4a262 12
yuki0701 1:e208df501049 13 char can_data1[2]={0,0};
yuki0701 0:0deb9ab4a262 14 //char can_data2[2]={0,0};
yuki0701 1:e208df501049 15 //char can_data3[2]={0,0};
yuki0701 0:0deb9ab4a262 16 //char can_data4[2]={0,0};
yuki0701 0:0deb9ab4a262 17 int x;
yuki0701 0:0deb9ab4a262 18 int data1, data2, data3, data4;
yuki0701 0:0deb9ab4a262 19
yuki0701 0:0deb9ab4a262 20 void can_read(){
yuki0701 0:0deb9ab4a262 21
yuki0701 0:0deb9ab4a262 22 CANMessage msg;
yuki0701 0:0deb9ab4a262 23
yuki0701 0:0deb9ab4a262 24 if(can1.read(msg)){
yuki0701 0:0deb9ab4a262 25
yuki0701 0:0deb9ab4a262 26 if(msg.id == 1){
yuki0701 0:0deb9ab4a262 27 led = 1;
yuki0701 0:0deb9ab4a262 28 x = (short)((msg.data[0]<<8) | msg.data[1]);
yuki0701 0:0deb9ab4a262 29 printf("%d:%d,%d\n\r",msg.data[0],msg.data[1],x);
yuki0701 0:0deb9ab4a262 30 }
yuki0701 0:0deb9ab4a262 31 }
yuki0701 0:0deb9ab4a262 32 }
yuki0701 0:0deb9ab4a262 33
yuki0701 0:0deb9ab4a262 34 void can_send(){
yuki0701 0:0deb9ab4a262 35
yuki0701 0:0deb9ab4a262 36 //printf("%f\n\r",uw1.get_dist());
yuki0701 0:0deb9ab4a262 37
yuki0701 1:e208df501049 38 data1 = (short)(100 * uw1.get_dist()); //超音波センサーの値を1000倍して送る(受信側で0.001倍して元に戻す)
yuki0701 0:0deb9ab4a262 39 //data2 = (short)1000 * uw2.get_dist();
yuki0701 1:e208df501049 40 //data3 = 100 * uw3.get_dist();
yuki0701 1:e208df501049 41 //data4 = 100 * uw4.get_dist();
yuki0701 0:0deb9ab4a262 42
yuki0701 1:e208df501049 43 can_data1[0] = data1 >> 8;
yuki0701 1:e208df501049 44 can_data1[1] = data1 &255;
yuki0701 0:0deb9ab4a262 45
yuki0701 0:0deb9ab4a262 46 //can_data2[0] = data2 >> 8;
yuki0701 0:0deb9ab4a262 47 //can_data2[1] = data2 &255;
yuki0701 0:0deb9ab4a262 48
yuki0701 1:e208df501049 49 //can_data3[0] = data3 >> 8;
yuki0701 1:e208df501049 50 //can_data3[1] = data3 &255;
yuki0701 0:0deb9ab4a262 51
yuki0701 1:e208df501049 52 //can_data4[0] = data4 >> 8;
yuki0701 1:e208df501049 53 //can_data4[1] = data4 &255;
yuki0701 0:0deb9ab4a262 54
yuki0701 1:e208df501049 55 if(can1.write(CANMessage(1,can_data1,2))){
yuki0701 0:0deb9ab4a262 56 led = 1;
yuki0701 1:e208df501049 57 //printf("send-data1 = %f", uw1.get_dist());
yuki0701 1:e208df501049 58 printf("send-data1 = %f\n\r", 0.1 * data1);
yuki0701 1:e208df501049 59 }
yuki0701 0:0deb9ab4a262 60 // if(can1.write(CANMessage(2,can_data2,2))){
yuki0701 0:0deb9ab4a262 61 // led = 1;
yuki0701 0:0deb9ab4a262 62 //printf("send-data2\n\r");
yuki0701 0:0deb9ab4a262 63 // }
yuki0701 1:e208df501049 64 /*if(can1.write(CANMessage(3,can_data3,8))){
yuki0701 0:0deb9ab4a262 65 led = 1;
yuki0701 1:e208df501049 66 printf("send-data3 = %f\n\r", 0.1 * data3);
yuki0701 1:e208df501049 67 }*/
yuki0701 0:0deb9ab4a262 68 /*if(can1.write(CANMessage(4,can_data4,2))){
yuki0701 1:e208df501049 69 led = 1;
yuki0701 1:e208df501049 70 printf("send-data4 = %f\n\r", 0.1 * data4);
yuki0701 0:0deb9ab4a262 71 }*/
yuki0701 0:0deb9ab4a262 72 led = 0;
yuki0701 0:0deb9ab4a262 73 //printf("send-data1 = %f, send-data2 = %f\n\r", 0.01 * data1, 0.01 * data2);
yuki0701 0:0deb9ab4a262 74 }
yuki0701 0:0deb9ab4a262 75
yuki0701 0:0deb9ab4a262 76
yuki0701 0:0deb9ab4a262 77
yuki0701 0:0deb9ab4a262 78 int main() {
yuki0701 0:0deb9ab4a262 79
yuki0701 1:e208df501049 80 // ticker.attach(&can_send,0.01);
yuki0701 0:0deb9ab4a262 81 //ticker.attach(&can_read,0.1);
yuki0701 0:0deb9ab4a262 82
yuki0701 1:e208df501049 83 while(1){
yuki0701 1:e208df501049 84 can_send();
yuki0701 0:0deb9ab4a262 85 //printf("%f\n\r",uw3.get_dist());
yuki0701 1:e208df501049 86 }
yuki0701 0:0deb9ab4a262 87
yuki0701 0:0deb9ab4a262 88 }