فهرست مطالب:
- تدارکات
- مرحله 1: نحوه کار…
- مرحله 2: بارگذاری کد
- مرحله 3: کتابخانه های مورد نیاز:
- مرحله 4: اتصالات
- مرحله 5: همه را با هم بزنید
- مرحله 6: پیشرفت های بیشتر:
تصویری: رباتی که می گوید آیا فروشنده لوازم الکترونیکی به شما خیانت می کند یا نه: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
سال گذشته ، من و پدرم به مغازه روباتیک/لوازم الکترونیکی تازه افتتاح شده نزدیک محل زندگی مان رفتیم. وقتی وارد آنجا شدم ، پر از وسایل الکترونیکی ، سرو ، سنسورها ، رز تمشک و آردوینوس بود. روز بعد ، ما به همان فروشگاه رفتیم و تعداد زیادی سنور و 3 دستگاه آردوینو به ارزش حدود 150 دلار خریداری کردیم. به محض اینکه به خانه رفتم ، هیچ محصول دیگری به جز آردوینو مگا کار نکرد. ما برای 130 دلار کلاهبرداری کردیم که مقدار زیادی است.
بنابراین ، من تصمیم گرفتم یک ربات ایجاد کنم که بتواند 12 سنسور و 2 موتور را آزمایش کند (هنوز روی سروو کار می کند) و بتواند تشخیص دهد که محصول معیوب است یا خیر.
بیایید مستقیماً وارد آن شویم!
تدارکات
1. آردوینو UNO
2. صفحه نمایش 2.4 اینچی TFT صفحه لمسی
3. چند سیم جامپر
4. سنسورها و موتورها به طوری که می توانید آنها را آزمایش کنید (در اینجا من از سنسور حرکت ، سنسور گاز MQ6 ، سنسور صدا ، پتانسیومتر و سنسور سطح آب استفاده کردم)
مرحله 1: نحوه کار…
من یک Arduino را برای ایجاد UI تعاملی با صفحه نمایش TFT برنامه ریزی کرده ام. همانطور که می دانیم ، صفحه نمایش TFT فقط یک پین رایگان دارد یعنی پین A5. (اگر از UNO استفاده می کنید). بنابراین هر حسگری که از پین های آنالوگ برای خواندن داده ها استفاده می کند با این تنظیم سازگار است…
در رابط کاربری ، می توانید رنگ پس زمینه دسکتاپ را تغییر دهید و می توانید برنامه ای را که برای آردوینو توسط من برای آزمایش سنسورها ایجاد شده است ، باز کنید.
با باز کردن برنامه ، می توانید 2 گزینه INPUT و OUTPUT را مشاهده کنید. بنابراین اگر روی ورودی کلیک کنید ، 4 سنسور نشان می دهد (با 12 سازگار است ، اما هنوز نزدیک برنامه امتحان نیستم …. هیچ وقت:(. هر کسی آزاد است کد را ویرایش کند …)
و همچنین می تواند بررسی کند که آیا سروو موتور شما را در اسلات متصل می کند یا خیر.
نگاهی داشته باشید:
مرحله 2: بارگذاری کد
کد یک برنامه 600 خطی است که من در 50 ساعت دقیق آن را کدگذاری کردم. این برنامه دارای چند اشکال است ، لطفاً آن را اصلاح کرده و در ایمیل من ([email protected]) برای من ارسال کنید.
کد را بارگذاری کرده و سپر TFT را به آردوینو وصل کنید. من به شما توصیه می کنم که با رابط کاربری بازی کنید تا بتوانید بهتر از آن استفاده کنید.
کد:
#عبارتند از
#شامل #شامل #شامل #تعریف_ LCD_CS A3 #تعریف LCD_CD A2 #تعریف LCD_WR A1 #تعریف LCD_RD A0 #تعریف LCD_RESET A4 #تعریف BLACK 0x0000 #تعریف BLUE 0x001F #defe0 0x7FF0 0x000F #0 #define MAGENTA 0xF81F #تعریف YELLOW 0xFFE0 #تعریف سفید 0xFFFF #تعریف LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Sefeine #define_Sine2 160 #تعریف TS_MAXX 160 #تعریف TS_MAXY 970 صفحه لمسی ts = صفحه لمسی (XP، YP، XM، YM، 300)؛ Adafruit_TFTLCD tft (LCD_CS ، LCD_CD ، LCD_WR ، LCD_RD ، LCD_RESET) ؛ #تعریف BOXSIZE 40 #تعریف PENRADIUS 3 #تعریف MINPRESSURE 10 #تعریف حداکثر فشار 1000 int ؛ حالت char = 6؛ int touch = 0؛ رنگ int = BLACK؛ 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 (WHITE) ؛ tft.setCursor (60 ، 160) ؛ tft.setTextColor (BLACK) ؛ tft.print ("برای ورود به سیستم بکشید") ؛ } void loop () {float sensorVoltage؛ float sensorValue؛ 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 ، WHITE) ؛ tft.drawRect (201 ، 181 ، 81 ، 141 ، BLACK) ؛ tft.fillRect (80 ، 30 ، 100 ، 100 ، CYAN) ؛ tft.drawRect (81 ، 31 ، 101 ، 101 ، BLACK) ؛ tft.fillRect (10 ، 30 ، 50 ، 100 ، NAVY) ؛ tft.drawRect (11 ، 31 ، 51 ، 101 ، BLACK) ؛ tft.fillRect (10 ، 180 ، 30 ، 120 ، PURPLE) ؛ tft.drawRect (11 ، 181 ، 31 ، 121 ، BLACK) ؛ tft.fillRect (45 ، 180 ، 30 ، 120 ، آبی) ؛ tft.drawRect (46 ، 181 ، 31 ، 121 ، BLACK) ؛ tft.fillRect (80 ، 180 ، 30 ، 120 ، CYAN) ؛ tft.drawRect (81 ، 181 ، 31 ، 121 ، BLACK) ؛ tft.fillRect (115 ، 180 ، 30 ، 120 ، سبز) ؛ tft.drawRect (116 ، 181 ، 31 ، 121 ، BLACK) ؛ tft.fillRect (150 ، 180 ، 30 ، 120 ، YELLOW) ؛ tft.drawRect (151 ، 181 ، 31 ، 121 ، BLACK) ؛ tft.fillTriangle (210، 30، 210، 50، 220، 40، WHITE)؛ tft.fillRect (200 ، 35 ، 12 ، 12 ، WHITE) ؛ tft.drawTriangle (210 ، 30 ، 210 ، 50 ، 220 ، 40 ، BLACK) ؛ tft.drawRect (200 ، 35 ، 12 ، 12 ، BLACK) ؛ tft.drawCircle (210 ، 40 ، 14 ، WHITE) ؛ //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 ، WHITE) ؛ tft.drawRoundRect (45 ، 75 ، 75 ، 75 ، 4 ، BLACK) ؛ tft.fillRect (75 ، 75 ، 15 ، 30 ، BLACK) ؛ tft.fillRect (75 ، 120 ، 15 ، 30 ، BLACK) ؛ tft.fillRect (90 ، 105 ، 30 ، 15 ، BLACK) ؛ tft.fillRect (45 ، 105 ، 30 ، 15 ، BLACK) ؛ حالت = 7 ؛ لمس = 0 ؛ ota = 0 ؛ } if (touch == 2) {tft.fillScreen (WHITE)؛ tft.setRotation (0) ؛ tft.fillTriangle (210، 30، 210، 50، 220، 40، WHITE)؛ tft.fillRect (200 ، 35 ، 12 ، 12 ، WHITE) ؛ tft.drawTriangle (210 ، 30 ، 210 ، 50 ، 220 ، 40 ، BLACK) ؛ tft.drawRect (200 ، 35 ، 12 ، 12 ، BLACK) ؛ tft.drawCircle (210 ، 40 ، 14 ، BLACK) ؛ tft.setRotation (45) ؛ tft.fillTriangle (270، 40، 270، 20، 260، 30، BLACK)؛ tft.drawLine (300 ، 30 ، 270 ، 30 ، BLACK) ؛ 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 (BLACK) ؛ 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، WHITE)؛ tft.fillRect (200 ، 35 ، 12 ، 12 ، WHITE) ؛ tft.drawTriangle (210 ، 30 ، 210 ، 50 ، 220 ، 40 ، BLACK) ؛ tft.drawRect (200 ، 35 ، 12 ، 12 ، BLACK) ؛ tft.drawCircle (210 ، 40 ، 14 ، BLACK) ؛ tft.setRotation (45) ؛ tft.fillTriangle (270، 40، 270، 20، 260، 30، BLACK)؛ tft.drawLine (300 ، 30 ، 270 ، 30 ، BLACK) ؛ حالت = 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 ، YELLOW) ؛ 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 ، BLACK) ؛ 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، WHITE)؛ tft.fillRect (200 ، 35 ، 12 ، 12 ، WHITE) ؛ tft.drawTriangle (210 ، 30 ، 210 ، 50 ، 220 ، 40 ، BLACK) ؛ tft.drawRect (200 ، 35 ، 12 ، 12 ، BLACK) ؛ tft.drawCircle (210 ، 40 ، 14 ، BLACK) ؛ tft.setRotation (45) ؛ tft.fillTriangle (270، 40، 270، 20، 260، 30، BLACK)؛ tft.drawLine (300 ، 30 ، 270 ، 30 ، BLACK) ؛ حالت = 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 (WHITE) ؛ tft.setRotation (0) ؛ tft.fillTriangle (210، 30، 210، 50، 220، 40، WHITE)؛ tft.fillRect (200 ، 35 ، 12 ، 12 ، WHITE) ؛ tft.drawTriangle (210 ، 30 ، 210 ، 50 ، 220 ، 40 ، BLACK) ؛ tft.drawRect (200 ، 35 ، 12 ، 12 ، BLACK) ؛ tft.drawCircle (210 ، 40 ، 14 ، BLACK) ؛ tft.setRotation (45) ؛ tft.fillTriangle (270، 40، 270، 20، 260، 30، BLACK)؛ tft.drawLine (300 ، 30 ، 270 ، 30 ، BLACK) ؛ tft.setRotation (1) ؛ tft.setCursor (30 ، 80) ؛ tft.print ("ورودی") ؛ tft.setCursor (30 ، 150) ؛ tft.print ("خروجی") ؛ tft.drawRect (25 ، 130 ، 90 ، 30 ، BLACK) ؛ tft.drawRect (25 ، 60 ، 90 ، 30 ، BLACK) ؛ 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 (صدا == 0) {break؛ }}}}
مرحله 3: کتابخانه های مورد نیاز:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- صفحه لمسی.h
پیوندهای Github برای همان:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
مرحله 4: اتصالات
شما به 6 سیم بلوز احتیاج دارید. 3 مرد و 3 زن. آنها را مستقیماً به برد آردوینو لحیم کنید:
مرحله 5: همه را با هم بزنید
سیمها را به آردوینو بچسبانید (به تصویر مراجعه کنید) ، در صورت نیاز از مقداری تفنگ چسب استفاده کنید…
سپس سپر TFT را وصل کنید و سپس سنسورهای خود را آزمایش کنید.
از شما متشکرم که تا انتها حرکت کرده اید. اگر فکر می کنید این پروژه منحصر به فرد و مفید است ، به من رای دهید
خوشحال هستید و مراقب کلاهبرداران الکترونیک هستید؟
مرحله 6: پیشرفت های بیشتر:
- سازگاری بیشتر با سنسور
- کد موتور سروو باید تمام می شد
- برنامه دیگری که می تواند با ماژول های بلوتوث ارتباط برقرار کند تا بتوانیم یک ربات با بلوتوث را با آن کنترل کنیم.
- رفع اشکال
توصیه شده:
S.H.I.E.L.D - آیا کسی شما را تماشا می کند؟: 4 مرحله (همراه با تصاویر)
S.H.I.E.L.D - آیا کسی شما را تماشا می کند ؟: من بسیاری از فیلم های افراد شرمنده را دیدم که متوجه نشدن میکروفون یا دوربین آنها شده بود ، و ایده این پروژه را به من داد. من یک برنامه ساده در C# نوشتم که تشخیص می دهد چه زمان از دوربین یا میکروفون استفاده می شود
MyPetBot (رباتی که شما را دنبال می کند): 10 مرحله (همراه با تصاویر)
MyPetBot (رباتی که شما را دنبال می کند): Ai یکی از زیباترین برنامه های ریاضی است. این اساساً مجموعه ای از عملیات ماتریس است که برای مطابقت با نتیجه مورد نظر شما بهینه شده است. خوشبختانه تعداد زیادی ابزار متن باز وجود دارد که به ما امکان استفاده از آن را می دهد. من در اصل ه
آیا MakerBit به شما یادآوری می کند که آب زیر درخت کریسمس خود را بررسی کنید؟: 7 مرحله
آیا MakerBit می تواند به شما یادآوری کند که آب زیر درخت کریسمس خود را بررسی کنید؟: درخت تازه بریده یک تزئین سنتی برای تعطیلات در بسیاری از خانه ها است. ضروری است که آن را با آب تازه تامین کنید. آیا خوب نیست که یک زیورآلات داشته باشید که به شما یادآوری کند که آب زیر درخت خود را چک کنید؟ این پروژه بخشی از
نقاط زرد رمز و راز: آیا چاپگر شما از شما جاسوسی می کند؟: 5 مرحله (همراه با تصاویر)
نقاط زرد رمز و راز: آیا چاپگر شما از شما جاسوسی می کند ؟: تصور کنید هر بار که یک سند را چاپ می کنید ، به طور خودکار شامل یک کد مخفی است که می تواند برای شناسایی چاپگر - و به طور بالقوه ، شخصی که از آن استفاده می کند ، استفاده شود. به نظر می رسد چیزی از یک فیلم جاسوسی است ، درست است؟ متأسفانه سناریو
کیف ارزان قیمت برای لوازم الکترونیکی شما: 4 مرحله
کیف پولدار ارزان برای دستگاه های الکترونیکی شما: این نشان می دهد که چگونه راهی برای بدنه مناسب برای برخی از وسایل الکترونیکی خود پیدا کردم ، من یک قاب محافظ می خواستم زیرا اخیراً یکی از PDA های خود را به دلیل نیروی غیرقابل توقف گرانش از دست داده ام. در حال حاضر من دارای یک کاغذ واقعاً زیبا هستم. دلیل من برای اصلاح