ultimatemasashiのアイコン画像
ultimatemasashi 2021年02月23日作成 (2021年02月28日更新)
製作品 製作品 閲覧数 1545
ultimatemasashi 2021年02月23日作成 (2021年02月28日更新) 製作品 製作品 閲覧数 1545

M5paperで超音波レーダー

M5paperで超音波レーダー

M5paperで超音波レーダーを作ってみました。
360度サーボモーターで超音波センサーを回転させます。
液晶で距離とどの方角かを出力します。

キャプションを入力できます

動画はこちら↓
https://www.tiktok.com/@ultimatemasashi/video/6931192766097558786?referer_url=http%3A%2F%2Fsetsubi.no-mania.com%2F&referer_video_id=6931192766097558786&is_copy_url=0&is_from_webapp=v2&sender_device=pc&sender_web_id=6932259320226973186

M5paperはarduino IDEで開発できます。
↓コードはこちら

#include <M5EPD.h> int servoPin = 26; void servoSet(int Angle,int Time) { int pulseWidth; int TimeCount; TimeCount = Time/20; for(int i=0; i <= TimeCount; i++){ pulseWidth = map(Angle, 0, 180, 544, 2400); digitalWrite(servoPin, HIGH); delayMicroseconds(pulseWidth); digitalWrite(servoPin, LOW); delayMicroseconds(20000 - pulseWidth); } } int interval = 0; double distance = 0; int a = 0 ; int b = 0 ; int c = 0 ; int d = 0 ; int f = 0 ; double e = 0 ; unsigned long duration; M5EPD_Canvas canvas(&M5.EPD); void setup() { pinMode(servoPin, OUTPUT); pinMode( 25, OUTPUT ); pinMode( 32, INPUT ); M5.begin(); M5.EPD.SetRotation(90); M5.EPD.Clear(true); canvas.createCanvas(400, 500); canvas.setTextSize(4); //Serial.begin( 9600 ); servoSet(90,100); } void loop() { digitalWrite( 25, HIGH ); delayMicroseconds( 100 ); digitalWrite( 25, LOW ); interval = pulseIn( 32, HIGH ); distance = interval * 0.017; Serial.println( distance, 1 ); Serial.println("cm"); uint8_t percent = 80; //b = (3.14*d)/6 ; a = 200 + distance*cos(b); c = 330 + distance*sin(b); b = d ; f = f+ 1; if (f <=22 ){ e = 6 ; servoSet(135,12); } else{e = -6 ; servoSet(45,12); } d = d + e ; canvas.drawCircle(200, 330, 150, BLUE); canvas.drawCircle(200, 330, 100, BLUE); canvas.drawCircle(200, 330, 50, BLUE); canvas.drawString(String(distance) , 10, 10); canvas.drawString(String(d) , 350, 500); canvas.drawString("cm" , 300, 10); canvas.pushCanvas(0,300,UPDATE_MODE_A2); if (f == 24 ) { M5.EPD.Clear(WHITE); servoSet(90,100); canvas.deleteCanvas(); canvas.createCanvas(400, 500); // canvas.fillRect(100, 280, 200, 200, WHITE); } // if ( 50<= f <= 100 ){ e = -6 ;} canvas.drawLine(200, 330,a ,c,WHITE); if (f == 48 ) { M5.EPD.Clear(WHITE); canvas.deleteCanvas(); canvas.createCanvas(400, 500); f = 0; } delay(200); }

接続はPOAT Aに超音波センサー(HC-SR04)とPOAT Bにサーボモーター(AS3103)を接続しています。

サーボモーターとセンサーは3Dプリンタで合体させています。

キャプションを入力できます

接続は下図の通りです。ケーブルが絡まるので1回転ずつ反転します。

キャプションを入力できます

ultimatemasashiのアイコン画像
設備のまにあどっとこむ管理人:アルティメット雅史 ラズパイ 歴3〜4年 ラズパイ コンテスト2020年 優良賞受賞
ログインしてコメントを投稿する