a

Dependents:   4thcomp 6th33222_copy

Fork of Locate by Tk A

Committer:
choutin
Date:
Fri Sep 16 08:48:12 2016 +0000
Revision:
9:69fe7b8350c6
Parent:
7:08dfba38d5d9
Child:
10:d88fe87720d2
a

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