Mục lục:
Video: 聲納: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
改作:
我 在 原本 聲納 的 基礎 下 加裝 了 喇叭 以 達到 警告 的 作用
材料: arduino una, 超音波 感測器, 驅動 馬達, 喇叭
功能: 掃描 到 物品 時 加速 並 傳 述 到 電腦 , 物品 接近 10cm 時 喇叭 會 警告
Bước 1: Bước 1 電路圖
這 是 電路圖
Bước 2: Bước 2 寫 程式 (arduino)
create.arduino.cc/editor/dwdawdad/ef6b26a2-3f40-410d-9fdd-3413816090fe/preview
Bước 3: Bước 3 寫 程式 (xử lý)
nhập xử lý.serial. *;
nhập java.awt.event. KeyEvent; nhập java.io. IOException;
Nối tiếp myPort; PFont orcFont; int iAngle; int iDistance; void setup () {size (1000, 500); mịn màng(); myPort = new Serial (this, "COM7", 9600); myPort.clear (); myPort.bufferUntil ('\ n');
} void draw () {fill (98, 245, 31); noStroke (); điền (0, 4); trực tràng (0, 0, chiều rộng, 0,935 * chiều cao); điền (98, 245, 31); DrawRadar (); Vẽ đường thẳng(); DrawObject (); DrawText (); } void serialEvent (Serial myPort) {try {String data = myPort.readStringUntil ('\ n'); if (data == null) {return; } int commaIndex = data.indexOf (","); String angle = data.substring (0, commaIndex); Khoảng cách chuỗi = data.substring (commaIndex + 1, data.length () - 1); iAngle = StringToInt (góc); iDistance = StringToInt (khoảng cách); } catch (RuntimeException e) {}} void DrawRadar () {pushMatrix (); dịch (chiều rộng / 2, 0,926 * chiều cao); không có điền(); strokeWeight (2); đột quỵ (98, 245, 31); // vẽ các đường cung DrawRadarArcLine (0.9375); DrawRadarArcLine (0,7300); DrawRadarArcLine (0,5210); DrawRadarArcLine (0,3130); // vẽ các đường góc final int halfWidth = width / 2; line (-halfWidth, 0, halfWidth, 0); for (int angle = 30; angle <= 150; angle + = 30) {DrawRadarAngledLine (angle); } line (-halfWidth * cos (radian (30)), 0, halfWidth, 0); popMatrix (); } void DrawRadarArcLine (hệ số float cuối cùng) {arc (0, 0, hệ số * chiều rộng, hệ số * chiều rộng, PI, TWO_PI); } void DrawRadarAngledLine (final int angle) {line (0, 0, (-width / 2) * cos (radian (angle)), (-width / 2) * sin (radian (angle))); } void DrawObject () {pushMatrix (); dịch (chiều rộng / 2, 0,926 * chiều cao); đột quỵ (9); đột quỵ (255, 10, 10); int pixsDistance = int (iDistance * 0,020835 * chiều cao); if (iDistance 40? "Out of Range": "Trong Phạm vi"), 0,125 * chiều rộng, 0,9723 * chiều cao); text ("Góc:" + iAngle + "°", 0,52 * chiều rộng, 0,9723 * chiều cao); text ("Khoảng cách:", 0,74 * chiều rộng, 0,9723 * chiều cao); if (iDistance <40) {text ("" + iDistance + "cm", 0,775 * chiều rộng, 0,9723 * chiều cao); } textSize (25); điền (98, 245, 60); dịch (0,5006 * width + width / 2 * cos (radian (30)), 0,9093 * height - width / 2 * sin (radian (30))); xoay (-radians (-60)); text ("30 °", 0, 0); resetMatrix (); dịch (0,497 * width + width / 2 * cos (radian (60)), 0,9112 * height - width / 2 * sin (radian (60))); xoay (-radians (-30)); text ("60 °", 0, 0); resetMatrix (); dịch (0,493 * chiều rộng + chiều rộng / 2 * cos (radian (90)), 0,9167 * chiều cao - chiều rộng / 2 * sin (radian (90))); xoay (rađian (0)); text ("90 °", 0, 0); resetMatrix (); dịch (0,487 * chiều rộng + chiều rộng / 2 * cos (radian (120)), 0,92871 * chiều cao - chiều rộng / 2 * sin (radian (120))); xoay (radian (-30)); text ("120 °", 0, 0); resetMatrix (); dịch (0,4896 * width + width / 2 * cos (radian (150)), 0,9426 * height - width / 2 * sin (radian (150))); xoay (radian (-60)); text ("150 °", 0, 0); popMatrix (); }
int StringToInt (Chuỗi chuỗi) {int value = 0; for (int i = 0; i = '0' && string.charAt (i) <= '9') {value * = 10; giá trị + = (string.charAt (i) - '0'); }} trả về giá trị;}
Đề xuất:
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: Trong phần Hướng dẫn nhanh này, chúng tôi sẽ tạo một bộ điều khiển động cơ bước đơn giản bằng cách sử dụng động cơ bước. Dự án này không yêu cầu mạch phức tạp hoặc vi điều khiển. Vì vậy, không cần thêm ado, chúng ta hãy bắt đầu
Động cơ bước được điều khiển Động cơ bước không có vi điều khiển (V2): 9 bước (có hình ảnh)
Động cơ bước được điều khiển bằng động cơ bước Không cần vi điều khiển (V2): Trong một trong những Hướng dẫn trước đây của tôi, tôi đã chỉ cho bạn cách điều khiển động cơ bước bằng cách sử dụng động cơ bước mà không cần vi điều khiển. Đó là một dự án nhanh chóng và thú vị nhưng nó đi kèm với hai vấn đề sẽ được giải quyết trong Có thể hướng dẫn này. Vì vậy, hóm hỉnh
Đầu máy mô hình điều khiển động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Đầu máy mô hình điều khiển động cơ bước | Động cơ bước làm bộ mã hóa quay: Trong một trong những phần Hướng dẫn trước, chúng ta đã học cách sử dụng động cơ bước làm bộ mã hóa quay. Trong dự án này, bây giờ chúng ta sẽ sử dụng bộ mã hóa quay động cơ bước đó để điều khiển đầu máy mô hình bằng vi điều khiển Arduino. Vì vậy, không có fu
Âm thanh bay bổng với Arduino Uno Từng bước (8 bước): 8 bước
Acoustic Levitation With Arduino Uno Step-by-by-by (8 bước): bộ chuyển đổi âm thanh siêu âm L298N Dc cấp nguồn cho bộ chuyển đổi âm thanh nữ với chân cắm một chiều nam Arduino UNOBreadboard Cách hoạt động: Đầu tiên, bạn tải mã lên Arduino Uno (nó là một vi điều khiển được trang bị kỹ thuật số và các cổng tương tự để chuyển đổi mã (C ++)
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy