چگونگی ساخت فونت دلخواه برای کتابخانه u8g2

نوشته شده توسط آی دریمز در 23 سپتامبر 2019

در آموزش قبل، نحوه نمایش کلمات فارسی بر روی نمایشگر با استفاده از کتابخانه u8g2 را یاد گرفتیم. در این پست می خواهم چگونگی ساخت فونت جدید (فونت فارسی) و استفاده از آن را در کتابخانه u8g2 آموزش دهم. همان طور که احتمالاً متوجه شدید کتابخانه u8g2 از فونت های BDF استفاده می کند که سایز و نوع فونت از قبل ساخته شده است به عبارت دیگر شما فونتی با سایز 14 ساخته اید حالا در برنامه نیاز دارید از فونتی با سایز بالاتر یا پایین تر استفاده کنید، برای این کار باید مجدد، فونتی با سایز مورد نظر خود، بسازید!

برای تبدیل فونت ها به فرمت قابل استفاده در کتابخانه u8g2 نیاز به دو ابزار داریم. ابتدا لازم است با استفاده از برنامه otf2bdf فونت خود را به فرمت bdf تبدیل نمایید. ابتدا برنامه otf2bdf را از اینجا دریافت نموده، سپس با دستور زیر فونت خود را تبدیل کنید. این برنامه در ویندوز و لینوکس تست شده است و قابل استفاده است.

otf2bdf.exe -r 72 -p 16 myfont.ttf -o myfont16.bdf

عدد 16 در اینجا سایز دلخواه فونت شماست که کلمات قرار است بر روی نمایشگر به این سایز، نمایش داده شود. همچنین myfont.ttf فونت ورودی و myfont16.bdf خروجی خواهد بود. عدد 72 رزولوشن یا کیفیت خروجی خواهد بود.

در مرحله بعد باید فایل bdf را به کمک برنامه bdfconv به فرمت قابل استفاده در کتابخانه u8g2 تبدیل کنیم. ابتدا برنامه bdfconv را دریافت نموده و سپس با دستور زیر، آن را تبدیل نمایید.

bdfconv -f 1 -v -m "32-65535" -n myfont16 -o myfont16.c myfont16.bdf

عدد 32 تا 65535 بازۀ کاراکترهای قابل تبدیل در فونت است که بهتر است این عدد را تغییر ندهیم تا تمام کاراکترهای مورد نیازمان تبدیل شود. اگر از سیستم عامل ویندوز استفاده می کنید حتما از دابل کوتیشن برای تعیین بازۀ کاراکترها استفاده کنید.

myfont16.c نام فایل خروجی خواهد بود و myfont16 نام متغیری است که اطلاعات تبدیل شده را در فایل c نگهداری می کند. برای اطلاع از سایر پارامترها از دستور help استفاده نمایید. در پایان برای استفاده از این فونت در برنامه، یا محتویات آن را در فایل پروژه تان وارد کنید یا با دستور

include myfont16.c#

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

(u8g2.setFont(myfont16

نکته: در اکثر مواقع بعد از تبدیل فونت، اشکالاتی هنگام نمایش برخی از حروف روی نمایشگر مشاهده می شود. بهتر است برای رفع ایرادات احتمالی از برنامه FontForge استفاده کنید و حروف را تصحیح نمایید. علاوه بر این، طبق توضیحات نویسنده u8g2 برخی سایزها در یک فونت بعد از تبدیل، دارای ایراد هستند که با تغییر سایزِ فونت و یا تغییر پارامترها، ممکن است اشکالات برطرف می شود.

نکته: همان طور که قبلاً اشاره شد کتابخانه u8g2 فقط بر روی نمایشگرهای تک رنگ قابل استفاده است و برای نمایشگرهای رنگی نمی توان از این کتابخانه استفاده کرد.

10 دیدگاه دسته‌بندی : آردوینو, آموزش

فارسی نویسی در آردوینو با کتابخانه u8g2

نوشته شده توسط آی دریمز در 17 سپتامبر 2019

یکی از کتابخانه های بسیار پیشرفته که در زمینه راه اندازی طیف وسیعی از نمایشگرها (نمایشگرهای تک رنگ) در آردوینو ساخته شده است، کتابخانه u8g2 است. این کتابخانه ویژگی های منحصر به فردی دارد که یکی از آنها، پشتیبانی از زبان هایی مانند فارسی، عربی، ژاپنی و… است. علاوه بر این می توان از فونت و سایز دلخواه، برای نمایش کلمات استفاده کرد و هیچ محدودیتی در این زمینه وجود ندارد. حتی می توان فونت دلخواه برای آن طراحی کرد!
این کتابخانه بصورت پیش فرض در نمایش حروف فارسی یا عربی مشکل دارد و حروف را بصورت جدا از هم نمایش می دهد. برای رفع این مشکل توابعی نوشتم تا بتوان کلمات فارسی یا عربی را دوباره از ابتدا طراحی کرد و حروف را بصورت درست کنار هم قرار داد. برای استفاده از توابع نیاز به کار خاصی نخواهید داشت، کافیست کتابخانه u8g2 را بر روی آردوینو نصب کنید، نمایشگر خود را به بُرد آردوینو متصل کرده و سپس مثال معرفی شده را دانلود و روی بُرد خود آپلود کنید. (البته لازم است نوع نمایشگر و نحوه اتصال آن را در این خط ویرایش نمایید.) نتیجه بصورت تصویر بالا خواهد بود. امیدوارم توضیحات فوق، برایتان مفید بوده باشد.

این کتابخانه یا مثال، اختصاصاً برای کتابخانه u8g2 نوشته شده است اما می توان با کمی تغییرات در جاهای دیگر هم از آن استفاده کرد. برای قسمت های مختلف این کد، زحمات زیادی کشیده شده و می توان ادعا کرد، برای اولین بار است که در اینترنت، فارسی نویسی مستقیم روی نمایشگرهای LCD یا OLED با فونت و سایز دلخواه با کمک آردوینو، منتشر شده است، لذا استفاده از این کد بصورت شخصی و تجاری، صرفاً فقط با ذکر نام پدید آورنده، مجاز است.
لطفاً مشکلات یا سئوالات خود را در قسمت نظرات مطرح بفرمایید. اگر این کد زمان توسعه پروژه شما را کاهش داد و به شما کمک کرد، من را به یک فنجان قهوه، مهمان کنید.

علاوه بر این، قبلاً کتابخانه ای برای نمایش کلمات فارسی معرفی کرده بودم که دارای محدودیت سایز و فونت بود و سایز هر حرف، حداکثر 8 در 8 پیکسل بود و نمی توانستیم سایز یا نوع فونت کلمات را تغییر دهیم. این مشکل با معرفی روش بالا برطرف می شود.

14 دیدگاه دسته‌بندی : آردوینو, آموزش

انتشار کتاب آموزش زبان C از سوی بنیاد رزبری پای

نوشته شده توسط آی دریمز در 25 آوریل 2019
تصویری از جلد کتاب

بنیاد رزبری پای به تازگی کتاب رایگان آموزش زبان C را معرفی کرد. حتی اگر یک مبتدی باشید این کتاب تمام چیزهایی که برای نوشتن یک برنامه ساده در زبان C نیاز خواهید داشت را به شما می آموزد.

بخش اول کتاب، مقدمه ای بر زبان C است و اصول اولیه نوشتن برنامه های command-line را پوشش می دهد. در بخش دوم چگونگی استفاده از GTK برای ساختن رابط کاربری را شرح می دهد تا بتوان برنامه هایی برای اجرا روی محیط دسک تاپ داشت.

دریافت کتاب

اجرای بازی های کنسول بر روی رزبری پای و سایر بُردها

نوشته شده توسط آی دریمز در 22 آوریل 2019

روش های زیادی برای اجرای بازی های کنسول های قدیمی (Retro) روی بُردهای توسعه مانند رزبری پای وجود دارد. در این میان می توان به سیستم عامل های RetroPie، RetrOrangePi، Lakka، Recalbox اشاره کرد که هر یک ویژگی های خاص خود را دارد و تجربه مفرحی را برای کاربر فراهم می سازد. براحتی با مراجعه به سایت سازنده هر یک، می توانید ایمیج متناسب با رزبری پای یا سایر بُردها را دریافت کنید.
به تازگی سیستم عامل Batocera.Linux به صورت اوپن سورس (برای اجرای بازی های Retro) منتشر شده است که قابلیت اجرا روی کامپیوترهای عادی را نیز دارا می باشد و طیف وسیعی از SBC را پشتیبانی می کند.

وضعیت اجرای هر یک از شبیه سازهای بازی های کنسول روی بُردهای مختلف در سیستم عامل Batocera.Linux

در کنار قابلیت اجرای بازی های کنسول، این سیستم عامل دارای Kodi برای تماشای ویدیو یا گوش کردن موسیقی نیز می باشد. پیشنهاد می کنم این سیستم عامل را امتحان کنید.

ساخت دوربین حیات وحش با کمک رزبری پای

نوشته شده توسط آی دریمز در 15 آوریل 2019

اگر شما هم یکی از دوستداران طبیعت و حیوانات هستید حتماً تمایل زیادی خواهید داشت تا بتوانید از پرندگان یا حیوانات اطراف خود، تصویربرداری کنید. مانند تصاویری که در شبکه های مستند از نمای نزدیک تهیه شده است. فرض کنید پرنده ای در حال خوردن غذا است و بصورت خودکار از آن عکس گرفته شود. گروهی از علاقمندان دستورالعملی برای ساخت دوربینی توسط رزبری پای ارائه داده اند که با کمک این پروژه (که بصورت رایگان با راهنمای ساخت تصویری منتشر شده است) می توانید با داشتن یک رزبری پای و یک دوربین رسمی و همچنین سایر متعلقات، دوربین حیات وحش بسازید تا در صورت نزدیک شدن و حرکت حیوانات یا پرندگان به دوربین، بصورت خودکار تصویر پرنده یا حیوان گرفته شود و در حافظه رزبری پای ذخیره شود یا حتی می توانید دوربین را به کمک وای فای و از طریق گوشی خود (بدون نصب هیچ گونه برنامه اضافی) کنترل کنید یا اینکه تصاویر زنده از دوربین داشته باشید!

اگر به این پروژه علاقمند هستید به وب سایت آن مراجعه کنید و از ساخت آن لذت ببرید.

نصب ویندوز 10 کامل روی رزبری پای

نوشته شده توسط آی دریمز در 11 آوریل 2019

بسیاری از دوستداران رزبری پای، علاقمند هستند در کنار سیستم عامل لینوکس، تجربه ای از اجرای سیستم عامل ویندوز 10 کامل (نه نسخه IoT) را روی این بُرد تجربه کنند. با توجه به ساختار پردازنده رزبری پای (پردازنده آن از نوع ARM است)، مسلماً نمی توان ویندوز 10 عادی روی این بُرد نصب کرد، حال راه حل چیست ؟ آیا راهی برای نصب ویندوز 10 کامل وجود دارد ؟

گروهی از برنامه نویسان راه حلی برای اینکار ارائه کرده اند که می توان ویندوز 10 کامل نسخه ARM را روی رزبری پای 3 و بالاتر تجربه کرد.

برای اطلاعات بیشتر و نحوه انجام اینکار، به صفحه گیت هاب این پروژه مراجعه کنید.

راهنمای فارسی نویسی روی نمایشگرهای پیکسلی در آردوینو

نوشته شده توسط آی دریمز در 9 آگوست 2018

چند وقت پیش کتابخانه ای برای فارسی نویسی روی نمایشگرهای پیکسلی در آردوینو معرفی کردم. برخی از دوستان برای استفاده از این توابع دچار مشکل شدند که در این آموزش به شرح نحوه استفاده از این توابع می پردازیم.

نکته ای که همین ابتدا لازم به ذکر است اینکه در این روش نیاز هست کتابخانه نمایشگرِ شما حتماً تابعی به نام writepixel داشته باشد تا بتوان در هر نقطه از نمایشگر، پیکسلی با رنگ دلخواه رسم کرد. بیشتر کتابخانه های مطرحِ نمایشگرها (مانند Adafruit SSD1306) این تابع را دارند و جای نگرانی نیست.

برای شروع کار ابتدا این فایل را دریافت نموده و آن را با آردوینو باز نمایید. در این مثال من از یک نمایشگر 64×128 پیکسل با درایور SSD1306 و رابط SPI استفاده کردم که بسیار معمول هست و در بازار ایران به وفور یافت می شود. در صورت تمایل می توانید از سایر نمایشگر های پیکسلی مانند نمایشگر 5110 نیز استفاده کنید.

همان طور که مشاهده می کنید من از کتابخانه های Adafruit SSD1306 و Adafruit GFX library برای نمایش نوشته ها و رسم اشکال استفاده کردم. پس لازم است این دو کتابخانه مطابق تصویر به آردوینو اضافه نمایید.

در پنجره Library Manager و کادر جستجو بالای آن (مطابق تصویر زیر)، نام کتابخانه ای که می خواهید نصب کنید بنویسید. بلافاصله در لیست زیر کادر جستجو، کتابخانه مورد نظر نمایش داده می شود. آن را انتخاب و کلید Install بزنید. بعد از زمان اندکی مراحل نصب به اتمام می رسد و کتابخانه به لیست کتابخانه های آردوینو اضافه خواهد شد. (این مراحل را برای نصب هر دو کتابخانه اشاره شده انجام دهید.)

اگر تمام مراحل را درست انجام داده باشید می توانید با زدن کلید کامپایل (کلیدی که در تصویر زیر با رنگ زرد هایلایت شده) از صحت نصب کتابخانه ها مطمئن شوید.

در ادامه به بررسی کدها می پردازیم، همان طور که در خطوط 18 تا 21 کدها مشاهده می کنید نوع اتصال نمایشگر من با آردوینو، از طریق SPI می باشد. اگر نمایشگر شما از نوع i2c است این قسمت را کامنت کنید و خطوط 25 و 26 را از کامنت خارج کنید.

در خطوط 11 تا 15 برای راحتی کار، چند تابع کوچک و دم دستی تعریف کردیم که باعث عملکرد سریعتر برنامه نویس خواهد شد. همان طور که ابتدای این آموزش توضیح دادم تمام مراحل نوشتن کاراکترهای فارسی روی نمایشگر توسط تابع writepixel در خط 11 انجام می شود.

اگر از نمایشگر و کتابخانه ای غیر از کتابخانه Adafruit SSD1306 استفاده می کنید حتما این خط را ویرایش کنید. در خط 12 عرض نمایشگر مورد استفاده تان را تعریف کنید. چون من از نمایشگر 64×128 پیکسل استفاده کردم در اینجا، هم می توانم عدد 128 را به عنوان عرض نمایشگر وارد کنم و هم می توانم، در فایل نصب شده کتابخانه Adafruit SSD1306 که بصورت پیش فرض در مسیر (C:\Users\ramin\Documents\Arduino\libraries\Adafruit_SSD1306\Adafruit_SSD1306.h) قابل مشاهده است (خطوط 73 تا 75)، سایز نمایشگر را تغییر دهم تا کتابخانه بصورت خودکار و با استفاده از تابع width عرض نمایشگر را در هر کجای برنامه برایم فراهم کند. خطوط 13 تا 15 به ترتیب برای تراز بندی وسط، راست و چپ متن مورد استفاده قرار می گیرد.

در پایان برای نمایش متن فارسی روی نمایشگر، از خطوط 158 و 161 استفاده می کنیم. برای نمایش اعداد لازم است رشته اعداد را ابتدا معکوس کنید که این کار توسط تابع strreverse انجام می شود. در انتها چون از کتابخانه Adafruit SSD1306 استفاده کردیم با استفاده از خط 164 خروجی را به نمایشگر می فرستیم.

امیدوارم توضیحات فوق، مفید بوده باشد. در صورت هر گونه مشکل یا سئوال لطفاً در قسمت نظرات مطرح بفرمایید. اگر این کد زمان توسعه پروژه شما را کاهش داد و به شما کمک کرد من را به یک فنجان قهوه، مهمان کنید 🙂

21 دیدگاه دسته‌بندی : آردوینو, آموزش

حذف کامل سیستم عامل مک و نصب ویندوز

نوشته شده توسط آی دریمز در 5 جولای 2018

مدتی پیش یکی از دوستان مشکل نصب ویندوز 10 روی آیمک (iMac) داشت و می خواست بطور کامل سیستم عامل مک را حذف کند و ویندوز را جایگزین کند. یکی از راههای معمول استفاده از Boot Camp هست. اما در این روش ویندوز در کنار مک نصب خواهد شد. بنا به دلایلی، این دوست عزیز، فقط و فقط می خواست ویندوز روی آیمک داشته باشد. پس از تست روش های مختلف، روش زیر با موفقیت روی آیمک جواب داد.

در این روش لازم است یک دی وی دی اورجینال سیستم عامل مک داشته باشید، نسخه خیلی مهم نیست، من از نسخه Lion استفاده کردم. دیسک را درون سیستم قرار داده و دستگاه را ریست نمایید. کلید C را فشار داده تا دستگاه از روی دیسک بوت شود. لازم نیست وارد مراحل نصب شوید. از منوی Utilities گزینه Disk Utility را انتخاب کنید. حالا هارد دیسک خود را انتخاب کنید و وارد تب Partition شوید. کلید Options را بزنید و گزینه Master Boot Record را انتخاب و عملیات را OK کنید. از منوی کشویی Volume Scheme یک پارتیشن را انتخاب کنید و با انتخاب MS-DOS FAT از منوی کشویی Format و زدن کلید Apply تغییرات را اعمال کنید.

دستگاه را دوباره ریست کنید و کلید ALT یا Option را نگه دارید. زمانی که منوی گرافیکی انتخاب دیسک ظاهر شد دیسک مک را از دستگاه خارج کنید و دی وی دی ویندوز را درون دستگاه قرار دهید (در اینجا من از دیسک ویندوز 10 استفاده کردم.) بعد از حدود چند ثانیه دیسک Load شده و قابل انتخاب خواهد بود. حالا می توانید براحتی ویندوز را روی مک نصب کنید.

آخرین اخبار پیرامون رزپری پای

نوشته شده توسط آی دریمز در 2 دسامبر 2017

بنیاد رزپری پای به تازگی اقدام به انتشار مجله ای با عنوان HackSpace نموده است. این مجله مجموعه ای از پروژه های متنوع الکترونیک را شامل می شود که پیشنهاد می کنم حتما نسخه اول آن را از اینجا دریافت نمایید.

نسخه سوم از کتاب Projects Book هم به تازگی منتشر شده است که مجموعه ای از پروژه های انجام شده توسط رزپری پای را آموزش می دهد. این کتاب نیز از این لینک قابل دریافت است.

همچنین شماره 64 مجله The MagPi نیز به تازگی منتشر شده است که از اینجا قابل دریافت است.

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

شماره 63 مجله The MagPi

نوشته شده توسط آی دریمز در 31 اکتبر 2017

شماره 63 مجله The MagPi منتشر شد.
اگر شما هم یکی از علاقه مندان بُرد رسپبری پای هستید، به رایگان می توانید، نسخۀ الکترونیک مجلۀ The MagPi را دریافت نمایید. این مجله به زبان انگلیسی و بصورت ماهانه منتشر می شود که شامل جدیدترین پروژه ها و آموزش های مرتبط با رسپبری پای، آموزش برنامه نویسی، معرفی ماژول های مرتبط و… می باشد. شماره ی 63 این مجله را، از لینک زیر دریافت کنید.

دانلود