[mbedbot] 人感センサーを組み込む

January 05, 2017

先日の予告通り、早速人感センサーを組み込みました。

今回は共立電子で購入したKP-IR412を使用しました。5Vの電源とGNDとmbedの入力ピンにつなぐだけ、特に追加の部品は不要でしたので、簡単に人感センサーを組み込むことができました。mbedのプログラムとしては、割り込みを使って入力ピンが変化したら、BLEの通知でデータをHubotに送る、という感じです。下記の写真の右下の丸いデバイスが人感センサーです。ちなみに、この写真には写っていませんが、リモコン信号を出した時に人感センサーが反応したら困るので、リモコンデータ送信用のLED3個を別の小さい基板に半田付けしてメインボードから離れた場所(ロボットの頭部)に設置しています。

mbedのソフトとしては下記のような感じでInterruptInというクラスを使って人感センサーから入力した信号の変化を検出して割り込みをかけています。

InterruptIn jsin(P0_16); //人感センサー

/* 人が動いた */
void human_moved()
{
    switchOn();
    wait(1);
    atp.speak("ugoita.");
    switchOff();
}

/* 人が止まった */
void human_stopped()
{
    switchOn();
    wait(1);
    atp.speak("tomatta.");
    switchOff();
}

void init_jinkan_sensor()
{
    jsin.mode(PullNone);
    jsin.rise(&human_moved);
    jsin.fall(&human_stopped);
}

 

今後は人感センサーで人の動きを検出したら、何かを喋らせるようなことをしたいと思います。できれば機械学習のアルゴリズムを使ってみたい・・・。