فهرست مطالب:

رباتی که می گوید آیا فروشنده لوازم الکترونیکی به شما خیانت می کند یا نه: 6 مرحله
رباتی که می گوید آیا فروشنده لوازم الکترونیکی به شما خیانت می کند یا نه: 6 مرحله

تصویری: رباتی که می گوید آیا فروشنده لوازم الکترونیکی به شما خیانت می کند یا نه: 6 مرحله

تصویری: رباتی که می گوید آیا فروشنده لوازم الکترونیکی به شما خیانت می کند یا نه: 6 مرحله
تصویری: لحظه دستگیری قاتل که دو فرد را در کنار خیابان سر برید ! 2024, جولای
Anonim
رباتی که می گوید فروشنده لوازم الکترونیکی به شما خیانت می کند یا نه
رباتی که می گوید فروشنده لوازم الکترونیکی به شما خیانت می کند یا نه

سال گذشته ، من و پدرم به مغازه روباتیک/لوازم الکترونیکی تازه افتتاح شده نزدیک محل زندگی مان رفتیم. وقتی وارد آنجا شدم ، پر از وسایل الکترونیکی ، سرو ، سنسورها ، رز تمشک و آردوینوس بود. روز بعد ، ما به همان فروشگاه رفتیم و تعداد زیادی سنور و 3 دستگاه آردوینو به ارزش حدود 150 دلار خریداری کردیم. به محض اینکه به خانه رفتم ، هیچ محصول دیگری به جز آردوینو مگا کار نکرد. ما برای 130 دلار کلاهبرداری کردیم که مقدار زیادی است.

بنابراین ، من تصمیم گرفتم یک ربات ایجاد کنم که بتواند 12 سنسور و 2 موتور را آزمایش کند (هنوز روی سروو کار می کند) و بتواند تشخیص دهد که محصول معیوب است یا خیر.

بیایید مستقیماً وارد آن شویم!

تدارکات

1. آردوینو UNO

2. صفحه نمایش 2.4 اینچی TFT صفحه لمسی

3. چند سیم جامپر

4. سنسورها و موتورها به طوری که می توانید آنها را آزمایش کنید (در اینجا من از سنسور حرکت ، سنسور گاز MQ6 ، سنسور صدا ، پتانسیومتر و سنسور سطح آب استفاده کردم)

مرحله 1: نحوه کار…

Image
Image

من یک 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: پیشرفت های بیشتر:

  • سازگاری بیشتر با سنسور
  • کد موتور سروو باید تمام می شد
  • برنامه دیگری که می تواند با ماژول های بلوتوث ارتباط برقرار کند تا بتوانیم یک ربات با بلوتوث را با آن کنترل کنیم.
  • رفع اشکال

توصیه شده: