fs

Dependents:   ARAI45th 3servotest 1stcomp 3rdcompfixstart ... more

locate.h

Committer:
sakanakuuun
Date:
2016-09-06
Revision:
3:0afbd3f61151
Parent:
2:d1d1f4d9b302
Child:
4:ecbb45e84c08

File content as of revision 3:0afbd3f61151:

#ifndef Locate_H
#define Locate_H

#include <math.h>
#include "Encoder.h"

/****************定数定義***************************/

#define OUTERRING_D     140             //外輪間距離(mm)
#define INNERRING_D     136             //内輪間距離(mm)
#define PI              3.14159         //π
#define RESOLUSION      400             //P/R(分解能)
#define DIAMETER        31.8            //タイヤの直径(mm)
#define ROUND_HOSEI     1.04            //角度のズレを補正

// エンコーダの1ステップあたりの距離(mm)
#define LOCATE_STEP     (DIAMETER*PI / RESOLUSION)                 
//タイヤ間距離(mm) 
#define TIRE_DISTANCE   ((OUTERRING_D + INNERRING_D) / 2)          
//機体が1回転するために必要なステップ数の”逆数”
#define ROUND           ((PI * DIAMETER / (RESOLUSION * TIRE_DISTANCE)) * ROUND_HOSEI)   

/****************************************************************/




/********以下関数宣言*****************/

//最初に一回だけ行う
void  setup();

//位置情報を更新する。r,lはエンコーダから
void  update ();     

//xをmm換算して整数値として返す
int coordinateX(); 

//yをmm換算して整数値として返す
int coordinateY();

//thetaを返す
float coordinateTheta();  

//encorderの値を回転数に変換。update内部で使われる
int convert_enc_count(int16_t pulse, int8_t direction);

//x, y, thetaを0にする
void erase();

/**********************************/
#endif





/**************Encoderライブラリで使う定義**************************/

#ifdef TARGET_STM32F3
#define __HAL_TIM_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNT)
#define __HAL_TIM_IS_TIM_COUNTING_DOWN(__HANDLE__)            (((__HANDLE__)->Instance->CR1 &(TIM_CR1_DIR)) == (TIM_CR1_DIR))
#endif

/***************************************************************/