Мазмуну:
- Жабдуулар
- 1 -кадам: Бул кантип иштейт …
- 2 -кадам: Кодду жүктөө
- 3 -кадам: Китепканалар талап кылынат:
- 4 -кадам: Байланыштар
- 5 -кадам: Бардыгын бирге чапкыла
- 6 -кадам: Андан ары жакшыртуу:
Video: Электроника сатуучусу сизди алдап жатабы же жокпу, айтчу робот: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Өткөн жылы атам экөөбүз жашаган жерге жакын жайгашкан жаңы ачылган робототехника/электроника дүкөнүнө бардык. Мен ал жакка киргенде, ал электроникага, серовдорго, сенсорлорго, Малина писке жана Ардуиного толгон. Эртеси күнү биз ошол эле дүкөнгө барып, 150 АКШ долларына барабар көптөгөн сенаторлорду жана 3 Ардуино сатып алдык. Мен үйгө барарым менен Arduino Megaдан башка эч бир продукт иштеген жок. Бизди болжол менен 130 долларга алдап кетишти, бул абдан көп.
Ошентип, мен болжол менен 12 сенсорду жана 2 моторду текшере турган роботту түзүүнү чечтим (дагы эле серводо иштеп жатат) жана продукт туура эмес экенин аныктайм.
Келгиле, түз кирели!
Жабдуулар
1. Arduino UNO
2. 2.4 TFT сенсордук дисплей
3. жуп секирүү
4. сенсорлор жана моторлор, сиз аларды текшере аласыз (бул жерде мен колдонгом - Motion сенсор, MQ6 газ сенсору, Үн сенсору, потенциометр жана суу деңгээлинин сенсору)
1 -кадам: Бул кантип иштейт …
Мен 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 менен иштеген роботту башкара алабыз.
- Мүчүлүштүктөрдү оңдоо
Сунушталууда:
MyPetBot (Сизди ээрчиген бот): 10 кадам (сүрөттөр менен)
MyPetBot (Сизди ээрчиген бот): Ай математиканын эң сонун колдонмолорунун бири. Бул, негизинен, сиз издеп жаткан натыйжага дал келүү үчүн оптималдаштырылган матрицалар операцияларынын тобу. Бактыга жараша, аны колдонууга мүмкүнчүлүк берген көптөгөн ачык булактар бар. Мен башында
Talko Lego карта сатуучусу: 20 кадам (сүрөттөр менен)
Сүйлөшүүчү Lego карта сатуучусу: Көпчүлүк адамдар көңүл ачуу үчүн карта оюндарын ойношот, бирок алар биздин эмоционалдык жана психикалык ден соолугубузга бир нече пайда алып келет. Бул эң популярдуу жабык үйлөрдүн бири.Рамми жана Покер сыяктуу карта оюндарынын көпчүлүгүнө дилер керек. Ошентип, бул жерде биз
Макей Макей жокпу? Проблемалар жок! Үйдө Макейиңизди кантип жасоо керек!: 3 кадам
Макей Макей жокпу? Проблемалар жок! Үйдө Макей Макейиңизди кантип жасоого болот ?: Сиз качандыр бир убакта Instructables боюнча Makey Makey сынагына катышууну каалап көрдүңүз беле, бирок сизде эч качан Makey Makey болгон эмес?! ЭМИ кыла аласыз! Төмөнкү колдонмо менен мен сизге өзүңүздүн Makey Makey'иңизди жөнөкөй компоненттер менен кантип түзүүнү көрсөткүм келет
Сизди жалгыз салмактуу арматура гарнитураңызга ээ кылыңыз - Klipsch X10 + ER4P: 5 кадам
Сизди жалгыз салмактуу арматура гарнитурасына ээ кылыңыз - Klipsch X10 + ER4P: Бул Klipsch X10 кабыгын жана Knowles BA драйверин (ER4PS Hi -end IEMsде колдонулат) колдонуу менен бирдиктүү салмактуу арматура гарнитурасын кантип куруу жөнүндө. Бардык материалдар earphonediylabs.com жеткиликтүү
Өзүн-өзү тейлөөчү CD сатуучусу керексизден: 8 кадам
Өзүн-өзү тейлөөчү CD дүкөнү керексизден: Музыканттар: өзүн-өзү тейлеген CD дисплейи менен концерттериңизде көбүрөөк CD сатыңыз! Меники полигонго арналган нерселерден жасалган: галоген лампасы жана зым илгичтери. Эгерде сизде 40 доллар колдо болсо, туура окууңузду токтотуңуз азыр барып " CD сатуучусун " Jeff Kartakтан: ht