فارسی نویسی در آردوینو با کتابخانه u8g2
نوشته شده توسط آی دریمز در 17 سپتامبر 2019یکی از کتابخانه های بسیار پیشرفته که در زمینه راه اندازی طیف وسیعی از نمایشگرها (نمایشگرهای تک رنگ) در آردوینو ساخته شده است، کتابخانه u8g2 است. این کتابخانه ویژگی های منحصر به فردی دارد که یکی از آنها، پشتیبانی از زبان هایی مانند فارسی، عربی، ژاپنی و… است. علاوه بر این می توان از فونت و سایز دلخواه، برای نمایش کلمات استفاده کرد و هیچ محدودیتی در این زمینه وجود ندارد. حتی می توان فونت دلخواه برای آن طراحی کرد!
این کتابخانه بصورت پیش فرض در نمایش حروف فارسی یا عربی مشکل دارد و حروف را بصورت جدا از هم نمایش می دهد. برای رفع این مشکل توابعی نوشتم تا بتوان کلمات فارسی یا عربی را دوباره از ابتدا طراحی کرد و حروف را بصورت درست کنار هم قرار داد. برای استفاده از توابع نیاز به کار خاصی نخواهید داشت، کافیست کتابخانه u8g2 را بر روی آردوینو نصب کنید، نمایشگر خود را به بُرد آردوینو متصل کرده و سپس مثال معرفی شده را دانلود و روی بُرد خود آپلود کنید. (البته لازم است نوع نمایشگر و نحوه اتصال آن را در این خط ویرایش نمایید.) نتیجه بصورت تصویر بالا خواهد بود. امیدوارم توضیحات فوق، برایتان مفید بوده باشد.
این کتابخانه یا مثال، اختصاصاً برای کتابخانه u8g2 نوشته شده است اما می توان با کمی تغییرات در جاهای دیگر هم از آن استفاده کرد. برای قسمت های مختلف این کد، زحمات زیادی کشیده شده و می توان ادعا کرد، برای اولین بار است که در اینترنت، فارسی نویسی مستقیم روی نمایشگرهای LCD یا OLED با فونت و سایز دلخواه با کمک آردوینو، منتشر شده است، لذا استفاده از این کد بصورت شخصی و تجاری، صرفاً فقط با ذکر نام پدید آورنده، مجاز است.
لطفاً مشکلات یا سئوالات خود را در قسمت نظرات مطرح بفرمایید. اگر این کد زمان توسعه پروژه شما را کاهش داد و به شما کمک کرد، من را به یک فنجان قهوه، مهمان کنید.
علاوه بر این، قبلاً کتابخانه ای برای نمایش کلمات فارسی معرفی کرده بودم که دارای محدودیت سایز و فونت بود و سایز هر حرف، حداکثر 8 در 8 پیکسل بود و نمی توانستیم سایز یا نوع فونت کلمات را تغییر دهیم. این مشکل با معرفی روش بالا برطرف می شود.
سلام از این روش می توان برای ماژول p10 استفاده کرد .تابلو روان
توابعی که در این کد استفاده شده برای تمامی نمایشگر های پیکسلی (مثل P10) قابل استفاده هست.
ممکنه یک بزرگواری کنید و یک مثال از این مثال برای پی 10 بگذارید .خواهشمندم اینکار انجام دهید .
فکر می کنم بهتره از مثال زیر استفاده کنید. (مثال حاضر وابسته به فونت هست و پیاده سازیش سخته)
http://www.idreams.ir/%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d9%81%d8%a7%d8%b1%d8%b3%db%8c-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%b1%d9%88%db%8c-%d9%86%d9%85%d8%a7%db%8c%d8%b4%da%af%d8%b1%d9%87%d8%a7%db%8c-%d9%be%db%8c/
این مثال لطفا چک کنید خطا تبدیل میگیره ازش اردوینو
کدوم مثال ؟
سوالی دارید در تلگرام به آی دی زیر ارسال کنید:
@r_mbc_r
سلام
ممنون بابت مطلب بالا
میتونیم توی utf_lcd هم استفاده کنیم؟؟
سلام
تست نشده
نمایشگرتون چیه ؟ و اینکه باید ببینید می تونید از کتابخونه u8g2 استفاده کنید یا نه.
سلام ممنون بابت اشتراک گزاری فارسی نویسی خیلی دنبالش میگشتم
یه سوالی داشتم؟ من نمی تونم از مثال شما به صورت i2c در نمایشگر های oled i2c استفاده کنم در متلب قبلی با کتابخانه قبلی تونستم از فارسی نوشتن در oled i2c استفاده کنم ولی در این کتابخانه u8g2 هر کاری میکنم نمیشه با این کتابخانه oled i2c رو فارسی سازی کنم از مثال های این کتابخانه u8g2 که تو بخش example هست تونستم مثال hello word رو نمایش بدم رو نمایشگر oled i2c خودم ولی وقتی بخش تنظیم نوع نمایشگر i2c رو از مثال hello word کپی میکنم و به جای نوع نمایشگر شما که spi هست قرار میدم و اپلود میکنم کار نمیکنه هیچی نمایش نمیده ممنون میشم کمکم کنید این مشکلو حل کنم.
درود بر شما
نوع نمایشگرتون چیه و با چه سخت افزاری به نمایشگر متصل شدید ؟
سلام وقت بخیر
چطور میتونم این متن فارسی رو اسکرول کنم ؟ با u8g2
سلام
این مثال رو ببینید:
https://github.com/idreamsi/u8g2-persian-reshaper/blob/master/ScrollingText_u8g2/ScrollingText_u8g2.ino
سلام وقت بخیر
چطوز میتونم یک متن فارسی در پایتون رو با استفاده از پورت سریال و به کمک کتابخانه u8g2 چاپ کنم ؟
سلام
u8g2 فقط مختص زبان سی هست و ارتباطی با پایتون و … نداره. برای فارسی نویسی در پایتون باید از کتابخانه زیر استفاده کنید:
https://github.com/mpcabd/python-arabic-reshaper
با عرض سلام و وقت بخیر
من از OLED با درایور SSD1306 با ابعاد 128*32 و پروتکل I2C استفاده میکنم. ممکنه لطفا بفرمایید چطور خط مورد نظر در کد شما رو برای این سخت افزار تغییر بدم؟