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

Android G1 Serial to Arduino Robot: 8 خطوات
Android G1 Serial to Arduino Robot: 8 خطوات

فيديو: Android G1 Serial to Arduino Robot: 8 خطوات

فيديو: Android G1 Serial to Arduino Robot: 8 خطوات
فيديو: How to Unlock Sim Network Unlock Pin FREE | Unlock phone from Carrier with Sim Network Unlock Pin 2024, سبتمبر
Anonim
Android G1 Serial to Arduino Robot
Android G1 Serial to Arduino Robot
Android G1 Serial to Arduino Robot
Android G1 Serial to Arduino Robot
Android G1 Serial to Arduino Robot
Android G1 Serial to Arduino Robot

تعرف على كيفية تحكم هاتفك الخلوي الذي يعمل بنظام Android في روبوت باستخدام لوحة Arduino. يأخذ الهاتف الأوامر عبر telnet من هاتف آخر أو كمبيوتر شخصي ، بحيث يمكنك التحكم في الروبوت عن بُعد. لن يقوم هذا المشروع بتعديل G1 بطريقة أخرى حتى تتمكن من الاستمرار في استخدامه كهاتفك العادي بعد إلغاء إرسائه ، لماذا؟ باستخدام مكونات إلكترونية رخيصة مثل لوحات Arduino ، يمكنك إقرانها بهاتفك الذي تبلغ قيمته 400 دولار لإنشاء روبوت رائع. ستكلف مئات الدولارات لإضافة نظام تحديد المواقع العالمي (GPS) ، وشاشات الكريستال السائل ، وأجهزة استشعار الحركة ، والواي فاي ، والوصلات الخلوية ، ومكبرات الصوت ، والمزيد إلى روبوت للهوايات ، ولكن هاتفك يحتوي بالفعل على هذه! تتيح لك لوحة Android G1 و Arduino معًا استخدام إلكترونيات غير مكلفة مثل الماكينات وأجهزة الاستشعار البسيطة ، لبناء أجهزة قوية مثل الروبوتات أو التواجد عن بُعد أو الألعاب الممتعة للأطفال. مزيد من المعلومات في Cellbots.com ملاحظة: يتطلب هذا المشروع حاليًا Android G1 مع وصول الجذر لاستخدام الإخراج التسلسلي من الهاتف إلى روبوت Arduino. يمكنك إضافة وحدة BlueTooth بقيمة 20 دولارًا إلى لوحة Arduino الخاصة بك لجعل الهاتف يتحدث إليها عبر BlueTooth التسلسلي إذا كنت تريد استخدام برنامج Android التجاري. شكر خاص: لدينا Hacker Dojo في ماونتن فيو ، كاليفورنيا لنشكره على الاتصال بنا ، والمساعدة في بعض المشكلات الصعبة عبر قائمتهم البريدية للأعضاء الرائعين ، ولامتلاكهم رقائق 74LS04 في المخزون. تم إجراء معظم التجميع في Tech Shop في مينلو بارك.

الخطوة 1: العناصر المطلوبة

البنود المطلوبة
البنود المطلوبة
البنود المطلوبة
البنود المطلوبة
البنود المطلوبة
البنود المطلوبة

لإكمال هذا البرنامج التعليمي ، ستحتاج إلى ما يلي: الأجهزة: - هاتف Android G1 Dev (أو جهاز Android آخر به وصول إلى الجذر والإخراج التسلسلي) - Arduino (أنا أستخدم Freeduino SB ولكن يجب على أي شخص القيام بذلك) - 3.3 فولت إلى 5 فولت محول إذا كنت لا تستخدم شريحة أردوينو 3.3 فولت (أنا أستخدم شريحة 74LS04 بأقل من دولار واحد ولكن هناك خيارات أخرى متوفرة) - لوحة فصل USB من HTC لجهاز G1 - معدات لحام لتوصلين سريعين - جسم روبوت به الماكينات الصغيرة (كرتون ، أكريليك ، مداس ، عجلات ، أي شيء سيفعل) البرنامج: - بيئة برمجة Android (ASE) - عميل Telnet لجهاز الكمبيوتر الخاص بك (أنا أستخدم PuTTY على Windows) - بيئة تطوير Arduino - (اختياري) عميل تسلسلي لـ جهاز الكمبيوتر الخاص بك (أنا أيضًا أستخدم PuTTY على Windows لهذا) - (اختياري) Android SDK إذا كان بإمكانك اتباع الإرشادات ، يمكنك إكمال هذا البرنامج التعليمي مع القليل من المعرفة ب Python أو Arduino أو Android أو الإلكترونيات. سترغب في معرفة هذه الأشياء إذا كنت تريد تجاوز مؤشر LED الوامض ولكن هذا سيبدأ.

الخطوة 2: Android G1 مع تمكين الإخراج التسلسلي

Android G1 مع تمكين الإخراج التسلسلي
Android G1 مع تمكين الإخراج التسلسلي
Android G1 مع تمكين الإخراج التسلسلي
Android G1 مع تمكين الإخراج التسلسلي
Android G1 مع تمكين الإخراج التسلسلي
Android G1 مع تمكين الإخراج التسلسلي

لا تأتي أجهزة G1 مع القدرة على إرسال أوامر تسلسلية من منفذ USB ولا يوجد خيار أصلي لتمكينها. إذا كنت من مستخدمي Android SDK المتقدمين ، فيمكنك إنشاء تصميم خاص بك ولكني اخترت استخدام Cyanogenmod 4.2.13. إذا كنت تعرف أجهزة Android أخرى تعمل بشكل تسلسلي ، فأضفها إلى التعليقات.

اختياريًا ، يمكنك اتباع الروابط الموجودة هناك إلى هذا الدليل عند التحدث إلى G1 عبر USB من جهاز الكمبيوتر الخاص بك. هذا المسلسل إلى اتصال USB ليس مطلوبًا لهذا البرنامج التعليمي ولكني استخدمته كتحقق من سلامة العقل للتحقق من أن الهاتف كان يرسل تسلسلاً. إذا كنت لا تستخدم التطبيق الآخر للتحقق من عمل الإخراج التسلسلي ، فيمكنك تجربة هذا الاختيار البسيط: 1. افتح تطبيق Terminal على G1 (يأتي مع Cyanogen ولكن قم بتنزيل واحد من السوق إذا كانت لديك صورة مختلفة) 2. انتقل إلى الدليل / dev / عن طريق كتابة cd / dev / 3. اكتب ls (وهذا حرف L) وابحث عن ttyMSM2 في القائمة التي تم إرجاعها. يرسل نص Python الذي سنستخدمه لاحقًا أوامر إلى '/ dev / ttyMSM2' في اطلب منهم الخروج من الاتصال التسلسلي. نظرًا لأن ذلك يتطلب الوصول إلى الجذر ، فستحتاج إلى تغيير الأذونات في كل مرة تقوم فيها بإعادة تشغيل الهاتف. للقيام بذلك: 1. افتح تطبيق Terminal على الهاتف 2. أدخل "chmod 777 / dev / ttyMSM2" ثم يمكنك تشغيل نص Python من تحرير Android Scripting في الخطوة التالية وسيكون له حق الوصول لإرسال الإخراج التسلسلي.

الخطوة 3: قم بتثبيت Android Scripting Environment (ASE) باستخدام Python

قم بتثبيت Android Scripting Environment (ASE) مع Python
قم بتثبيت Android Scripting Environment (ASE) مع Python
قم بتثبيت Android Scripting Environment (ASE) مع Python
قم بتثبيت Android Scripting Environment (ASE) مع Python

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

بمجرد تثبيت وتشغيل ASE ، ستحتاج إلى إضافة وحدة Python من القائمة: 1. افتح ASE وتأكد من أن لديك اتصال إنترنت يعمل (wi-fi أو 3G) 2. اضغط على زر القائمة في الهاتف وحدد المترجمون الفوريون 3. اضغط على القائمة مرة أخرى وحدد إضافة 4. حدد Python (حاليًا v2.6.2 حتى وقت كتابة هذا) وسيتم تنزيل بعض ملفات zip ، وقد ترغب في استكشاف إنشاء البرامج النصية وفتحها وتحريرها وتشغيلها للتعرف على Python عبر ASE لكنه غير مطلوب.

الخطوة 4: انسخ البرنامج النصي Cellbot.py وتشغيله لتشغيل برنامج Python

انسخ البرنامج النصي Cellbot.py وتشغيله لتشغيل برنامج Python
انسخ البرنامج النصي Cellbot.py وتشغيله لتشغيل برنامج Python

يستخدم هذا البرنامج التعليمي نص Python ليكون "عقول" الروبوت. احصل على أحدث رمز من مشروع Google Code مفتوح المصدر الخاص بنا. تحتاج فقط إلى ملف cellbot.py ولكن قد يساعدك الآخرون في أشياء مختلفة تريد استكشافها. لقد قمت ببساطة بتوصيل الهاتف بوصلة USB بجهاز الكمبيوتر الخاص بي وقمت بتثبيت محرك الأقراص قبل نسخ الملف إلى / sdcard / ase / scripts.

يقوم البرنامج بإنشاء اتصال مقبس مفتوح لقبول جلسة telnet واردة. يقوم أيضًا بطباعة الأوامر المستلمة على الشاشة أثناء إرسالها إلى المنفذ التسلسلي. ضع هذا الملف على بطاقة SD للهاتف في الدليل / ase / scripts /. الخطوات التفصيلية لتحميل وتشغيل البرامج النصية: 1. انسخ البرنامج النصي cellbot.py إلى دليل بطاقة SD / ase / scripts / 2. تأكد من إلغاء التحميل بطاقة SD من جهاز الكمبيوتر الخاص بك إذا قمت بنسخها بهذه الطريقة لأن الهاتف لا يمكنه الوصول إلى الملفات في نفس الوقت الذي يكون فيه جهاز الكمبيوتر الخاص بك. 3. افتح تطبيق Android Scripting Environment 4. انقر فوق cellbot.py لتشغيله ، يجب أن ترى تأكيدًا بأن الجهاز جاهز في هذه المرحلة لقبول جلسات telnet الواردة على المنفذ 9002. نصيحة: تأكد من تشغيل "chmod 777 / dev / ttyMSM2 "من الخطوة رقم 3 أولاً. راجع الخطوة رقم 5 للعثور على عنوان IP الخاص بالهاتف.

الخطوة 5: Telnet في G1 واختبار إرسال أوامر

Telnet في G1 واختبار إرسال الأوامر
Telnet في G1 واختبار إرسال الأوامر
Telnet في G1 واختبار إرسال الأوامر
Telnet في G1 واختبار إرسال الأوامر
Telnet في G1 واختبار إرسال الأوامر
Telnet في G1 واختبار إرسال الأوامر

يجب أن يكون الهاتف جاهزًا لتتمكن من الاتصال به وإرسال الأوامر إليه من جهاز الكمبيوتر الخاص بك. ستتم طباعتها على شاشة الهاتف لتأكيد ما يستقبله. لقد استخدمت PuTTY على Windows لكننا أكدنا أن minicom يعمل بشكل رائع على أجهزة Mac كما هو موضح في هذا الدليل.

ستحتاج أولاً إلى العثور على عنوان IP الخاص بهاتفك. يتوفر هذا من خلال الانتقال إلى القائمة> الإعدادات> عناصر التحكم اللاسلكية> إعدادات Wi-Fi ثم الضغط على الاتصال النشط حاليًا. ستظهر رسالة محمصة منبثقة بعنوان IP الحالي على الشبكة المحلية. اكتب هذا لأنك ستستخدمه في كل مرة تريد فيها فتح جلسة telnet من جهاز الكمبيوتر الخاص بك. تنتهي صلاحية تعيينات IP عادةً بعد عدد معين من الأيام ، لذا قد تحتاج إلى التحقق من ذلك مرة أخرى. ملاحظة: يفترض هذا البرنامج التعليمي أن جهاز الكمبيوتر والهاتف موجودان على نفس الشبكة المحلية. يجب أن يكون التوجيه إلى الهاتف من خارج الشبكة المحلية ممكنًا ولكن لم يتم تناوله هنا. افتح عميل telnet الذي تختاره واتصل بـ IP الخاص بالهاتف على المنفذ 9002. من سطر الأوامر ، يمكنك القيام بذلك كـ telnet 192.168.1.1 9002 باستخدام عنوان IP الفعلي للهاتف. اكتب بعض الأحرف واضغط على Enter لرؤيتها تظهر على شاشة الهاتف. يمكنك كتابة q للتسبب في إنهاء برنامج Python النصي ، مما يؤدي إلى إغلاق جلسة العمل الطرفية. إذا لم تتمكن من الاتصال عبر telnet لأي سبب من الأسباب وتحتاج إلى إنهاء البرنامج ، فيجب أن تؤدي عملية إعادة تشغيل الهاتف البسيطة إلى الحيلة. قد يرغب المستخدمون المتقدمون في العثور على معرف العملية عبر ps ثم استخدام kill لإيقافه. متقدم: يمكن لإصدار مستقبلي من هذا تشغيل خادم ويب محلي من الهاتف بدلاً من قبول الأوامر عبر telnet. نحن نستكشف أيضًا XMPP للدردشة مع الروبوت الخاص بك.

الخطوة 6: قم بتوصيل محول من 3.3 فولت إلى 5 فولت بـ Arduino

قم بتوصيل ناقل حركة 3.3 فولت إلى 5 فولت بـ Arduino
قم بتوصيل ناقل حركة 3.3 فولت إلى 5 فولت بـ Arduino
قم بتوصيل ناقل حركة 3.3 فولت إلى 5 فولت بـ Arduino
قم بتوصيل ناقل حركة 3.3 فولت إلى 5 فولت بـ Arduino
قم بتوصيل ناقل حركة 3.3 فولت إلى 5 فولت بـ Arduino
قم بتوصيل ناقل حركة 3.3 فولت إلى 5 فولت بـ Arduino

Arduino المستخدم في هذا البرنامج التعليمي هو نموذج 5v لذا نحتاج إلى تحويل إشارة 3.3v القادمة من G1 باستخدام مستوى شيفتر. يجب أن يكون من الممكن الاتصال مباشرة بـ 3.3v Arduino ولكن هذا لم يكن شيئًا اختبرته.

هناك عدة طرق للتعامل مع هذا ولكننا سنستخدم شريحة 74LS04 في هذا المثال. يمكنك البحث عن واحد هنا ومن المحتمل أن يكون أقل من دولار واحد. اخترنا أنا وتيم منتجاتنا من Hacker Dojo في ماونتن فيو ، كاليفورنيا ولكن هذه شائعة جدًا ويجب أن تكون وفيرة أينما يتم بيع الرقائق أو التبرع بها. على مستوى عالٍ ، سنقوم ببساطة بإرسال إشارة TX من لوحة اختراق USB HTS إلى الطرف 1 من شريحة 74LS04. لجعلها تعمل ، نذهب من خلال الشريحة مرتين ونخرج الدبوس 4 إلى دبوس RX على Freeduino SB (قد يكون دبوسك التسلسلي مختلفًا إذا كان لديك لوحة Arduino أخرى ولكن يجب أن يدعم الجميع هذا). اتبع هذه الخطوات لتوصيل محول المستوى وتوصيل لوحة HTC USB (لا تقم بتوصيله بالهاتف بعد وافصل الطاقة عن Arduino): 1. أدخل شريحة 74LS04 في لوحة التجارب. تأكد من أن الشريحة تعيق كسر المركز حتى لا يتم تقصير المسامير (حركة غبية قمت بها في البداية) 2. سلكان من الجندي إلى لوحة HTC USB كما هو موضح في هذه التعليمات ، لكننا سنستخدم الدبابيس 7 فقط (Ground) و 8 (TX0) نظرًا لأننا نقوم بالإرسال في اتجاه واحد فقط لهذا البرنامج التعليمي. 3. قم بتوصيل الطرف الآخر من سلك الأرض (دبوس 7) بأرضية على لوح التجارب (والذي يجب توصيله بأرضية على Arduino) 4. قم بتوصيل الطرف الآخر من سلك TX0 (دبوس 8) بلوحة التجارب حيث يتم تشغيله في الطرف 1 من شريحة 74LS04. (قم بالبحث عن صورة لمخطط كامل للرقاقة) 5. استخدم سلكًا لتوصيل الطرف 2 و 3 من الشريحة 6. قم بتوصيل الطرف 4 من الشريحة بنقطة Arduino RX (الدبوس 0 في Freeduino SB و Arduino Duemilanove) 7. قم بتوصيل الدبوس 7 (GND) على الشريحة بالأرض من أجل اللوح (الذي يتصل أيضًا بأرض Arduino) 8. قم بتوصيل الدبوس 14 (VCC) بالطاقة 5 فولت على اللوح (الذي يحصل على الطاقة من Arduino خرج 5 فولت) يجب أن تكون الآن جاهزًا لتوصيل لوحة إخراج USB من HTC في الجزء السفلي من الهاتف وتشغيل Arduino. تحقق من وجود شرارات وروائح وقم بلمس الأشياء للتأكد من أنها باردة. ملاحظة: يعمل رمز cellbot الحالي على تشغيل مؤشر LED # 13 عندما يجب تشغيل المحركات المؤازرة للروبوت. إذا لم يكن لديك روبوت حتى الآن ، يمكنك التحقق من تشغيل وإيقاف تشغيل LED لتأكيد أنه يعمل.

الخطوة 7: قم بتحميل برنامج Cellbots على Arduino

قم بتحميل برنامج Cellbots على Arduino
قم بتحميل برنامج Cellbots على Arduino
قم بتحميل برنامج Cellbots على Arduino
قم بتحميل برنامج Cellbots على Arduino

احصل على كود مصدر Arduino من موقع مشروع Google Code الخاص بنا. افتح برنامج Cellbots.pde Arduino في محرر Arduino. ثم ادفعها إلى لوحة Arduino الخاصة بك.

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

الخطوة 8: قم بتشغيل العملية برمتها

قم بتشغيل العملية برمتها
قم بتشغيل العملية برمتها
قم بتشغيل العملية برمتها
قم بتشغيل العملية برمتها
قم بتشغيل العملية برمتها
قم بتشغيل العملية برمتها

يجب أن تكون قادرًا على توصيل لوحة HTC USB بالهاتف ، وتشغيل ملف cellbot.py في ASE ، وفتح جلسات طرفية في الهاتف. اكتب "H" لجعل الهاتف يقول مرحبًا أو أي أوامر أخرى من ملف README.txt.

سيقوم "q" بإنهاء نص Python على الهاتف وإغلاق المقبس الطرفي. فيما يلي ملخص لكيفية عمل كل شيء: 1. يفتح برنامج Python النصي مأخذًا لقبول اتصالات telnet الواردة ويردد صدى الأوامر خارج المنفذ التسلسلي 2.نقوم بالتوصيل من جهاز الكمبيوتر الخاص بنا إلى الهاتف عبر telnet على المنفذ 9002 ونرسل إليه الأوامر التي نراها على الشاشة 3. واجهات لوحة HTS USB مع منفذ USB الخاص بـ G1 وترسل إشارة 3.3 فولت إلى 74LS04 pin 1. 4. The تخرج الإشارة من الشريحة الموجودة على الدبوس 2 ، وتعود إلى السن 3 ، وتخرج مرة أخرى على السن 4 عند 5 فولت 5. يقبل Arduino الإشارة التسلسلية على RX pin 0 ومعالجتها عبر برنامج Cellbot.pde 6. نحن يمكنك كتابة "q" لقتل نص Python وإغلاق اتصال telnet الآن بعد أن أكملت هذه العملية المعقدة للغاية لإرسال أوامر أساسية إلى روبوت Arduino ، فقد حان الوقت لاختراقها لتكون أكثر روعة! ليس لدينا عمل تسلسلي ثنائي الاتجاه حتى الآن ، لذا لا يمكن لـ Arduino إرسال أوامر مرة أخرى إلى الهاتف ولكننا نعمل على ذلك. ابق على اطلاع من خلال الاشتراك في مدونتنا على Cellbots.com. نبذة عن المؤلفين: تيم هيث الباحث الرئيسي الذي وضع هذه العملية معًا لأول مرة في Tech Shop في مينلو بارك ، حيث هو عضو. Ryan Hickman Programmer الذي عمل على كود Python و Arduino وقام بتأليف هذا Instructable.

موصى به: