Съдържание:
- Консумативи
- Стъпка 1: Как работи ……
- Стъпка 2: Качване на кода
- Стъпка 3: Необходими библиотеки:
- Стъпка 4: Връзките
- Стъпка 5: Плеснете всичко заедно
- Стъпка 6: Допълнителни подобрения:
Видео: Робот, който казва дали продавач на електроника ви изневерява или не: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Миналата година аз и баща ми отидохме в новооткрит магазин за роботика/електроника много близо до мястото, където живеем. Когато влязох там, беше пълно с електроника, серова, сензори, Raspberry pis и Arduinos. На следващия ден отидохме в същия магазин и купихме много сензори и 3 Arduino на стойност около 150 USD. Веднага след като се прибрах, никой друг продукт не работи, освен Arduino Mega. Бяхме измамени за около 130 USD, което е много.
Така че реших да създам робот, който да тества около 12 сензора и 2 двигателя (все още работи върху сервото) и да може да определи дали продуктът е дефектен.
Нека се впуснем направо в това!
Консумативи
1. Arduino UNO
2. 2.4 TFT сензорен екран
3. няколко джъмперни проводника
4. сензори и двигатели, за да можете да ги тествате (тук използвах - сензор за движение, сензор за газ MQ6, сензор за звук, потенциометър и сензор за нивото на водата)
Стъпка 1: Как работи ……
Програмирал съм Arduino за създаване и интерактивен потребителски интерфейс с TFT дисплей. Както знаем, TFT дисплеят има само един свободен щифт, т.е. щифт A5. (ако използвате UNO). Така че всеки сензор, който използва аналогови щифтове за четене на данни, е съвместим с тази настройка …
В потребителския интерфейс можете да промените цвета на фона на работния плот и можете да отворите приложението, разработено за Arduino от мен, за да тества сензори.
При отваряне на приложението можете да видите 2 опции, INPUT и OUTPUT. така че, ако щракнете върху Въвеждане, той показва 4 сензора (Съвместим е с 12, но тепърва ще го програмирам, тъй като предстоят изпити ….но време:(. Всеки е свободен да редактира кода …)
Освен това може да провери дали сервомоторът работи, като го свържете към слота.
погледни:
Стъпка 2: Качване на кода
Кодът е програма от 600 реда, която щателно кодирах за около 50 часа. Той има няколко грешки, така че моля, променете го и ми го изпратете на моята поща ([email protected]).
Качете кода и свържете TFT щита към Arduino. Препоръчвам ви да си поиграете с потребителския интерфейс, за да го разберете по -добре.
Кодът:
#включва
#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 0x000FefineFine0define0define0define0define0define0dex #определи MAGENTA 0xF81F #дефинирай ЖЪЛТО 0xFFE0 #определи БЯЛО 0xFFFF #определи LIGHTGREY 0xC618 #дефинирай PURPLE 0x780F #дефинирай OLIVE 0x7BE0 #дефинирай селекция #дефинирай YP A1 #дефинирай XD #дефинирай XD 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 звук; 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; датчик за поплавъкValue; 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 && p 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; }} ако (докоснете == 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, ЗЕЛЕН); 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 && state == 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 && state == 2) {tft.fillScreen (БЯЛ); tft.setCursor (60, 40); tft.print ("Изберете a"); 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, ЗЕЛЕН); 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, 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; }} ако (докоснете == 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 (sensorVoltage); Serial.println ("Ниво на звука ="); Serial.println (sensorVoltage); забавяне (1000); if (звук == 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: Плеснете всичко заедно
Пъхнете проводниците към arduino (вижте изображението), използвайте пистолет за лепило, ако е необходимо …
След това прикрепете TFT щита и тествайте сензорите си.
Благодаря ви, че превъртате докрай надолу. Не забравяйте да гласувате за мен, ако смятате, че този проект е уникален и полезен
Приятно правене и се пазете от измамниците по електроника?
Стъпка 6: Допълнителни подобрения:
- Повече съвместимост със сензори
- Кодът на серво мотора трябваше да бъде завършен
- Друго приложение, което може да взаимодейства с Bluetooth модули, така че да можем да управляваме с него робот с Bluetooth.
- Изчистване на бъгове
Препоръчано:
Направи си сам -- Как да си направим робот -паяк, който може да се контролира с помощта на смартфон с помощта на Arduino Uno: 6 стъпки
Направи си сам || Как да си направим робот -паяк, който може да се контролира с помощта на смартфон с помощта на Arduino Uno: Докато правите робот -паяк, човек може да научи толкова много неща за роботиката. В това видео ще ви покажем как да направите робот Spider, с който можем да управляваме с помощта на нашия смартфон (Androi
Възстановяване на Game Boy или подобна електроника: 7 стъпки (със снимки)
Възстановяване на Game Boy или подобна електроника: Първо, благодаря, че проверихте моя урок! Страхотни сте. Второ, отделих много време на видеоклипа в YouTube, така че гледайте и него, той обяснява всичко. Видео:
Как да хидроизолирате вашата електроника или печатни платки: 4 стъпки
Как да хидроизолирате вашата електроника или печатни платки: В тази инструкция ще обсъдим методи за защита на верига от околната среда и това важи като цяло за печатни платки, но можете да вземете тези съвети и трикове и да ги използвате и в други приложения . Това най -много ще
Кожена торбичка Zune (или който и да е MP3 плейър) с марка: 9 стъпки
Кожена торбичка Zune (или всеки Mp3-плейър) с марка: Торбичката, която дойде с моята Zune, започна да се износва. Затова реших сам да си направя торбичка. Също така никога не ми харесваше, че няма икони на обикновената торбичка, които биха позволили лесна работа с плейъра, без да го изваждате. Взех си кожата и
Интернет радио с тънък клиент Evo T20, който не се нуждае от клавиатура или мишка за мониториране, за да работи!: 7 стъпки
Интернет радио с тънък клиент Evo T20, който не се нуждае от клавиатура или мишка за мониторинг за работа !: Ето как да използвате тънък клиент Evo T20 като самостоятелен интернет радиоприемник: Защо го направих добре Направих го по 3 причини 1], защото беше предизвикателство 2] Да имаш безшумен блок с ниска консумация само 20 вата на върха, вместо да работиш шумно