2019NHK_A_sensor board

Dependencies:   SerialMultiByte QEI TFmini IRsensor

Committer:
ec30109b
Date:
Thu Sep 05 07:31:12 2019 +0000
Revision:
2:4466f57c9e43
Parent:
1:6ae7ff29d054
rename

Who changed what in which revision?

UserRevisionLine numberNew contents of line
highfieldsnj 0:d789af71fbc6 1 #include "mbed.h"
highfieldsnj 0:d789af71fbc6 2 #include "IRsensor.h"
highfieldsnj 0:d789af71fbc6 3 #include "TFmini.h"
highfieldsnj 0:d789af71fbc6 4 #include "QEI.h"
highfieldsnj 0:d789af71fbc6 5 #include "SerialMultiByte.h"
highfieldsnj 0:d789af71fbc6 6 #include "pinconfig.h"
highfieldsnj 0:d789af71fbc6 7
highfieldsnj 0:d789af71fbc6 8 union UnionBytes{
highfieldsnj 0:d789af71fbc6 9 uint8_t bytes[28];
highfieldsnj 0:d789af71fbc6 10 float IRdistance[7]; //0~1
highfieldsnj 1:6ae7ff29d054 11 int32_t TFdistance[7]; //2~3
highfieldsnj 1:6ae7ff29d054 12 int32_t pulses[7]; //4~6
highfieldsnj 0:d789af71fbc6 13 };
highfieldsnj 0:d789af71fbc6 14
highfieldsnj 0:d789af71fbc6 15 IRsensor ir[] = {
highfieldsnj 0:d789af71fbc6 16 IRsensor(IR_0),
highfieldsnj 0:d789af71fbc6 17 IRsensor(IR_1)
highfieldsnj 0:d789af71fbc6 18 };
highfieldsnj 0:d789af71fbc6 19
highfieldsnj 0:d789af71fbc6 20 TFmini tf[] = {
highfieldsnj 0:d789af71fbc6 21 TFmini(TF0_TX, TF0_RX),
highfieldsnj 1:6ae7ff29d054 22 TFmini(TF1_TX, TF1_RX)
highfieldsnj 0:d789af71fbc6 23 };
highfieldsnj 0:d789af71fbc6 24
highfieldsnj 0:d789af71fbc6 25 QEI loli[] = {
highfieldsnj 0:d789af71fbc6 26 QEI(encoder_1A, encoder_1B, NC, 100, QEI::X4_ENCODING),
highfieldsnj 1:6ae7ff29d054 27 QEI(encoder_4A, encoder_4B, NC, 100, QEI::X4_ENCODING),
highfieldsnj 1:6ae7ff29d054 28 QEI(encoder_3A, encoder_3B, NC, 100, QEI::X4_ENCODING)
highfieldsnj 0:d789af71fbc6 29 };
highfieldsnj 0:d789af71fbc6 30
highfieldsnj 0:d789af71fbc6 31 SerialMultiByte serial(mainTX, mainRX);
highfieldsnj 0:d789af71fbc6 32
highfieldsnj 1:6ae7ff29d054 33 Serial pc(USBTX, USBRX, 115200);
highfieldsnj 1:6ae7ff29d054 34
highfieldsnj 0:d789af71fbc6 35 int main()
highfieldsnj 0:d789af71fbc6 36 {
highfieldsnj 1:6ae7ff29d054 37 //pc.printf("hello\r\n");
highfieldsnj 0:d789af71fbc6 38 UnionBytes bytedata;
highfieldsnj 1:6ae7ff29d054 39 uint8_t sendbytes[28];
highfieldsnj 0:d789af71fbc6 40 for(int i=0; i<28; i++){
highfieldsnj 0:d789af71fbc6 41 bytedata.bytes[i] = 0;
highfieldsnj 0:d789af71fbc6 42 }
highfieldsnj 0:d789af71fbc6 43 for(int i=0; i<2; i++){
highfieldsnj 0:d789af71fbc6 44 ir[i].startAveraging(10);
highfieldsnj 0:d789af71fbc6 45 }
highfieldsnj 1:6ae7ff29d054 46 while (1) {
highfieldsnj 0:d789af71fbc6 47 for(int i=0; i<2; i++){
highfieldsnj 0:d789af71fbc6 48 bytedata.IRdistance[i] = ir[i].get_Averagingdistance();
highfieldsnj 1:6ae7ff29d054 49 pc.printf("%f ", bytedata.IRdistance[i]);
highfieldsnj 0:d789af71fbc6 50 }
highfieldsnj 0:d789af71fbc6 51 for(int i=0; i<2; i++){
highfieldsnj 1:6ae7ff29d054 52 bytedata.TFdistance[i+2] = (int32_t)tf[i].getDistance();
highfieldsnj 1:6ae7ff29d054 53 pc.printf("%d ", bytedata.TFdistance[i+2]);
highfieldsnj 0:d789af71fbc6 54 }
highfieldsnj 0:d789af71fbc6 55 for(int i=0; i<3; i++){
highfieldsnj 1:6ae7ff29d054 56 bytedata.pulses[i+4] = (int32_t)loli[i].getPulses();
highfieldsnj 1:6ae7ff29d054 57 pc.printf("%d ", bytedata.pulses[i+4]);
highfieldsnj 0:d789af71fbc6 58 }
highfieldsnj 1:6ae7ff29d054 59 for(int i=0; i<28; i++){
highfieldsnj 1:6ae7ff29d054 60 sendbytes[i] = bytedata.bytes[i];
highfieldsnj 1:6ae7ff29d054 61 }
highfieldsnj 1:6ae7ff29d054 62 serial.sendData(sendbytes, 28);
highfieldsnj 1:6ae7ff29d054 63 pc.printf("a\r\n");
highfieldsnj 0:d789af71fbc6 64 }
highfieldsnj 0:d789af71fbc6 65 }