Мазмұны:

Электроника сатушысы сізді алдап жүргенін немесе алмайтынын айтатын робот: 6 қадам
Электроника сатушысы сізді алдап жүргенін немесе алмайтынын айтатын робот: 6 қадам

Бейне: Электроника сатушысы сізді алдап жүргенін немесе алмайтынын айтатын робот: 6 қадам

Бейне: Электроника сатушысы сізді алдап жүргенін немесе алмайтынын айтатын робот: 6 қадам
Бейне: Қорқынышты әңгімелер. БҰЛЫПТАЛҒАН БӨЛМЕ. Ауыл қорқады. Ужас. Мистикалық. 2024, Қараша
Anonim
Электроника сатушысы сізді алдап жатқанын немесе болмайтынын айтатын робот
Электроника сатушысы сізді алдап жатқанын немесе болмайтынын айтатын робот

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

Сонымен, мен шамамен 12 сенсор мен 2 қозғалтқышты тексере алатын (әлі де сервода жұмыс істейді) және өнімнің ақаулы екенін анықтай алатын робот жасауды шештім.

Оған тікелей кірісейік!

Жабдықтар

1. Arduino UNO

2. 2,4 дюймдік TFT сенсорлық дисплей

3. қос секіргіш сымдар

4. сенсорлар мен қозғалтқыштар, сіз оларды тексере аласыз (мұнда мен қолдандым - қозғалыс сенсоры, MQ6 газ сенсоры, дыбыс сенсоры, потенциометр мен су деңгейінің сенсоры)

1 -қадам: Бұл қалай жұмыс істейді …

Image
Image

Мен Arduino -ны TFT дисплейі бар интерактивті интерфейс жасауға бағдарламаладым. Біз білетіндей, TFT дисплейінде тек бір бос түйреуіш бар, яғни A5 түйреуіші. (егер сіз БҰҰ қолдансаңыз). Деректерді оқу үшін аналогты түйреуіштерді қолданатын кез келген сенсор осы қондырғымен үйлесімді …

Пайдаланушы интерфейсінде сіз жұмыс үстелінің өңін өзгерте аласыз және сенсорларды тексеру үшін Arduino үшін мен жасаған бағдарламаны ашуға болады.

Бағдарламаны ашқан кезде сіз INPUT және OUTPUT 2 опцияны көре аласыз. егер сіз «Енгізу» түймесін бассаңыз, онда ол 4 сенсорды көрсетеді (ол 12 -мен үйлесімді, бірақ мен оны әлі бағдарламалай алмаймын, себебі емтихандар жақындап қалды …

Сондай -ақ, ол сіздің сервоприводтың жұмыс жасайтынын ұяға қосатынын тексере алады.

қарау:

2 -қадам: кодты жүктеу

Код - бұл шамамен 50 сағат ішінде мұқият кодталған 600 жолдық бағдарлама. Оның бірнеше қателері бар, сондықтан оны түзетіп, маған поштама жіберіңіз ([email protected]).

Кодты жүктеп, TFT қалқанын Arduino -ға қосыңыз. Мен сізге жақсы интерфейспен ойнауды ұсынамын, сонда сіз оны жақсы білесіз.

Код:

#қосу

#қосу #қосу #қосу #анықтау LCD_CS A3 #анықтау LCD_CD A2 #LCD анықтау #define MAGENTA 0xF81F #deinefine YELLOW 0xFFE0 #define WHITE 0xFFFF #deineve LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define TineSpein APE2 Adexine. 160 #define TS_MAXX 160 #define TS_MAXY 970 сенсорлы экран ts = сенсорлы экран (XP, YP, XM, YM, 300); Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); #dexine BOXSIZE 40 #depinePENRADIUS 3 #MINPRESSURE 10 анықтау #MAXPRESSURE 1000 int дыбысын анықтау; char күйі = 6; int touch = 0; int color = ҚАРА; 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 (түрту == 1 && күйі == 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; ota = 0; } if (түрту == 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 (түрту == 10 && күй == 2) {tft.fillScreen (АҚ); 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 (түрту == 11 && күйі == 2) {tft.fillScreen (АҚ); tft.setCursor (60, 40); tft.print («Таңдау»); tft.setCursor (40, 60); tft.print («фондық түс»); tft.fillRect (60, 180, 45, 45, ҚЫЗЫЛ); 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, ҚАРА); 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 = 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 = САРЫ; } if (redir == 11) {color = КӨК; } 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, ҚАРА); 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 (дыбыс == 1) {tft.fillScreen (АҚ); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (сенсорлық кернеу); Serial.println («Дыбыс деңгейі =»); Serial.println (sensorVoltage); кешіктіру (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 -қадам: Барлығын бірге ұрыңыз

Ардуиноға сымдарды салыңыз (суретті қараңыз), қажет болған жағдайда желім пистолетін қолданыңыз …

Содан кейін TFT қалқанын бекітіңіз, содан кейін сенсорларды тексеріңіз.

Соңына дейін айналдырғаныңыз үшін рахмет. Егер бұл жоба бірегей және пайдалы болды деп ойласаңыз, маған дауыс беріңіз

Бақытты болыңыз және Electronics алаяқтарынан сақ болыңыз ба?

6 -қадам: қосымша жақсартулар:

  • Сенсордың қосымша үйлесімділігі
  • Серво моторының кодын аяқтау керек болды
  • Bluetooth модульдерімен интерфейс жасай алатын тағы бір қосымша, біз онымен Bluetooth арқылы жұмыс істейтін роботты басқара аламыз.
  • Қателерді түзету

Ұсынылған: