فهرست مطالب:

استفاده از صفحه کلید مادون قرمز Palm با دستگاه های Android: 5 مرحله
استفاده از صفحه کلید مادون قرمز Palm با دستگاه های Android: 5 مرحله

تصویری: استفاده از صفحه کلید مادون قرمز Palm با دستگاه های Android: 5 مرحله

تصویری: استفاده از صفحه کلید مادون قرمز Palm با دستگاه های Android: 5 مرحله
تصویری: Leap Motion SDK 2024, جولای
Anonim
از صفحه کلید مادون قرمز Palm با دستگاه های Android استفاده کنید
از صفحه کلید مادون قرمز Palm با دستگاه های Android استفاده کنید
از صفحه کلید مادون قرمز Palm با دستگاه های Android استفاده کنید
از صفحه کلید مادون قرمز Palm با دستگاه های Android استفاده کنید
از صفحه کلید مادون قرمز Palm با دستگاه های Android استفاده کنید
از صفحه کلید مادون قرمز Palm با دستگاه های Android استفاده کنید

من یک صفحه کلید بی سیم PalmOne داشتم و می خواستم یک صفحه کلید بلوتوث برای گوشی خود داشته باشم. تنها مشکل این بود که صفحه کلید PalmOne مادون قرمز بود.

من یک دستگاه Brainlink هم داشتم. این یک دستگاه کوچک نسبتاً زیبا برای میانجیگری بین دستگاه های مختلف است. این دستگاه دارای پردازنده atxmega16 ، باتری قابل شارژ ، برخی از سنسورها ، رادیو بلوتوث ، تعدادی پورت ، قاب و مقداری سیستم عامل قابل ارتقا برای کنترل همه آن است. Brainlink متوقف شده است ، اما SurplusShed آن را با 39 دلار در اختیار دارد و 30 تا 50 ic تخفیف دوره ای برای همه چیز دارند. من 20 دلار گرفتم شما همچنین می توانید از کارت atxmega و بلوتوث خود استفاده کنید (نمودارهای اینجا) ، اما ممکن است هزینه های شما کمتر نباشد.

به هر حال ، پس از شناسایی محل خط سیگنال روی صفحه کلید ، ارتقاء سیستم عامل برای Brainlink و نوشتن درایور Android برای صفحه کلید ، بسیار خوب کار می کند. از آنجا که بیشتر کارها تحقیقاتی و نرم افزاری بود ، اکنون که این کار انجام شد ، برای هر کسی که دارای Brainlink است ، پروژه ای بسیار آسان است. تو نیاز داری:

  • صفحه کلید بی سیم PalmOne
  • پیوند فکری
  • یک اتصال 3 یا 8 پینی برای Brainlink (اتصال دهنده به سبک JST به ارتفاع 1.25 میلی متر) ؛ می توانید از اتصال دهنده 8 پین موجود در Brainlink استفاده کنید ، اما می خواهید برای پروژه های دیگر سفارش بیشتری بدهید
  • لحیم و آهن
  • نوار الکتریکی
  • اختیاری: بست قلاب و حلقه

در گذشته از Brainlink برای اتصال به هدست Mindflex EEG و Roomba استفاده می کردم. واقعاً برای کارهای پل زدن سریال به بلوتوث عالی است. من فقط اتصالات متفاوتی را برای دستگاه های مختلف می سازم و می توانم Brainlink را بین آنها جابجا کنم.

مرحله 1: پیش زمینه

زمینه
زمینه
زمینه
زمینه
زمینه
زمینه

با خیال راحت این توصیف پس زمینه را رد کنید.

صفحه کلید بی سیم PalmOne اطلاعات خود را از طریق IR LED روی ساقه ، با استفاده از IrDA ارسال می کند. در حالی که می توان از یک آشکارساز IR برای رمزگشایی داده ها استفاده کرد ، راه ساده تری وجود دارد. اگر صفحه کلید را نصف کنید ، سه نوار مسی نمایان می شود. قسمت میانی زمینی است و قسمت پایینی یک خط انتقال است. قرار دادن آنها بر روی یک اسیلوسکوپ تأیید می کند که سیگنال روی خط انتقال تقریباً در 9600 (دقیق تر: 9760) 8 N 2 ، با سطح بالا در حدود 1.56V ، و با شکل دهی پالس irDA: 1 بالا و پالس مثبت است. 3/16 از زمان کمی را صرف کنید

متأسفانه ، همه اینها بدان معنی است که ما نمی توانیم آن را فقط به یک ماژول ساده بلوتوث وصل کنیم (حداقل بدون ایجاد سیستم عامل سفارشی برای آن) ، مانند پروژه Mindflex من. خوشبختانه atxmega در Brainlink یک حالت irDA برای UART خود دارد. افزودن کمی کد به سیستم عامل Brainlink ساده است و به کد J1 اجازه می دهد آن را به حالت IrDA تغییر دهد. من انتظار داشتم سطح بالای 1.56V برای atxmega کافی نباشد ، اما وقتی نوارهای مسی را به GND و UART Receive در Brainlink متصل کردم و نتایج را در Realterm مشاهده کردم ، خوشحال شدم. به

مشخص شد که دنباله شش بایت فقط برای یک کد اسکن یک بایت (با انتشار علامت گذاری بیت بالا) بسته بندی می شود. به طور خاص ، دنباله FF C0 xx yy zz C1 است ، جایی که xx کد اسکن است ، yy xx با FF و zz xx xor'ed با 67 است. (در واقع ، کد اسکن سه بار منتقل می شود: یکبار واضح و دوبار رمزگذاری شده. من حدس می زنم این به این دلیل است که irDA مستعد فساد است ، بنابراین می توانید از رمزگشایی اکثریت برای به دست آوردن بایت استفاده کنید.) پس از آن ، تنها مشکل سخت افزاری یافتن مکانی برای لحیم کاری کانکتور روی صفحه کلید بود به و این سخت نبود

از نظر نرم افزاری ، در حالی که شاید بتوانم ماژول بلوتوث RN-42 را در Brainlink به حالت HID تغییر دهم ، که پتانسیل ایجاد آجر را دارد ، زیرا اگر ماژول به SPP بازنگردد ، نمی توانم با آن صحبت کنم Brainlink از طریق پروتکل بلوتوث خود.

کار ساده تر این بود که از برنامه صفحه کلید منبع باز BluezIME استفاده کنید که به گیم پد های مختلف بلوتوث اجازه می دهد به عنوان کنترل کننده اندروید عمل کرده و یک حالت برای توالی های شش بایتی صفحه کلید بی سیم Palm One اضافه کنید. برنامه به دست آمده صفحه کلید P1 رایگان در Google Play (کد منبع در github) است.

مرحله 2: ارتقاء سیستم عامل Brainklink

ارتقاء سیستم عامل Brainklink
ارتقاء سیستم عامل Brainklink
ارتقاء سیستم عامل Brainklink
ارتقاء سیستم عامل Brainklink

برای فعال کردن پشتیبانی از داده های فرمت IrDA در Brainlink ، باید سیستم عامل سفارشی من را بارگیری کنید. این کار با دستگاه اندرویدی و آپلود کننده سیستم عامل که نوشتم بسیار آسان است (به هر حال ، می توانید آپلود کننده را به عنوان بارگذاری کننده فلش atmega/atxmega AVR109 عمومی تغییر دهید).

  1. Brainlink (PIN 1234) را با یک دستگاه Android جفت کنید-به هر حال برای اتصال صفحه کلید باید این کار را انجام دهید
  2. بارگیری سیستم عامل Brainlink من را از Google Play بارگیری کنید (منبع بارگذاری و سیستم عامل در github).
  3. Brainlink را خاموش کرده و پایه های 8 و 2 (به طرز عجیبی پین 8 سمت چپ ترین پین و پین 1 در سمت راست است) را در پورت 8 پین وصل کنید.
  4. با نگه داشتن پین ها ، Brainlink را روشن کنید. LED آن باید آبی شود.
  5. سیستم عامل سفارشی مورد نظر خود را انتخاب کنید (اگر Roomba دارید ، یکی از سیستم عامل ها با Roombas جدیدتر و دیگری با قدیمی ترها بهتر کار می کند) ، و "بارگذاری" را فشار دهید.
  6. این باید باشد ، اگرچه اگر در اتصال مشکل دارید ، ممکن است لازم باشد بیش از یک بار امتحان کنید.

Brainlink شما اکنون باهوش تر است: نه تنها از خواندن داده ها از برخی از دستگاه های IrDA (هنگامی که یک سیگنال بدون تغییر را پیدا کردید) پشتیبانی می کند ، بلکه به عنوان یک پیوند استاندارد Roomba-to-Bluetooth عمل می کند و می تواند داده ها را از هدست EEG Mindflex ضبط کند. و سیستم عامل با گذشته سازگار است.

مرحله 3: اتصال Brainlink به صفحه کلید

اتصال Brainlink به صفحه کلید
اتصال Brainlink به صفحه کلید
اتصال Brainlink به صفحه کلید
اتصال Brainlink به صفحه کلید
اتصال Brainlink به صفحه کلید
اتصال Brainlink به صفحه کلید

شما به یک اتصال دهنده متصل خواهید بود که با سه پین سمت چپ در پورت 8 پین Brainlink سازگار باشد. این اتصالات به سبک JST با فاصله پین 1.25 میلی متری هستند. می توانید از کانکتور سه پین (به انتخاب من) یا کانکتور 8 پین استفاده کنید. می توانید از کانکتور 8 پین همراه Brainlink استفاده کنید ، اما سپس می خواهید تعداد بیشتری از آنها را سفارش دهید (من اتصالات 3 و 8 پینی را در ebay ارزان پیدا کردم).

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

در پورت 8 پین Brainlink شما ، چپ ترین اتصال زمین است (سمت چپ پین 8 پین) و سومین پین از سمت چپ دریافت سریال است. سیم زمین را در اتصال Brainlink خود به خط زمین در صفحه کلید و سیم دریافت روی Brainlink را به خط سیگنال بچسبانید. ممکن است متوجه شوید که در قسمت صفحه کلید فضایی برای اتصال لحیم کاری و کانکتور به سبک JST وجود ندارد. که داخل صفحه کلید بود در این صورت ، فقط کانکتور به سبک JST را بردارید و هر دو سه سیم مربوطه را (دو سیم زمین صفحه کلید و یک سیم اتصال زمین Brainlink ؛ دو سیم سیگنال صفحه کلید و یک سیم دریافت Brainlink) لحیم کنید.

برای صرفه جویی در عمر باتری ، جدا کردن طرف LED IR اتصال دهنده به سبک JST وسوسه انگیز است. این کار را نکنید. اگر این کار را انجام دهید سیگنال از بین می رود. با اسیلوسکوپ چک کردم

روی لب جلد باتری حفره ای ایجاد کنید تا سیم های اتصال دهنده Brainlink از بین بروند ، از نوار برقی برای جدا نگه داشتن این دو اتصال استفاده کنید و یک گره کوچک تنش زا را ببندید.

سرانجام ، وقتی همه چیز تمام شد ، یا مخاطبین نامربوط را در اتصال Brainlink بپوشانید یا سیمهای نامربوط را قطع کنید.

همچنین ممکن است بخواهید مقداری Velcro را روی Brainlink و صفحه کلید برای ثابت نگه داشتن Brainlink بچسبانید.

مرحله 4: استفاده از دستگاه Android

استفاده از دستگاه Android
استفاده از دستگاه Android
  1. Brainlink را با دستگاه Android خود (PIN 1234) جفت کنید.
  2. برنامه صفحه کلید P1 من را نصب کنید.
  3. تنظیمات صفحه کلید P1 را اجرا کنید (نمادی برای آن باید در راه انداز شما باشد).
  4. P1 Keyboard را در تنظیمات روش ورودی Android فعال کنید. در نسخه های جدیدتر Android ، می توانید صفحه کلید P1 را با انتخاب "Select IME" در تنظیمات صفحه کلید P1 و ضربه زدن روی "راه اندازی روشهای ورودی" فعال کنید. (یک هشدار دریافت خواهید کرد که صفحه کلید همه گذرواژه های شما را می بیند و غیره. این یک هشدار استاندارد اندروید است: البته ، راننده صفحه کلید همه چیزهایی را که تایپ می کنید می بیند. اگر می ترسید ، به کد منبع صفحه کلید نگاه کنید و بسازید مال خودت.)
  5. روی "Select device" ضربه بزنید و Brainlink خود را انتخاب کنید (خط من به عنوان RN42-A308 نشان داده می شود).
  6. روی "Select IME" در تنظیمات صفحه کلید P1 ضربه بزنید و صفحه کلید P1 را انتخاب کنید.
  7. ممکن است اتصال کمی طول بکشد ، اما اگر همه چیز خوب پیش رفت ، باید پیامی در مورد وصل شدن دریافت کنید

و تمام شدی! با خیال راحت به نویسنده BluezIME که صفحه کلید P1 بر اساس آن است اهدا کنید.

در Android 4.0+ ، هنگامی که در فیلدهای متنی اعلانی وجود دارد که امکان تغییر روش های ورودی را دارد ، بنابراین می توانید به راحتی به روش ورودی دیگری برگردید.

درایوری که برای صفحه کلید نوشتم بسیار ساده است. این کلیدهای معمولی را پشتیبانی می کند ، اما بسیاری از کلیدهای برجسته یا سایر موارد خاص را پشتیبانی نمی کند. من از استفاده از دو دکمه با یک خانه (FN-1 و کلید سمت چپ فضا) به عنوان Home ، با استفاده از کلید Windows و FN-2 به عنوان منو و FN-3 به عنوان Search. همچنین ، ctrl-a، c، v، x مطابق انتظار عمل می کند.

به اندازه کافی خوب کار می کند که من اولین پیش نویس کامل این دستورالعمل را در تلفن Galaxy S2 خود با صفحه کلید نوشتم.

مرحله 5: صفحه کلیدهای دیگر

صفحه کلیدهای دیگر
صفحه کلیدهای دیگر
صفحه کلیدهای دیگر
صفحه کلیدهای دیگر

اگر می خواهید با سایر صفحه کلیدهای مادون قرمز آزمایش کنید ، باید بفهمید که چه سیگنالهایی ارسال می کنند و با چه نرخ بادی. با Brainlink به روز شده به نرم افزار سازگار با IrDA ، می توانید با RealTerm به Brainlink متصل شوید. وقتی سیگنال تکراری "BL" را مشاهده می کنید که امضای Brainlink است ، عبارت زیر را تایپ کنید:

*J1Z

ستاره درخواست توجه می کند ، J1 به 9600 baud IrDA تغییر می کند (فقط باید 1 را سریع بعد از J تایپ کنید در غیر اینصورت خطایی دریافت می کنید). Z برای حالت پل سریال به بلوتوث است.

برای نمایش کدهای شش ضلعی ، RealTerm را تغییر دهید و کلیدهای صفحه کلید را فشار دهید و ببینید آیا می توانید آن را معنی کنید.

برای خروج از حالت پل سریال ، Brainlink را روشن کنید.

من حدس می زنم 9600 باود نرخ باود مناسب است. در غیر این صورت ، می توانید نرخ باود Brainlink را تغییر دهید. من با 57600 باود شروع می کنم:

*J1u57Z

و سپس 1200 باود:

*J1u12Z

هنگامی که متوجه شدید چگونه صفحه کلید داده های خود را ارسال می کند ، فقط کد درایور من را تغییر دهید. احتمالاً فقط تغییر اعداد در PalmOneWirelessKeyboard.java کافی است.

توصیه شده: