マイクロマウス研修~お掃除マウス編~(岩本)

マイクロマウス研修 ~お掃除マウス編~ Prat5 モーターを回してみる。

マイクロマウス研修~お掃除マウス編~(岩本)

こんにちは。岩本です。今週もマウスやっていきます。
今回は、モーター回します。使用するモーターは、マウスでよく使用されるFAULHABER 1717T006SR-6Vを使用します。
参考サイトは、こちらのサイトを参考にしました。(ESP32でモーターを駆動する

まずは、エンコーダーの接続情報の確認です(IEH2-4096
下図のようになっていますので、モーターを回すだけであれば、①モータ-②モータ+に電気を流してやれば良いです。
エンコーダーの接続情報

 
参考サイトのプログラムはArduinoのプログラムだったので、ESP用にこの前使ったLチカのプログラムをほぼそのまま使いました。
(今回はESP-IDFの方を使おうと考えているためです。プロジェクトを作るときにArduinoを選択すればArduinoのプログラムも使うことは出来ます。)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
 
#define GPIO_OUTPUT_IO_0    26 //出力ピンの設定

void app_main(void)
{
     gpio_config_t io_conf;
    // 割り込みをしない
    io_conf.intr_type = GPIO_PIN_INTR_DISABLE;
    // 出力モード
    io_conf.mode = GPIO_MODE_OUTPUT;
    // 設定したいピンのビットマスク
    // 1ULLはunsigned long long(64bit)で1を表現する
    // 22ピンを設定するので、ビットマスクは下記のようになる
    // 上位32ビット:MSB|0000 0000|0000 0000|0000 0000|0000 0000|
    // 下位32ビット:    0000 0100|0000 0000|0000 0000|0000 0000|LSB
    io_conf.pin_bit_mask = (1ULL<<GPIO_OUTPUT_IO_0) ;
    // 内部プルダウンしない
    io_conf.pull_down_en = 0;
    // 内部プルアップしない
    io_conf.pull_up_en = 0;
    // 設定をセットする
    gpio_config(&io_conf);
 
 
    int cnt = 0;
    while(1) {
        // カウンタcntをインクリメント
        printf("cnt: %d\n", cnt++);
        // 1秒停止
        vTaskDelay(1000 / portTICK_RATE_MS);
        // gpioの出力をセットする
        // 0: Lo, 1: Hi
        // cntが奇数のとき、cnt % 2が1になるので、出力はHi
        // cntが偶数のとき、cnt % 2が0になるので、出力はLow
        gpio_set_level(GPIO_OUTPUT_IO_0, cnt % 2);
    }
}

 
サイトを参考に配線は下図のようにしました。
配線

 
こんな感じで、動きました。
動作確認

 
以上今回はここまで

タイトルとURLをコピーしました