a

Dependents:   4thcomp 6th33222_copy

Fork of Locate by Tk A

Revision:
6:ba3ef4656f7a
Parent:
5:d9857c701310
Child:
7:08dfba38d5d9
--- a/locate.h	Wed Sep 07 07:36:42 2016 +0000
+++ b/locate.h	Sat Sep 10 13:29:58 2016 +0000
@@ -1,71 +1,82 @@
 #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            //角度のズレを補正
-
+#define ROUND_HOSEI     1.038            //角度のズレを補正
+ 
 // エンコーダの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();
-
+ 
 //setupの初期位置指定版
 void setup(int tx, int ty);
-
+ 
 //位置情報を更新する。r,lはエンコーダから
 void  update();
-
+ 
 //update()のprintfなし版
 void update_np();
-
+ 
 //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();
-
+ 
+//仮想
+void virtual_setup();
+ 
+void virtual_update();
+ 
+int virtual_coordinateX();
+ 
+int virtual_coordinateY();
+ 
+float virtual_coordinateTheta();
 /**********************************/
 #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
-
+ 
 /***************************************************************/
+            
\ No newline at end of file