Mục lục:

Robot cho biết nhà cung cấp đồ điện tử có lừa dối bạn hay không: 6 bước
Robot cho biết nhà cung cấp đồ điện tử có lừa dối bạn hay không: 6 bước

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

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
Video: LỜI NÓI DỐI CỦA BA #Shorts 2024, Tháng bảy
Anonim
Robot cho biết nhà cung cấp đồ điện tử có lừa dối bạn hay không
Robot cho biết nhà cung cấp đồ điện tử có lừa dối bạn hay không

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….

Image
Image

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

Tát tất cả cùng nhau
Tát tất cả cùng nhau

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: