سؤال

أود أن أكتب برنامج روبي ل أوسك الذي يتصل عبر أوسب مع بلدي اردوينو.وانا ذاهب الى استخدام جوهرة سيريالبورت لهذا الغرض.

لقد وجدت نموذج التعليمات البرمجية التي تقول:

port_str = "/dev/ttyUSB0"  #may be different for you

كيف يمكنني مسح والعثور على اردوينو, ومعرفة ما ميناء وأود أن الاتصال تلقائيا?(لدي أوسك) شكراً!

هل كانت مفيدة؟

المحلول

هذا يمكن أن تكون خادعة للقيام بطريقة عامة ، لأن أجهزة اردوينو تظهر كمنافذ تسلسلية أوسب ، مما يجعل من الصعب التمييز بين اردوينو والمنافذ غير اردوينو.

نهج القوة الغاشمة هو:تعداد الأجهزة التسلسلية أوسب ، فتح () كل بدوره ، ومعرفة ما إذا كان يتم إرسال رأس التمهيد الثابتة على الطرف الآخر.على أوسك ، وأجهزة أوسب المسلسل هي في / ديف / تي.* ، ولكن قد يتغير ذلك مع تحديثات نظام التشغيل المستقبلية.تعمل هذه الطريقة ، ولكن يمكن أن تكون بطيئة وحساسة للتوقيت.لقد وجدت أن تأخير بدء التشغيل على اردوينو قبل إرسال رأس يساعد ، فضلا عن بسيطة "مرحبا, هل انت هناك?"قيادة المضيف يمكن استخدامها لفرقعة لعلامات الحياة.

أيضا ، يمكنك حفظ آخر منفذ تم العثور عليه بحيث يتم تشغيل التطبيق اللاحق جرب هذا المنفذ أولا.

متغير:إذا كان التطبيق الخاص بك يطلب من المستخدم سد العجز في اردوينو عند بدء التشغيل ، يمكنك سرد منافذ أوسب في / ديف ، انتظر المستخدم لتأكيد توصيله في ، وقائمة المنافذ مرة أخرى.أي جهاز يظهر حديثا هو على الأرجح اردوينو الخاص بك.

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

إذا كنت تحاول فقط جعل الأشياء تعمل مع مجموعة أجهزة ضيقة جدا (على سبيل المثال.اردوينو واحد على مقاعد البدلاء الخاصة بك) ، يمكنك استخدام هذا الأمر أوسك لرؤية تفاصيل جهاز أوسب:

system_profiler SPUSBDataType

مع نظامي ، أحصل على:

...
USB Bus:

  Host Controller Location: Built-in USB
  Host Controller Driver: AppleUSBUHCI
  PCI Device ID: 0x7fff000027c9 
  PCI Revision ID: 0x7fff00000002 
  PCI Vendor ID: 0x7fff00008086 
  Bus Number: 0x3d 

    Communication Device:

      Product ID: 0x0043
      Vendor ID: 0x2341
      Version: 0.01
      Serial Number: 75331313133351800000
      Speed: Up to 12 Mb/sec
      Manufacturer: Arduino (www.arduino.cc)
      Location ID: 0x3d100000 / 2
      Current Available (mA): 500
      Current Required (mA): 100

يبدو أن معرف الموقع (0 * 3 د100000 / 2) يتطابق مع اسم الجهاز: /dev/cu.usbmodem3d11

انظر هذا السؤال لتشغيل أوامر سطر الأوامر من داخل برنامج نصي روبي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top