a

Dependents:   4thcomp 6th33222_copy

Fork of Locate by Tk A

Committer:
choutin
Date:
Sat Sep 17 23:20:49 2016 +0000
Revision:
10:d88fe87720d2
Parent:
9:69fe7b8350c6
?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sakanakuuun 0:265d8ad19d2a 1 #ifndef Locate_H
sakanakuuun 0:265d8ad19d2a 2 #define Locate_H
choutin 6:ba3ef4656f7a 3
sakanakuuun 0:265d8ad19d2a 4 #include <math.h>
sakanakuuun 0:265d8ad19d2a 5 #include "Encoder.h"
choutin 6:ba3ef4656f7a 6
choutin 10:d88fe87720d2 7
choutin 10:d88fe87720d2 8 //Serial pc(SERIAL_TX, SERIAL_RX);
sakanakuuun 0:265d8ad19d2a 9 /****************定数定義***************************/
choutin 6:ba3ef4656f7a 10
sakanakuuun 0:265d8ad19d2a 11 #define OUTERRING_D 140 //外輪間距離(mm)
sakanakuuun 0:265d8ad19d2a 12 #define INNERRING_D 136 //内輪間距離(mm)
sakanakuuun 0:265d8ad19d2a 13 #define PI 3.14159 //π
choutin 9:69fe7b8350c6 14 #define RESOLUSION 200 //P/R(分解能)
choutin 10:d88fe87720d2 15 #define DIAMETER 32.05 //タイヤの直径(mm)
choutin 10:d88fe87720d2 16 #define ROUND_HOSEI 1.0367 //角度のズレを補正.038
choutin 9:69fe7b8350c6 17 #define HOSEI 1.00
choutin 9:69fe7b8350c6 18 // エンコーダの1ステップあたりの距離;(mm)
choutin 9:69fe7b8350c6 19 #define LOCATE_STEP (DIAMETER*PI / RESOLUSION * HOSEI)
sakanakuuun 0:265d8ad19d2a 20 //タイヤ間距離(mm)
sakanakuuun 0:265d8ad19d2a 21 #define TIRE_DISTANCE ((OUTERRING_D + INNERRING_D) / 2)
sakanakuuun 0:265d8ad19d2a 22 //機体が1回転するために必要なステップ数の”逆数”
sakanakuuun 0:265d8ad19d2a 23 #define ROUND ((PI * DIAMETER / (RESOLUSION * TIRE_DISTANCE)) * ROUND_HOSEI)
choutin 6:ba3ef4656f7a 24
sakanakuuun 0:265d8ad19d2a 25 /****************************************************************/
choutin 6:ba3ef4656f7a 26
choutin 6:ba3ef4656f7a 27
choutin 6:ba3ef4656f7a 28
choutin 6:ba3ef4656f7a 29
sakanakuuun 0:265d8ad19d2a 30 /********以下関数宣言*****************/
choutin 6:ba3ef4656f7a 31
sakanakuuun 0:265d8ad19d2a 32 //最初に一回だけ行う
choutin 7:08dfba38d5d9 33 void setup(int team);
choutin 6:ba3ef4656f7a 34
sakanakuuun 4:ecbb45e84c08 35 //setupの初期位置指定版
sakanakuuun 4:ecbb45e84c08 36 void setup(int tx, int ty);
choutin 6:ba3ef4656f7a 37
sakanakuuun 0:265d8ad19d2a 38 //位置情報を更新する。r,lはエンコーダから
sakanakuuun 4:ecbb45e84c08 39 void update();
choutin 6:ba3ef4656f7a 40
sakanakuuun 4:ecbb45e84c08 41 //update()のprintfなし版
sakanakuuun 4:ecbb45e84c08 42 void update_np();
choutin 6:ba3ef4656f7a 43
sakanakuuun 0:265d8ad19d2a 44 //xをmm換算して整数値として返す
sakanakuuun 3:0afbd3f61151 45 int coordinateX();
choutin 6:ba3ef4656f7a 46
sakanakuuun 0:265d8ad19d2a 47 //yをmm換算して整数値として返す
sakanakuuun 1:3513a2fbd81f 48 int coordinateY();
choutin 6:ba3ef4656f7a 49
sakanakuuun 0:265d8ad19d2a 50 //thetaを返す
sakanakuuun 0:265d8ad19d2a 51 float coordinateTheta();
choutin 6:ba3ef4656f7a 52
sakanakuuun 0:265d8ad19d2a 53 //encorderの値を回転数に変換。update内部で使われる
sakanakuuun 0:265d8ad19d2a 54 int convert_enc_count(int16_t pulse, int8_t direction);
choutin 6:ba3ef4656f7a 55
sakanakuuun 0:265d8ad19d2a 56 //x, y, thetaを0にする
sakanakuuun 0:265d8ad19d2a 57 void erase();
choutin 6:ba3ef4656f7a 58
choutin 6:ba3ef4656f7a 59 //仮想
choutin 6:ba3ef4656f7a 60 void virtual_setup();
choutin 6:ba3ef4656f7a 61
choutin 6:ba3ef4656f7a 62 void virtual_update();
choutin 6:ba3ef4656f7a 63
choutin 6:ba3ef4656f7a 64 int virtual_coordinateX();
choutin 6:ba3ef4656f7a 65
choutin 6:ba3ef4656f7a 66 int virtual_coordinateY();
choutin 6:ba3ef4656f7a 67
choutin 6:ba3ef4656f7a 68 float virtual_coordinateTheta();
sakanakuuun 0:265d8ad19d2a 69 /**********************************/
sakanakuuun 0:265d8ad19d2a 70 #endif
choutin 6:ba3ef4656f7a 71
choutin 6:ba3ef4656f7a 72
choutin 6:ba3ef4656f7a 73
choutin 6:ba3ef4656f7a 74
choutin 6:ba3ef4656f7a 75
sakanakuuun 0:265d8ad19d2a 76 /**************Encoderライブラリで使う定義**************************/
choutin 6:ba3ef4656f7a 77
sakanakuuun 0:265d8ad19d2a 78 #ifdef TARGET_STM32F3
sakanakuuun 0:265d8ad19d2a 79 #define __HAL_TIM_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNT)
sakanakuuun 0:265d8ad19d2a 80 #define __HAL_TIM_IS_TIM_COUNTING_DOWN(__HANDLE__) (((__HANDLE__)->Instance->CR1 &(TIM_CR1_DIR)) == (TIM_CR1_DIR))
sakanakuuun 0:265d8ad19d2a 81 #endif
choutin 6:ba3ef4656f7a 82
sakanakuuun 0:265d8ad19d2a 83 /***************************************************************/
choutin 6:ba3ef4656f7a 84