Mục lục:
- Quân nhu
- Bước 1: Cách thức hoạt động….
- Bước 2: Tải lên mã
- Bước 3: Thư viện Yêu cầu:
- Bước 4: Kết nối
- Bước 5: Tát tất cả cùng nhau
- Bước 6: Cải tiến thêm:
Video: Robot cho biết nhà cung cấp đồ điện tử có lừa dối bạn hay không: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Năm ngoái, tôi và bố đã đến một cửa hàng điện tử / người máy mới mở rất gần nơi chúng tôi sống. Khi tôi bước vào đó, nó có đầy đủ các thiết bị điện tử, serovs, cảm biến, Raspberry pis và Arduinos. Ngày hôm sau, chúng tôi đến cùng một cửa hàng và mua nhiều senor và 3 Arduinos trị giá khoảng 150 USD. Ngay sau khi tôi về nhà, không có sản phẩm nào khác hoạt động ngoại trừ Arduino Mega. Chúng tôi đã bị lừa với số tiền khoảng 130 USD.
Vì vậy, tôi quyết định tạo ra một robot có thể kiểm tra khoảng 12 cảm biến và 2 động cơ (vẫn hoạt động trên servo) và có thể xác định xem sản phẩm có bị lỗi hay không.
Hãy đi thẳng vào nó!
Quân nhu
1. Arduino UNO
2. Màn hình cảm ứng TFT 2,4"
3. vài dây jumper
4. cảm biến và động cơ để bạn có thể kiểm tra chúng (ở đây tôi đã sử dụng - Cảm biến chuyển động, cảm biến khí MQ6, cảm biến âm thanh, chiết áp và cảm biến mực nước)
Bước 1: Cách thức hoạt động….
Tôi đã lập trình Arduino để tạo và tương tác giao diện người dùng với màn hình TFT. Như chúng ta đã biết, màn hình TFT chỉ có một chân trống, tức là chân A5. (nếu bạn sử dụng UNO). Vì vậy, bất kỳ cảm biến nào sử dụng chân Analog để đọc dữ liệu đều tương thích với thiết lập này…
Trong giao diện người dùng, bạn có thể thay đổi màu nền màn hình và bạn có thể mở ứng dụng do tôi phát triển cho Arduino để kiểm tra cảm biến.
Khi mở ứng dụng, bạn có thể thấy 2 tùy chọn, INPUT và OUTPUT. vì vậy nếu bạn nhấp vào Đầu vào, nó sẽ hiển thị 4 cảm biến (Nó tương thích với 12, nhưng tôi vẫn chưa lập trình vì tôi có kỳ thi sắp đến…. không có thời gian:(. Mọi người có thể tự do chỉnh sửa mã…)
Và nó cũng có thể kiểm tra xem động cơ servo có hoạt động hay không khi bạn kết nối nó trong khe cắm.
có một cái nhìn:
Bước 2: Tải lên mã
Mã là một chương trình 600 dòng mà tôi đã viết mã một cách tỉ mỉ trong khoảng 50 giờ. Nó có một số lỗi vì vậy xin vui lòng sửa đổi nó và gửi nó cho tôi trong thư của tôi ([email protected]).
Tải lên mã và kết nối lá chắn TFT với Arduino. Tôi khuyên bạn nên thử với giao diện người dùng để hiểu rõ hơn về nó.
Mật mã:
#bao gồm
#include #include #include #define LCD_CS A3 #define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4 #define BLACK 0x0000 #define BLUE 0x001F #define NAVY 0x000F #define07 C0800 #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define YP A1 #define XM_Mine 7 #define Ydefine TS XP 160 #define TS_MAXX 160 #define TS_MAXY 970 TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); #define BOXSIZE 40 #define PENRADIUS 3 #define MINPRESSURE 10 #define MAXPRESSURE 1000 int sound; trạng thái char = 6; int touch = 0; int color = BLACK; int redir = 0; int ota; void setup () {Serial.begin (9600); tft.reset (); tft.setFont (& FreeMonoBoldOblique12pt7b); tft.begin (0x9325); tft.setRotation (45); tft.setTextSize (0,5); tft.fillScreen (TRẮNG); tft.setCursor (60, 160); tft.setTextColor (ĐEN); tft.print ("Vuốt để đăng nhập"); } void loop () {float sensorVoltage; float sensorValue; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); if (pz> MINPRESSURE && pz 240 && px 130 && py 240 && px 20 && py 240 && px 20 && py 160 && px 12 && py 240 && px 20 && py 240 && px 20 && py 40 && px 15 && py 150 && px 40 && py 150 && px 80 && py 150 && px 120 && py 150 && px 170 && py 90 && px 40 && py 90 && px 80 && py 90 && px 120 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 100 && px 20 && py 200 && px 100 && py 100 && px 20 && py 100 && px 20 && py 100 && px 20 && py <100) {touch = 26; }} if (touch == 1 && state == 6) {tft.setRotation (0); tft.fillScreen (màu); âm thanh = 0; tft.fillRect (200, 180, 80, 140, TRẮNG); tft.drawRect (201, 181, 81, 141, ĐEN); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, ĐEN); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, BLACK); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, ĐEN); tft.fillRect (45, 180, 30, 120, BLUE); tft.drawRect (46, 181, 31, 121, ĐEN); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, ĐEN); tft.fillRect (115, 180, 30, 120, XANH LÁ); tft.drawRect (116, 181, 31, 121, ĐEN); tft.fillRect (150, 180, 30, 120, VÀNG); tft.drawRect (151, 181, 31, 121, ĐEN); tft.fillTriangle (210, 30, 210, 50, 220, 40, TRẮNG); tft.fillRect (200, 35, 12, 12, TRẮNG); tft.drawTriangle (210, 30, 210, 50, 220, 40, ĐEN); tft.drawRect (200, 35, 12, 12, ĐEN); tft.drawCircle (210, 40, 14, TRẮNG); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("Cài đặt"); tft.fillRoundRect (45, 75, 75, 75, 4, TRẮNG); tft.drawRoundRect (45, 75, 75, 75, 4, ĐEN); tft.fillRect (75, 75, 15, 30, BLACK); tft.fillRect (75, 120, 15, 30, BLACK); tft.fillRect (90, 105, 30, 15, BLACK); tft.fillRect (45, 105, 30, 15, BLACK); trạng thái = 7; chạm = 0; ota = 0; } if (touch == 2) {tft.fillScreen (WHITE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, TRẮNG); tft.fillRect (200, 35, 12, 12, TRẮNG); tft.drawTriangle (210, 30, 210, 50, 220, 40, ĐEN); tft.drawRect (200, 35, 12, 12, ĐEN); tft.drawCircle (210, 40, 14, ĐEN); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, BLACK); tft.setCursor (20, 200); tft.print ("cá nhân hóa"); tft.setCursor (20, 170); tft.print ("đăng xuất"); tft.setCursor (20, 140); tft.print ("thiết bị ngoại vi"); tft.setCursor (20, 110); tft.print ("Giới thiệu"); chạm = 1; trạng thái = 2; } if (touch == 10 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (10, 160); tft.setTextColor (ĐEN); tft.print ("Đã tạo và phát triển"); tft.setCursor (100, 190); tft.print ("do:"); tft.setCursor (60, 220); tft.print ("Một thiếu niên đến từ Ấn Độ"); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, TRẮNG); tft.fillRect (200, 35, 12, 12, TRẮNG); tft.drawTriangle (210, 30, 210, 50, 220, 40, ĐEN); tft.drawRect (200, 35, 12, 12, ĐEN); tft.drawCircle (210, 40, 14, BLACK); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, BLACK); trạng thái = 6; } if (touch == 11 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (60, 40); tft.print ("Chọn a"); tft.setCursor (40, 60); tft.print ("màu nền"); tft.fillRect (60, 180, 45, 45, RED); tft.fillRect (120, 180, 45, 45, VÀNG); tft.fillRect (180, 180, 45, 45, BLUE); tft.fillRect (240, 180, 45, 45, XANH LÁ); tft.fillRect (60, 130, 45, 45, MAGENTA); tft.fillRect (120, 130, 45, 45, NAVY); tft.fillRect (180, 130, 45, 45, LIGHTGREY); tft.fillRect (240, 130, 45, 45, CYAN); tft.fillRect (60, 80, 45, 45, TRẮNG); tft.drawRect (60, 80, 45, 45, BLACK); tft.fillRect (120, 80, 45, 45, BLACK); tft.fillRect (180, 80, 45, 45, OLIVE); tft.fillRect (240, 80, 45, 45, TÍM); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, TRẮNG); tft.fillRect (200, 35, 12, 12, TRẮNG); tft.drawTriangle (210, 30, 210, 50, 220, 40, ĐEN); tft.drawRect (200, 35, 12, 12, ĐEN); tft.drawCircle (210, 40, 14, BLACK); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ĐEN); tft.drawLine (300, 30, 270, 30, BLACK); trạng thái = 6; if (redir == 1) {color = WHITE; } if (redir == 2) {color = BLACK; } if (redir == 3) {color = OLIVE; } if (redir == 4) {color = PURPLE; } if (redir == 5) {color = MAGENTA; } if (redir == 6) {color = NAVY; } if (redir == 7) {color = LIGHTGREY; } if (redir == 8) {color = CYAN; } if (redir == 9) {color = RED; } if (redir == 10) {color = YELLOW; } if (redir == 11) {color = BLUE; } if (redir == 12) {color = GREEN; }} if (chạm vào == 26) {ota = 1; tft.fillScreen (TRẮNG); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, TRẮNG); tft.fillRect (200, 35, 12, 12, TRẮNG); tft.drawTriangle (210, 30, 210, 50, 220, 40, ĐEN); tft.drawRect (200, 35, 12, 12, ĐEN); tft.drawCircle (210, 40, 14, BLACK); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ĐEN); tft.drawLine (300, 30, 270, 30, BLACK); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("Đầu vào"); tft.setCursor (30, 150); tft.print ("Đầu ra"); tft.drawRect (25, 130, 90, 30, ĐEN); tft.drawRect (25, 60, 90, 30, BLACK); if (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("Mực nước"); tft.setCursor (150, 170); tft.print ("Mức khí"); tft.setCursor (150, 120); tft.print ("Khoảng cách"); tft.setCursor (150, 70); tft.print ("Âm thanh"); chạm = 1; trạng thái = 2; }}} while (sound == 1) {tft.fillScreen (WHITE); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Mức độ âm thanh ="); Serial.println (sensorVoltage); chậm trễ (1000); if (sound == 0) {break; }}}}
Bước 3: Thư viện Yêu cầu:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- TouchScreen.h
Các liên kết Github cho cùng một:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
Bước 4: Kết nối
Bạn cần 6 dây jumper. 3 nam và 3 nữ. hàn chúng trực tiếp vào bảng Arduino như thế này:
Bước 5: Tát tất cả cùng nhau
Cắm dây vào arduino (hình ảnh tham khảo), Sử dụng súng bắn keo nếu cần…
Sau đó, gắn tấm chắn TFT rồi kiểm tra Cảm biến của bạn.
Cảm ơn bạn đã cuộn xuống tất cả các cách. Hãy bình chọn cho tôi nếu bạn cảm thấy dự án này độc đáo và hữu ích
Chúc bạn kiếm tiền vui vẻ và hãy cẩn thận với những kẻ lừa đảo Điện tử?
Bước 6: Cải tiến thêm:
- Khả năng tương thích cảm biến nhiều hơn
- Mã động cơ servo phải được hoàn thành
- Một ứng dụng khác có thể giao tiếp với các mô-đun Bluetooth để chúng tôi có thể điều khiển rô bốt hỗ trợ Bluetooth bằng nó.
- Sửa lỗi
Đề xuất:
Thiết lập cho nhà cung cấp GPS Bluetooth bên ngoài cho thiết bị Android: 8 bước
Thiết lập cho nhà cung cấp GPS Bluetooth bên ngoài cho các thiết bị Android: Tài liệu hướng dẫn này sẽ giải thích cách tạo GPS hỗ trợ Bluetooth bên ngoài của riêng bạn cho điện thoại của bạn, bất cứ thứ gì chỉ khoảng 10 đô la. giao tiếp Blutooth Mô-đun năng lượng thấp
Phiên bản không dây của Cửa nhà để xe của tôi mở hay đóng ?: 7 bước
Phiên bản không dây của … Cửa nhà để xe của tôi đang mở hay đã đóng ?: Chúng tôi muốn có một hệ thống chỉ dẫn đơn giản, rẻ và đáng tin cậy cho chúng tôi biết cửa nhà để xe của chúng tôi đang mở hay đóng. Có rất nhiều " Cửa nhà để xe của tôi có mở không " các dự án. Phần lớn các dự án này là có dây cứng. Trong trường hợp của tôi thì
Phiên bản lớn của điện trở Smd 1 Ohm cung cấp điện trở 1 Ohm mà không cần sử dụng bất kỳ linh kiện điện tử nào.: 13 bước
Phiên bản lớn của điện trở Smd 1 Ohm cung cấp điện trở 1 Ohm mà không cần sử dụng bất kỳ linh kiện điện tử nào.: Trong thực tế, điện trở smd rất nhỏ với kích thước gần 0,8mmx1,2mm. Ở đây, tôi sẽ làm một điện trở smd lớn, rất lớn so với điện trở smd ngoài đời thực
Tự làm cáp tai nghe USB-C sang MMCX (Nếu bạn không thể mua, hãy chế tạo nó!): 4 bước
Tự làm cáp tai nghe USB-C to MMCX (Nếu bạn không thể mua nó, hãy xây dựng nó!): Sau nhiều lần thất vọng khi cố gắng tìm giải pháp USB-C cho tai nghe cao cấp có đầu nối MMCX có thể tháo rời của tôi không thành công, tôi quyết định cắt cùng một cáp sử dụng bộ chuyển đổi kỹ thuật số sang tương tự USB-C được tái thiết kế và cáp 3,5 mm sang MMCX
Cung cấp điện cao thế cho máy phát điện Marx: 8 bước
Nguồn điện cao áp cho Máy phát điện Marx: Một số bạn đang yêu cầu tôi đăng một hướng dẫn về cách tạo nguồn điện cao áp để cung cấp năng lượng cho Máy phát điện Marx trên tài liệu hướng dẫn này. Chà, đây là hướng dẫn mà bạn đã chờ đợi! Thiết bị mà chúng tôi sẽ sử dụng để tạo ra bột