Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Энэ нь хэрхэн ажилладаг вэ? …
- Алхам 2: Кодыг байршуулах
- Алхам 3: Номын сан шаардлагатай:
- Алхам 4: Холболтууд
- Алхам 5: Бүгдийг хамтдаа алгадаарай
- Алхам 6: Цаашдын сайжруулалтууд:
Видео: Электроникс худалдагч таныг хуурч байгаа эсэхийг хэлдэг робот: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:00
Өнгөрсөн жил аав бид хоёр амьдардаг газрынхаа ойролцоо шинээр нээгдсэн робот техник/электрон барааны дэлгүүрт очсон. Намайг тэнд ороход электроник, серов, мэдрэгч, бөөрөлзгөнө пис, ардуиногоор дүүрсэн байв. Маргааш нь бид нэг дэлгүүрт очиж 150 орчим долларын үнэтэй олон сенатор, 3 Ардуино худалдаж авлаа. Гэртээ ормогц Arduino Mega -аас өөр бүтээгдэхүүн ажиллаагүй. Биднийг 130 орчим доллараар залилсан нь маш их юм.
Тиймээс би 12 орчим мэдрэгч, 2 моторыг турших чадвартай (servo дээр ажиллаж байгаа) робот бүтээхээр шийдсэн бөгөөд энэ нь бүтээгдэхүүний алдаатай эсэхийг тодорхойлох боломжтой болсон.
Үүнд шууд орцгооё!
Хангамж
1. Arduino UNO
2. 2.4 TFT мэдрэгчтэй дэлгэц
3. хос холбогч утас
4. мэдрэгч ба моторыг туршиж үзэх боломжтой (энд би ашигласан - Хөдөлгөөн мэдрэгч, MQ6 хийн мэдрэгч, Дууны мэдрэгч, потенциометр ба усны түвшин мэдрэгч)
Алхам 1: Энэ нь хэрхэн ажилладаг вэ? …
Би 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 -ээр ажилладаг роботыг удирдах боломжтой болно.
- Алдааны засварлалтууд
Зөвлөмж болгож буй:
AvoRipe - Таны авокадо боловсорч гүйцсэн эсэхийг шалгах: 8 алхам (зурагтай)
AvoRipe - Таны авокадо боловсорч гүйцсэн эсэхийг шалгаж байна: Энэ нь хүн бүрт тохиолддог, та авокадо худалдаж авдаг, хараахан болоогүй байна. Хэдэн өдөр өнгөрч, боловсорч гүйцэх үед та үүнийг мартчихаж … хэдхэн хоногийн дотор энэ нь муу болж магадгүй юм! Азаар бид таны avoc -ийг шалгадаг AvoRipe төхөөрөмжийг бүтээж, бүтээсэн
Таныг бодоод байгаа бугуйвч: 3 алхам
Таныг санаж буй бугуйвч: Хайртай хүнийхээ өдрийг гэрэлтүүлээрэй, та эдгээр энгийн бугуйвчаар дамжуулан түүнийг хаанаас ч бодож байгаагаа мэдээрэй (мөн хараарай!)
Электроникс ба Arduino -д зориулсан тусгай хашлага: 7 алхам
Электроникс ба Arduino -д зориулсан тусгай хашлага: Жилийн дараа би цахим төсөл болон Arduino -д зориулж тусгай зориулалтын хашлага бүтээх зааварчилгаа авчирлаа. Энэхүү гарын авлагад би FreeCAD хэмээх үнэгүй CAD програмыг ашиглах болно. Татаж авах линк энд байна. Татаж авах линк: https: //www.freec
Хүүхдийн гал тогоо BEEP гэж хэлдэг: 7 алхам (зурагтай)
BEEP гэж хэлдэг Хүүхдийн гал тогоо: Миний хоёр настай охин гурав дахь төрсөн өдрөөрөө "бяцхан" хүсэлт гаргасан. Тэр Beep гэсэн жижигхэн гал тогоо хүсч байна. 'Та юу хүсч байна?' миний хариулт байлаа. 'Ээжүүдийн гал тогоо шиг дуугардаг гал тогоо!' Гэж тэр хэлэв … Тиймээс энэ бол урам зориг байсан (би
ANDI - Санамсаргүй хэмнэл үүсгэгч - Электроникс: 24 алхам (зурагтай)
ANDI - Санамсаргүй хэмнэл үүсгэгч - Электроникс: ANDI бол товчлуур дарахад л санамсаргүй хэмнэл үүсгэдэг машин юм. Цохилт бүр өвөрмөц бөгөөд таван товчлуураар тохируулж болно. ANDI бол хөгжимчдөд урам зориг өгөх, бөмбөртэй ажиллах шинэ арга замыг судлах зорилготой их сургуулийн төслийн үр дүн юм