تحديد ما / ديف / هو جهاز أوسب متصل
-
20-12-2019 - |
سؤال
أود أن أكتب برنامج روبي ل أوسك الذي يتصل عبر أوسب مع بلدي اردوينو.وانا ذاهب الى استخدام جوهرة سيريالبورت لهذا الغرض.
لقد وجدت نموذج التعليمات البرمجية التي تقول:
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
انظر هذا السؤال لتشغيل أوامر سطر الأوامر من داخل برنامج نصي روبي.