جدول المحتويات:

روبوت يخبرك ما إذا كان بائع إلكترونيات يخونك أم لا: 6 خطوات
روبوت يخبرك ما إذا كان بائع إلكترونيات يخونك أم لا: 6 خطوات

فيديو: روبوت يخبرك ما إذا كان بائع إلكترونيات يخونك أم لا: 6 خطوات

فيديو: روبوت يخبرك ما إذا كان بائع إلكترونيات يخونك أم لا: 6 خطوات
فيديو: ما هى الروبوتات ؟ What about Robots | #مناقشات_تك #كريم_تك 2024, شهر نوفمبر
Anonim
روبوت يخبرك ما إذا كان بائع إلكترونيات يخونك أم لا
روبوت يخبرك ما إذا كان بائع إلكترونيات يخونك أم لا

في العام الماضي ، ذهبت أنا وأبي إلى متجر للروبوتات / الإلكترونيات تم افتتاحه حديثًا بالقرب من المكان الذي نعيش فيه. عندما دخلت هناك ، كانت مليئة بالإلكترونيات والسيروف وأجهزة الاستشعار و Raspberry pis و Arduinos. في اليوم التالي ، ذهبنا إلى نفس المتجر واشترينا العديد من أجهزة كبار السن و 3 أجهزة Arduinos بقيمة حوالي 150 دولارًا أمريكيًا. بمجرد عودتي إلى المنزل ، لم تعمل أي منتجات أخرى باستثناء Arduino Mega. تم خداعنا مقابل حوالي 130 دولارًا أمريكيًا وهو مبلغ كبير.

لذلك ، قررت إنشاء روبوت يمكنه اختبار حوالي 12 مستشعرًا ومحركين (لا يزالان يعملان على المؤازرة) ويمكنه تحديد ما إذا كان المنتج معيبًا.

دعنا ندخله مباشرة!

اللوازم

1. Arduino UNO

2. 2.4 شاشة تعمل باللمس TFT

3. زوجان من أسلاك العبور

4. أجهزة الاستشعار والمحركات بحيث يمكنك اختبارها (استخدمت هنا - مستشعر الحركة ، مستشعر الغاز MQ6 ، مستشعر الصوت ، مقياس الجهد ومستشعر مستوى الماء)

الخطوة 1: كيف يعمل…

Image
Image

لقد قمت ببرمجة Arduino لإنشاء واجهة مستخدم تفاعلية مع شاشة TFT. كما نعلم ، تحتوي شاشة TFT على دبوس مجاني واحد فقط ، أي دبوس A5. (إذا كنت تستخدم UNO). لذا فإن أي جهاز استشعار يستخدم دبابيس تناظرية لقراءة البيانات متوافق مع هذا الإعداد …

في واجهة المستخدم ، يمكنك تغيير لون خلفية سطح المكتب ، ويمكنك فتح التطبيق الذي تم تطويره لـ Arduino بواسطتي لاختبار المستشعرات.

عند فتح التطبيق ، يمكنك رؤية خيارين ، INPUT و OUTPUT. لذلك إذا قمت بالنقر فوق الإدخال ، فسيظهر 4 مستشعرات (وهو متوافق مع 12 ، لكني لم أقم ببرمجته بعد لأن امتحاناتي تقترب….

ويمكنه أيضًا التحقق مما إذا كان محرك سيرفو يعمل من توصيله في الفتحة.

الق نظرة:

الخطوة الثانية: تحميل الكود

الكود عبارة عن برنامج ذو 600 سطر قمت بترميزه بدقة في حوالي 50 ساعة. يحتوي على بعض الأخطاء ، لذا يرجى تعديله وإرساله إليّ في بريدي الإلكتروني ([email protected]).

قم بتحميل الكود وقم بتوصيل درع TFT بـ Arduino. أوصيك بالتلاعب بواجهة المستخدم حتى تحصل على تعليق أفضل لها.

الرمز:

#يشمل

# تضمين # تضمين # تضمين # تعريف LCD_CS A3 # تعريف LCD_CD A2 # تعريف LCD_WR A1 # تعريف LCD_RD A0 # تعريف LCD_RESET A4 # تعريف الأسود 0x0000 # تعريف الأزرق 0x001F # تعريف NAVY 0x000F # 0xFine RED0FRE800 # #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF # #define LIGHTGREY 0xC618 #define PURPLE 0x780F # تعريف OLIVE 0x7BE0 # تعريف التحديد #define YP A1 #define XM A2 #define XP 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 sound ؛ حالة شار = 6 ؛ اللمس int = 0 ؛ اللون int = أسود ؛ int redir = 0 ؛ إنت أوتا ؛ إعداد باطل () {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 ("مرر لتسجيل الدخول") ؛ } حلقة فارغة () {تعويم الاستشعارVoltage؛ مستشعر تعويم القيمة ؛ TSPoint p = ts.getPoint () ، pinMode (XM ، الإخراج) ؛ pinMode (YP ، الإخراج) ؛ إذا كان (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 ، أبيض) ؛ tft.drawRect (201 ، 181 ، 81 ، 141 ، أسود) ؛ tft.fillRect (80، 30، 100، 100، أزرق) ؛ 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 ، 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 ؛ أوتا = 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 ، أحمر) ؛ tft.fillRect (120 ، 180 ، 45 ، 45 ، أصفر) ؛ tft.fillRect (180 ، 180 ، 45 ، 45 ، أزرق) ؛ tft.fillRect (240 ، 180 ، 45 ، 45 ، أخضر) ؛ tft.fillRect (60، 130، 45، 45، ماجنتا) ؛ 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 ، زيتون) ؛ 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 ؛ إذا (أحمر == 1) {لون = أبيض ؛ } إذا (أحمر == 2) {لون = أسود ؛ } إذا (أحمر == 3) {لون = زيتون ؛ } إذا (أحمر == 4) {color = PURPLE؛ } إذا (أحمر == 5) {color = MAGENTA ؛ } إذا (أحمر == 6) {color = NAVY؛ } إذا (أحمر == 7) {color = LIGHTGREY؛ } إذا (أحمر == 8) {color = CYAN؛ } إذا (أحمر == 9) {color = RED؛ } إذا (أحمر == 10) {لون = أصفر ؛ } إذا (أحمر == 11) {color = BLUE؛ } إذا (أحمر == 12) {لون = أخضر ؛ }} 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 ، أسود) ؛ إذا (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 (مستشعر الجهد) ؛ Serial.println ("مستوى الصوت =") ؛ Serial.println (مستشعر الجهد) ؛ تأخير (1000) ؛ إذا (الصوت == 0) {استراحة ؛ }}}}

الخطوة 3: المكتبات المطلوبة:

  • Adafruit_GFX.h
  • Adafruit_TFTLCD.h
  • شاشة اللمس

روابط جيثب لنفسه:

github.com/adafruit/Adafruit-GFX-Library

github.com/adafruit/TFTLCD-Library

github.com/adafruit/Adafruit_TouchScreen

الخطوة 4: التوصيلات

صفعة كل شيء معًا
صفعة كل شيء معًا

أنت بحاجة إلى 6 أسلاك توصيل. 3 ذكور و 3 إناث. قم بلحامهم مباشرة على لوحة Arduino مثل هذا:

الخطوة 5: صفعها جميعًا معًا

دس الأسلاك في اردوينو (راجع الصورة) ، استخدم بعض مسدس الغراء إذا لزم الأمر …

ثم قم بتوصيل درع TFT ثم اختبر المستشعرات الخاصة بك.

شكرا لك على التمرير على طول الطريق. تأكد من التصويت لي إذا شعرت أن هذا المشروع فريد ومفيد

سعيد صنع واحذر من المحتالين على الإلكترونيات؟

الخطوة 6: مزيد من التحسينات:

  • المزيد من التوافق مع أجهزة الاستشعار
  • يجب أن يتم الانتهاء من رمز محرك سيرفو
  • تطبيق آخر يمكنه التفاعل مع وحدات Bluetooth حتى نتمكن من التحكم في روبوت يعمل بالبلوتوث به.
  • اصلاحات الشوائب

موصى به: