به گفته cnx software:
این خبر تجربه استفاده از Raspberry Pi 500 بهعنوان یک کیبورد مکانیکی بلوتوث با پروژه btferret را توضیح میدهد؛ از مزیت کار بدون نصب مجدد نرمافزار و امکان اجرای فرمانها گرفته تا نکات عیبیابی مثل لزوم اجرای برنامه از محیط Desktop (نه SSH). همچنین تنظیمات چیدمان در keyboard.txt، رفتار کلید Esc و محدودیتهایی مانند پشتیبانینشدن برخی میانبرها و نیاز به مانیتور برای پایداری بیان شده است.
+Raspberry Pi 500 یک PC کامل مبتنی بر Linux است، اما میتوان از آن بهعنوان یک کیبورد مکانیکی Bluetooth عادی هم استفاده کرد.
این هفته کیت بیسیم Logitech من (کیبورد و ماوس) دچار مشکل شد و چون هنوز در گارانتی بود برای تعمیر ارسالش کردم. همزمان، یکی دیگر از همکاران دانگل RF کیت خودش را جا گذاشت و در نتیجه برای دو نفر فقط یکسوم کیبورد اضافه داشتیم؛ وضعیت اصلاً مناسبی نبود. خوشبختانه، بررسی Raspberry Pi 500+ را تازه تمام کرده بودیم و بنابراین یک کیبورد مکانیکی اضافه در اختیار داشتیم. پروژه btferret هم امکان داد که از آن بهصورت کیبورد Bluetooth استفاده کنیم.
میتوانستیم از Pi 500+ مستقیماً بهعنوان یک ماشین Linux استفاده کنیم، اما باید همه نرمافزارهای همیشگی را دوباره نصب میکردیم و به برخی فایلها روی سیستمهای اصلیمان دسترسی نداشتیم.
راهنمای پایه روی انجمنهای Raspberry Pi آمده است:
|
1 2 3 4 |
git clone https://github.com/petzval/btferret gcc keyboard.c btlib.c -o keyboard sudo ./keyboard</code><code> |
خروجی اجرای دستور:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
aey@raspberrypi:~/btferret $ sudo ./keyboard Initialising... Device data from keyboard.txt file DEVICE = My Pi TYPE=Mesh node=1 ADDRESS = 2C:CF:67:FD:8B:AA PRIMARY_SERVICE = 1800 LECHAR=Device Name SIZE=4 Permit=02 UUID=2A00 LECHAR=Appearance SIZE=2 Permit=02 UUID=2A01 PRIMARY_SERVICE = 180A LECHAR= PnP ID SIZE=7 Permit=02 UUID=2A50 PRIMARY_SERVICE = 1812 LECHAR=Protocol Mode SIZE=1 Permit=06 UUID=2A4E LECHAR=HID Info SIZE=4 Permit=02 UUID=2A4A LECHAR=HID Ctl Point SIZE=8 Permit=04 UUID=2A4C LECHAR=Report Map SIZE=47 Permit=02 UUID=2A4B LECHAR=Report1 SIZE=8 Permit=92 UUID=2A4D Advertise as LE HID device Listening for LE clients to connect (ESC=stop server) Advertising as D3:56:D6:74:33:04 HID device Wait for pair... PAIR OK Connected OK. Key presses sent to client. ESC stops server F10 sends Hello plus Enter</code><code> |
لپتاپ من روی Ubuntu از Bluetooth پشتیبانی نمیکند، بنابراین به Windows رفتم و کیبورد Bluetooth مبتنی بر Pi 500+ بهدرستی بهعنوان دستگاه “HID” شناسایی شد و بدون مشکل وصل شد.

اما هنگام تایپ، هیچ اتفاقی نمیافتاد. کد را طوری تغییر دادم که هنگام فشردن کلید، کد کیبورد چاپ شود؛ باز هم هیچ. آنجا بود که فهمیدم فرضم اشتباه بوده است: برنامه را در ترمینال SSH اجرا کرده بودم، درحالیکه کلیدها فقط روی Desktop گرفته میشوند. پس یک Terminal در Desktop سیستمعامل Raspberry Pi OS باز کردم و برنامه را دوباره اجرا کردم؛ این بار کار کرد.
این راهکار برای استفاده موقت عالی است، اما احتمالاً باید برای سازگاری با چیدمان کیبورد خودتان فایل keyboard.txt را ویرایش کنید. همچنین کلید Esc بهصورت پیشفرض برنامه را میبندد؛ بنابراین با فشردن آن، برنامه متوقف و اتصال از میزبان قطع میشود:
|
1 2 3 4 |
Key press stop server... Disconnecting 10:68:38:3A:0D:DB 10:68:38:3A:0D:DB has disconnected</code><code> |
این اتفاق برای من چند بار رخ داد و مجبور شدم برنامه را دوباره اجرا کنم. بنابراین توصیه میشود هنگام استفاده از قابلیت کیبورد Bluetooth، یک مانیتور وصل باشد؛ هم برای راهاندازی مجدد آسانتر، هم برای پایداری بهتر (اگر مانیتور وصل نکنم، کیبورد پس از مدتی قطع میشود).
برخی کلیدها کار نمیکنند؛ مثلاً کلید «Raspberry Pi/Windows»، و میانبرهایی مثل Alt+Tab گاهی عمل میکنند و گاهی نه. هنگام استفاده از کلیدهای جهت با Shift برای انتخاب کلمه هم کاراکترهای عجیبی دریافت میکنم: [1;2C یعنی Shift + Left arrow و [1;2D یعنی Shift + Right arrow. من شخصاً امتحان نکردهام، اما میتوان این جزئیات را با تغییر کد برای کیبورد خودتان اصلاح کرد. در هر حال، اگر بدون کیبورد کارآمد گیر افتادید، این یک راهحل موقت خوب است. این روش با Raspberry Pi 400 و 500 هم کار میکند.
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.