a

Dependencies:   mbed

main.h

Committer:
Tom0108
Date:
2019-08-27
Revision:
8:b79d21c8178b
Parent:
6:040d001acb12
Child:
10:7c73e1577742

File content as of revision 8:b79d21c8178b:

/**
  ******************************************************************************
  * @file    main.h
  * @author  You
  * @version V?.?.?
  * @date    Today
  * @brief   メインのヘッダファイル
  ******************************************************************************
  */

/* ヘッダ再呼び出し防止のための定義 ------------------------------------------*/

#ifndef _MAIN_H_
#define _MAIN_H_

/* ファイル追加 --------------------------------------------------------------*/
#include "YKNCT.h"
#include "mbed.h"
#include "gyro.h"
#include "YKNCT_I2C.h"
#include <math.h>

/* 定数定義 ------------------------------------------------------------------*/
#define CIRCLE sbdbt.CIRCLE
#define SQUARE sbdbt.SQUARE
#define CROSS  sbdbt.CROSS
#define TRIANGLE  sbdbt.TRIANGLE
#define LEFTkey  sbdbt.LEFTkey
#define RIGHTkey  sbdbt.RIGHTkey
#define UPkey  sbdbt.UPkey
#define DOWNkey  sbdbt.DOWNkey

/* マクロ定義 ----------------------------------------------------------------*/
//#define PALETTE(color)\
//for(int s=0; s<3; s++) LED[s]=color&1<<s
#define PALETTE(color)\
for(int s=0; s<3; s++)\
i2c.Out_Set(Out_Data, s+5, color&1<<s);\
i2c.Out(Out_Data,8)

/* 型定義 --------------------------------------------------------------------*/
typedef enum
{
  test_motor,
  test_motor2,
  test_motor3,
  test_motor4,
  test_motor5,
  test_motor6,
  test_motor7,
  test_motor8,
  Motor_MAX
} _Motor_;


typedef enum{
    limit,
    limit1,
    limit2,
    limit3,
    limit4,
    limit5,
    limit6,
    limit7,
    IN_MAX
}_limit_;
typedef enum{
    out1,
    out2,
    out3,
    out4,
    ExTowel,
    OUT_MAX
}_OUT_;

typedef enum {
    BLACK,
    GREEN,
    RED,
    YELLOW,
    BLUE,
    CYAN,
    MAGENTA,
    WHITE,

    COLOR_MAX

} _COLOR_;

MD_I2C_Data_TypeDef MD_Data[Motor_MAX] = {
    { 8, 0, 0, 0, {0}},     //足回り
    { 9, 1, 0, 0, {0}},
    {10, 0, 0, 0, {0}},
    {11, 1, 0, 0, {0}},
    {12, 0, 0, 0, {0}},     // 洗濯物回収
    {13, 1, 0, 0, {0}},     // 上下機構
    {14, 0, 0, 0, {0}},     // 洗濯物排出
    {15, 1, 0, 0, {0}}      // 左右移動
};

IN_I2C_Data_TypeDef In_Data[] = {
    {1,0,0},        // 洗濯物排出(初期位置)
    {1,1,0},        // 洗濯物排出(停止)
    {1,2,0},        // 腕(最大  タオル)
    {1,3,0},         // 腕(初期位置)
    {3,0,0},        // 上下機構(上)
    {3,1,0},        //        (下)
    {3,2,0},         // 腕(シーツ兼シャツ)
};

OUT_I2C_Data_TypeDef Out_Data[] = {
    {0,0,0},        // 腕の上下
    {0,1,0},        // 爪
    {0,2,0},        // タオルの先
    {0,3,0},        // タオル展開
    {1,0,0},        // タオルの中央
    {1,1,0},        // 赤
    {1,2,0},        // 青
    {1,3,0},        // 緑
};
/* 変数宣言 ------------------------------------------------------------------*/

/* 関数宣言 ------------------------------------------------------------------*/
//メカナム基本動作
void mecanum_Move(int lx, int ly, int rx);

//角度補正
//n_angle: 現在の角度
//t_angle: 目標の角度
void AngleCorrection(double n_angle, double t_angle);

/*クラス宣言-------------------------------------------------------------------*/
Y_I2C i2c(PB_9, PB_8);           // I2C
SBDBT sbdbt(PA_0, PA_1, 9600);   // SDBDT
MyMPU6050 mpu(PC_9, PA_8);       // ジャイロセンサ
DigitalOut LED[]= {PA_10,PB_4,PB_5};

//半自動の時に使う
Timer tim;

//角度補正の時に使う
Timer drift_tim;

#endif /* _MAIN_H_ */

/******************************** END OF FILE *********************************/