酒と薔薇の日々(その2)

好きなことだけ求めて生きるアスペ気味のINTJ人

ArduinoとOLED1513とIRセンサーで物体の位置検知(ちょっとな・・)

2024年05月05日 21時35分28秒 | マイコン(ESP32・Arduino等)
スタックチャンみたいに、前にいる人物の方に視線を向けるプログラムをArduinoで作ってみようと。
使ったセンサーは余っている赤外線ユニット基盤
とりあえず基盤のピンで出力されるデジタル出力を使ってみた。
が、最大で10数cm程度までしかスキャンできない。
ちゅうことでこの計画は中止

「コインで自動販売機」に変身させるかな。
コインの高さを測って投入金額を計算させる。
規定金額になったら品物が出てくる。
お釣りは出さないよw


上記写真は縦位置を図る4個目のセンサーを付けている。(後で削除)

各基盤に5V電源を加えておいて、信号線を見る。
 何も検知しなければ通常はHIGHで、検知するとLOWになる。
デジタルピン3..5の3本を使って右、中央、左を監視



ダンボーくんで台座を組んでOLED1513へ状態表示してみた。
自分でOLEdプログラムを組みのは初めて。
気づき:clearLine()やclearDisplay()を使うと表示がチラつくので使えない。
 なので、空白を上書きするが吉。でなければバッファ転送かな。



左・中央センサー前に障害物を置いた。当然だけど反応してる。
何かこれだけ配線が整然としてると賢くなったような気がするw
とはいえ距離が出ないのでスタックチャンの視線切り替えには使えませんね。
OLEDのホルダを作ってやろう。つままれたままではかわいそうだ。
===========================
/*
赤外線センサー基盤を3個用意し、横一列に並べる
各センサーの状態をOLED 1513へ表示する
   2024/5/5
*/
#include "U8x8lib.h"
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);

#define RIGHT_PIN 3
#define MID_PIN 4
#define LEFT_PIN 5

void setup(void) {
pinMode(RIGHT_PIN, INPUT);
pinMode(MID_PIN, INPUT);
pinMode(LEFT_PIN, INPUT);
u8x8.begin();
// u8x8.setFont(u8x8_font_chroma48medium8_r); // 通常の小型文字
u8x8.setFont(u8x8_font_px437wyse700b_2x2_r); // 4倍角
}
#define right_ptr 2
#define mid_ptr 1
#define left_ptr 0
char sensor[ ] = "210";

void loop(void) {
if (digitalRead(RIGHT_PIN) == LOW) sensor[right_ptr] = '*'; else sensor[right_ptr] = '_';
if (digitalRead(MID_PIN) == LOW) sensor[mid_ptr] = '*'; else sensor[mid_ptr] = '_';
if (digitalRead(LEFT_PIN) == LOW) sensor[left_ptr] = '*'; else sensor[left_ptr] = '_';
u8x8.setCursor(0,2); u8x8.print(sensor);
}




きゅうりといちごを植えた

2024年05月05日 12時47分52秒 | 緑化計画

左いちご、昨年のが勝手に芽を出したトマト(右)
いちごは購入時期を失して、最後の4株だった。
割引価格で2株購入ラッキー


何はなくとも食べられる事が重要・・・