Агуулгын хүснэгт:

Электроникс худалдагч таныг хуурч байгаа эсэхийг хэлдэг робот: 6 алхам
Электроникс худалдагч таныг хуурч байгаа эсэхийг хэлдэг робот: 6 алхам

Видео: Электроникс худалдагч таныг хуурч байгаа эсэхийг хэлдэг робот: 6 алхам

Видео: Электроникс худалдагч таныг хуурч байгаа эсэхийг хэлдэг робот: 6 алхам
Видео: Architecture Kata #1 - Разбор с экспертом [Как работает настоящий Solution Architect] #ityoutubersru 2024, Арваннэгдүгээр
Anonim
Электроникс худалдагч таныг хуурч байгаа эсэхийг хэлдэг робот
Электроникс худалдагч таныг хуурч байгаа эсэхийг хэлдэг робот

Өнгөрсөн жил аав бид хоёр амьдардаг газрынхаа ойролцоо шинээр нээгдсэн робот техник/электрон барааны дэлгүүрт очсон. Намайг тэнд ороход электроник, серов, мэдрэгч, бөөрөлзгөнө пис, ардуиногоор дүүрсэн байв. Маргааш нь бид нэг дэлгүүрт очиж 150 орчим долларын үнэтэй олон сенатор, 3 Ардуино худалдаж авлаа. Гэртээ ормогц Arduino Mega -аас өөр бүтээгдэхүүн ажиллаагүй. Биднийг 130 орчим доллараар залилсан нь маш их юм.

Тиймээс би 12 орчим мэдрэгч, 2 моторыг турших чадвартай (servo дээр ажиллаж байгаа) робот бүтээхээр шийдсэн бөгөөд энэ нь бүтээгдэхүүний алдаатай эсэхийг тодорхойлох боломжтой болсон.

Үүнд шууд орцгооё!

Хангамж

1. Arduino UNO

2. 2.4 TFT мэдрэгчтэй дэлгэц

3. хос холбогч утас

4. мэдрэгч ба моторыг туршиж үзэх боломжтой (энд би ашигласан - Хөдөлгөөн мэдрэгч, MQ6 хийн мэдрэгч, Дууны мэдрэгч, потенциометр ба усны түвшин мэдрэгч)

Алхам 1: Энэ нь хэрхэн ажилладаг вэ? …

Image
Image

Би Arduino -г TFT дэлгэцтэй интерактив интерфэйс үүсгэх програмчилсан. Бидний мэдэж байгаагаар TFT дэлгэц нь зөвхөн нэг үнэгүй зүүтэй, өөрөөр хэлбэл A5 зүүтэй байдаг. (хэрэв та НҮБ -ыг ашигладаг бол). Өгөгдлийг уншихын тулд аналог тээглүүр ашигладаг аливаа мэдрэгч нь энэ тохируулгатай нийцдэг.

UI дээр та ширээний дэвсгэр өнгийг өөрчилж, мэдрэгчийг туршихын тулд миний Arduino -д зориулж боловсруулсан програмыг нээж болно.

Апп -ийг нээхэд та INPUT ба OUTPUT гэсэн 2 сонголтыг харах боломжтой. Тиймээс хэрэв та Input дээр дарвал 4 мэдрэгчийг харуулна (Энэ нь 12 -тэй нийцдэг, гэхдээ шалгалт дөхөж байгаа тул би үүнийг програмчилж амжаагүй байна …

Мөн энэ нь таны servo мотор таны үүрэнд холбогдсон эсэхийг шалгаж болно.

үзээрэй:

Алхам 2: Кодыг байршуулах

Код бол 600 шугамын програм бөгөөд би 50 орчим цагийн дотор сайтар кодлосон. Энэ нь хэд хэдэн алдаатай байдаг тул үүнийг засаж, миний имэйлээр надад илгээнэ үү ([email protected]).

Кодыг оруулаад TFT бамбайг Arduino руу холбоно уу. Үүнийг илүү сайн олж авахын тулд UI -ээр тоглохыг танд зөвлөж байна.

Код:

#оруулах

#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 BLAV 0x001F #define NAVYFFF0xFinFxFxFxFxFxFF0x0F #Define MAGENTA 0xF81F #efine YELLOW 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define TineFine AP2. 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); #dexine BOXSIZE 40 #тодорхойлох ПЕНРАДИУС 3 #MINPRESSURE 10 -ийг тодорхойлох #MAXPRESSURE 1000 int дууг тодорхойлох; char төлөв = 6; int touch = 0; int өнгө = ХАР; 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 (ЦАГААН); tft.setCursor (60, 160); tft.setTextColor (ХАР); tft.print ("Нэвтрэхийн тулд шударна уу"); } void loop () {float sensorVoltage; хөвөх мэдрэгч Үнэ; 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 (өнгө); дуу = 0; tft.fillRect (200, 180, 80, 140, ЦАГААН); tft.drawRect (201, 181, 81, 141, ХАР); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, ХАР); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, ХАР); tft.fillRect (10, 180, 30, 120, НЯГААН); tft.drawRect (11, 181, 31, 121, ХАР); tft.fillRect (45, 180, 30, 120, Цэнхэр); tft.drawRect (46, 181, 31, 121, ХАР); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, ХАР); tft.fillRect (115, 180, 30, 120, НОГООН); tft.drawRect (116, 181, 31, 121, ХАР); tft.fillRect (150, 180, 30, 120, ШАР); tft.drawRect (151, 181, 31, 121, ХАР); tft.fillTriangle (210, 30, 210, 50, 220, 40, ЦАГААН); tft.fillRect (200, 35, 12, 12, ЦАГААН); tft.drawTriangle (210, 30, 210, 50, 220, 40, ХАР); tft.drawRect (200, 35, 12, 12, ХАР); tft.drawCircle (210, 40, 14, ЦАГААН); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("Тохиргоо"); tft.fillRoundRect (45, 75, 75, 75, 4, ЦАГААН); tft.drawRoundRect (45, 75, 75, 75, 4, ХАР); tft.fillRect (75, 75, 15, 30, ХАР); tft.fillRect (75, 120, 15, 30, ХАР); tft.fillRect (90, 105, 30, 15, ХАР); tft.fillRect (45, 105, 30, 15, ХАР); төлөв = 7; хүрэх = 0; ота = 0; } бол (хүрэх == 2) {tft.fillScreen (ЦАГААН); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, ЦАГААН); tft.fillRect (200, 35, 12, 12, ЦАГААН); tft.drawTriangle (210, 30, 210, 50, 220, 40, ХАР); tft.drawRect (200, 35, 12, 12, ХАР); tft.drawCircle (210, 40, 14, ХАР); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ХАР); tft.drawLine (300, 30, 270, 30, ХАР); tft.setCursor (20, 200); tft.print ("хувийн тохиргоо"); tft.setCursor (20, 170); tft.print ("гарах"); tft.setCursor (20, 140); tft.print ("дагалдах төхөөрөмжүүд"); tft.setCursor (20, 110); tft.print ("тухай"); хүрэх = 1; төлөв = 2; } if (touch == 10 && state == 2) {tft.fillScreen (ЦАГААН); tft.setCursor (10, 160); tft.setTextColor (ХАР); tft.print ("Бүтээсэн ба боловсруулсан"); tft.setCursor (100, 190); tft.print ("by:"); tft.setCursor (60, 220); tft.print ("Энэтхэгээс ирсэн өсвөр насны хүүхэд"); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, ЦАГААН); tft.fillRect (200, 35, 12, 12, ЦАГААН); tft.drawTriangle (210, 30, 210, 50, 220, 40, ХАР); tft.drawRect (200, 35, 12, 12, ХАР); tft.drawCircle (210, 40, 14, ХАР); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ХАР); tft.drawLine (300, 30, 270, 30, ХАР); төлөв = 6; } if (touch == 11 && state == 2) {tft.fillScreen (ЦАГААН); tft.setCursor (60, 40); tft.print ("A сонгох"); tft.setCursor (40, 60); tft.print ("дэвсгэр өнгө"); tft.fillRect (60, 180, 45, 45, RED); tft.fillRect (120, 180, 45, 45, ШАР); tft.fillRect (180, 180, 45, 45, Цэнхэр); tft.fillRect (240, 180, 45, 45, НОГООН); 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, ЦАГААН); tft.drawRect (60, 80, 45, 45, ХАР); tft.fillRect (120, 80, 45, 45, ХАР); tft.fillRect (180, 80, 45, 45, OLIVE); tft.fillRect (240, 80, 45, 45, Ягаан); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, ЦАГААН); tft.fillRect (200, 35, 12, 12, ЦАГААН); tft.drawTriangle (210, 30, 210, 50, 220, 40, ХАР); tft.drawRect (200, 35, 12, 12, ХАР); tft.drawCircle (210, 40, 14, ХАР); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ХАР); tft.drawLine (300, 30, 270, 30, ХАР); төлөв = 6; if (redir == 1) {color = WHITE; } if (redir == 2) {color = BLACK; } if (redir == 3) {color = OLIVE; } if (redir == 4) {color = PIRPLE; } 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 (хүрэх == 26) {ota = 1; tft.fillScreen (ЦАГААН); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, ЦАГААН); tft.fillRect (200, 35, 12, 12, ЦАГААН); tft.drawTriangle (210, 30, 210, 50, 220, 40, ХАР); tft.drawRect (200, 35, 12, 12, ХАР); tft.drawCircle (210, 40, 14, ХАР); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ХАР); tft.drawLine (300, 30, 270, 30, ХАР); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("Оролт"); tft.setCursor (30, 150); tft.print ("Гаралт"); tft.drawRect (25, 130, 90, 30, ХАР); tft.drawRect (25, 60, 90, 30, ХАР); хэрэв (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("Усны түвшин"); tft.setCursor (150, 170); tft.print ("Хийн түвшин"); tft.setCursor (150, 120); tft.print ("Зай"); tft.setCursor (150, 70); tft.print ("Дуу"); хүрэх = 1; төлөв = 2; }}} байхад (дуу == 1) {tft.fillScreen (ЦАГААН); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (мэдрэгч хүчдэл); Serial.println ("Дууны түвшин ="); Serial.println (мэдрэгч хүчдэл); саатал (1000); if (дуу == 0) {завсарлага; }}}}

Алхам 3: Номын сан шаардлагатай:

  • Adafruit_GFX.h
  • Adafruit_TFTLCD.h
  • TouchScreen.h

Үүнтэй ижил Github холбоосууд:

github.com/adafruit/Adafruit-GFX-Library

github.com/adafruit/TFTLCD-Library

github.com/adafruit/Adafruit_TouchScreen

Алхам 4: Холболтууд

Бүгдийг хамтад нь алгадаарай
Бүгдийг хамтад нь алгадаарай

Танд 6 холбогч утас хэрэгтэй болно. 3 эрэгтэй, 3 эмэгтэй. тэдгээрийг Arduino самбар дээр шууд гагнана уу.

Алхам 5: Бүгдийг хамтдаа алгадаарай

Утсыг arduino руу холбоно уу (зургийг үзнэ үү), шаардлагатай бол цавуу буу ашиглана уу …

Дараа нь TFT бамбайг холбож, мэдрэгчээ шалгана уу.

Доошоо доош гүйлгэж байгаад баярлалаа. Хэрэв танд энэ төсөл өвөрмөц бөгөөд тустай санагдсан бол надад саналаа өгөхөө мартуузай

Аз жаргалтай байгаа бөгөөд Electronics скамеруудаас болгоомжилж байна уу?

Алхам 6: Цаашдын сайжруулалтууд:

  • Илүү мэдрэгчийн нийцтэй байдал
  • Серво хөдөлгүүрийн кодыг дуусгах шаардлагатай байв
  • Bluetooth модулиудтай интерфэйс хийх боломжтой өөр нэг аппликейшн нь бид Bluetooth -ээр ажилладаг роботыг удирдах боломжтой болно.
  • Алдааны засварлалтууд

Зөвлөмж болгож буй: