Мазмуну:

Электроника сатуучусу сизди алдап жатабы же жокпу, айтчу робот: 6 кадам
Электроника сатуучусу сизди алдап жатабы же жокпу, айтчу робот: 6 кадам

Video: Электроника сатуучусу сизди алдап жатабы же жокпу, айтчу робот: 6 кадам

Video: Электроника сатуучусу сизди алдап жатабы же жокпу, айтчу робот: 6 кадам
Video: Ойлонордон мурда бул ВИДЕОНУ КӨРҮҢҮЗ! 2024, Июль
Anonim
Электрондук сатуучу сизди алдап жатабы же жокпу, айтуучу робот
Электрондук сатуучу сизди алдап жатабы же жокпу, айтуучу робот

Өткөн жылы атам экөөбүз жашаган жерге жакын жайгашкан жаңы ачылган робототехника/электроника дүкөнүнө бардык. Мен ал жакка киргенде, ал электроникага, серовдорго, сенсорлорго, Малина писке жана Ардуиного толгон. Эртеси күнү биз ошол эле дүкөнгө барып, 150 АКШ долларына барабар көптөгөн сенаторлорду жана 3 Ардуино сатып алдык. Мен үйгө барарым менен Arduino Megaдан башка эч бир продукт иштеген жок. Бизди болжол менен 130 долларга алдап кетишти, бул абдан көп.

Ошентип, мен болжол менен 12 сенсорду жана 2 моторду текшере турган роботту түзүүнү чечтим (дагы эле серводо иштеп жатат) жана продукт туура эмес экенин аныктайм.

Келгиле, түз кирели!

Жабдуулар

1. Arduino UNO

2. 2.4 TFT сенсордук дисплей

3. жуп секирүү

4. сенсорлор жана моторлор, сиз аларды текшере аласыз (бул жерде мен колдонгом - Motion сенсор, MQ6 газ сенсору, Үн сенсору, потенциометр жана суу деңгээлинин сенсору)

1 -кадам: Бул кантип иштейт …

Image
Image

Мен Arduino программасын TFT дисплейи менен интерактивдүү UI түзүүгө программаладым. Биз билгендей, TFT дисплейинде бир гана акысыз пин бар, башкача айтканда A5 пини. (эгер сиз БУУну колдонсоңуз). Аналогдук пиндерди колдонуп, маалыматтарды окуй турган сенсорлор бул орнотууга шайкеш келет …

UIде сиз рабочий столунун өңүн өзгөртө аласыз жана сенсорлорду текшерүү үчүн мен тарабынан Arduino үчүн иштелип чыккан колдонмону ача аласыз.

Колдонмону ачкандан кийин, сиз INPUT жана OUTPUT деген 2 вариантты көрө аласыз. эгер сиз Input бассаңыз, анда ал 4 сенсорду көрсөтөт (Бул 12ге шайкеш келет, бирок мен аны азырынча программалай элекмин, анткени экзамендерим жакындап калды ….

Ал ошондой эле сиздин сервопривод моторуңузду аны уячага туташтырганын текшере алат.

карап көр:

2 -кадам: Кодду жүктөө

Код - бул 600 линия программасы, аны мен 50 сааттын ичинде кылдаттык менен коддогом. Анын бир нече мүчүлүштүктөрү бар, андыктан аны оңдоп, мага почтам аркылуу жөнөтүңүз ([email protected]).

Кодду жүктөп, TFT калканчын Arduino менен туташтырыңыз. Мен сизге UI менен ойноону сунуштайм, ошондо сиз аны жакшыраак билесиз.

Код:

#кошуу

#кошуу #кошуу #кошуу #аныктоо 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 NAVYFinFxFxFxxFFxxFF0xFF0xFF0xFF0xFF0xFF0xFF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define Tin Aine2Pin 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 #define PENRADIUS 3 #deinine MINPRESSURE 10 #dexine MAXPRESSURE 1000 int sound; 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; float sensorValue; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); эгерде (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) {тийүү = 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, PURPLE); 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, GREEN); 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; ota = 0; } if (touch == 2) {tft.fillScreen (WHITE); 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 (WHITE); tft.setCursor (10, 160); tft.setTextColor (КАРА); tft.print ("Түзүлгөн жана иштелип чыккан"); tft.setCursor (100, 190); tft.print ("тарабынан:"); 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 (WHITE); tft.setCursor (60, 40); tft.print ("Тандоо"); 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, GREEN); 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, BLACK); tft.fillRect (180, 80, 45, 45, OLIVE); tft.fillRect (240, 80, 45, 45, Purple); 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 = 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 (touch == 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, КАРА); if (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; }}} while (sound == 1) {tft.fillScreen (WHITE); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Үн деңгээли ="); Serial.println (sensorVoltage); кечигүү (1000); if (sound == 0) {break; }}}}

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 -кадам: Бардыгын бирге чапкыла

Зымдарды ардуиного туташтырыңыз (сүрөттү караңыз), керек болсо желим тапанчаны колдонуңуз …

Андан кийин TFT калканы тиркеп, сенсорлоруңузду сынап көрүңүз.

Ылдыйга чейин жылдырганыңыз үчүн рахмат. Эгер бул долбоор уникалдуу жана пайдалуу деп ойлосоңуз, мага добуш бериңиз

Бактылуу болуу жана Electronics шылуундарынан сак болуу?

6 -кадам: Андан ары жакшыртуу:

  • Дагы сенсордун шайкештиги
  • Серво моторунун коду бүтүшү керек болчу
  • Bluetooth модулдары менен иштей турган дагы бир колдонмо, биз аны Bluetooth менен иштеген роботту башкара алабыз.
  • Мүчүлүштүктөрдү оңдоо

Сунушталууда: