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

نوشته شده توسط رامین در 1 مهر 1398

در آموزش قبل، نحوه نمایش کلمات فارسی بر روی نمایشگر با استفاده از کتابخانه 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

نوشته شده توسط رامین در 26 شهریور 1398

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

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

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

چگونه در کوادکوپترهای DJI به حالت FCC سوییچ کنیم؟

نوشته شده توسط رامین در 6 مرداد 1398

توجه: این آموزش مخصوص کسانی تهیه شده است که کوادکوپتر DJI دارند و از گوشی یا تبلت اندرویدی استفاده می کنند!
برای افرادی که در غیر از قاره امریکا زندگی می کنند (مانند ما که در ایران هستیم) محدودیت های (قوانین) پروازی متفاوتی وجود دارد که یکی از آنها به زبان ساده تر این است که کوادکوپتر شما حین پرواز، بُرد کمتری نسبت به کسی که در قاره امریکا زندگی می کند، دارد!

برای مثال کسی که در امریکا زندگی می کند می تواند اسپارک را تا فاصله یک کیلومتری از ریموت کنترل دور کند اما در ایران و اروپا این فاصله نهایتا 500 متر است! (البته این فقط یک مثال برای فهمیدن موضوع است و اعداد بصورت فرضی بیان شده است.)
در حالت عادی زمانی که در ایران (غیر از امریکا) کوادکوپتر خود را فعال کنید و برنامه DJI Go را اجرا می کنید بر روی حالت یا استاندارد CE خواهید بود و این باعث می شود بُرد پروازی پرنده شما کمتر باشد. مسلماً این محدودیت آزار دهنده خواهد بود. برای رفع این محدودیت باید به حالت FCC برویم. انجام این کار بسیار ساده است و به سادگی با تغییر لوکیشن اتفاق می افتد. با من همراه باشید:
1- ابتدا لازم است یک اپلیکشین Fake GPS بر روی گوشی خود نصب کنید. کافیست عبارت گفته شده را در گوگل تایپ کنید تا به انبوهی از این نرم افزارها برسید.
2- حالت Developer را در گوشی خود فعال کنید.
3- عبارت “Mock Locations” یا “Select Mock Location app” را در Developer Options انتخاب کنید و اپلیکیشنی که برای Fake GPS نصب کرده اید را انتخاب کنید.
4- اپلیکشین Fake GPS را اجرا کرده و لوکیشن را بر روی امریکا قرار دهید و کلید “استارت” را بزنید.
5- کوادکوپتر و ریموت را روشن کنید و به پرنده متصل شوید.
6- برنامه DJI Go را اجرا نمایید. بلافاصله بعد از اجرا عبارتی مطابق تصویر زیر می بینید. گزینه “Yes” یا “OK” را انتخاب کنید.

7- بعد از این کار، برای سوییچ به حالت FCC ، پرنده و ریموت کنترل، ری استارت خواهند شد. دوباره به پرنده متصل شوید و برنامه Fake GPS را خاموش کنید. دیگر به این برنامه نیاز ندارید. فقط هر بار که برنامه DJI Go را اجرا می کنید از شما می خواهد به حالت قبل یعنی CE سوییچ کنید که کنسل را بزنید.
8- تبریک میگم، کار با موفقیت به پایان رسید.

رزبری پای 4 عرضه شد

نوشته شده توسط رامین در 3 تیر 1398

بنیاد رزبری پای، امروز نسخه چهارم رزبری پای را رونمایی کرد که در مقایسه با نسخه قبل، شاهد بهبودهای سخت افزاری زیادی هستیم. رزبری پای نسخه 4 همچنان از نظر سایز و شکل ظاهری مشابه نسخه های قبل است؛ البته علاوه بر ارتقای سخت افزاری، شاهد تغییراتی نظیر جابجایی پورت شبکه و یو اس بی ها و افزوده شدن دو خروجی تصویر میکرو اچ دی برای نمایش دو تصویر همزمان و تأمین برق از طریق پورت تایپ سی هستیم.
لیست مشخصات کامل رزبری پای جدید، در تصویر زیر قابل مشاهده است. رزبری پای 4 بی (Raspberry Pi 4B) در 3 نسخه با رم های 1، 2 و 4 گیگ که به ترتیب با قیمت های 35، 45 و 55 دلار قبل تهیه است.

تبدیل گوشی های قدیمی به دوربین مدار بسته

نوشته شده توسط رامین در 25 خرداد 1398

همۀ ما در منزل ممکن است یک گوشی اندرویدِ از رده خارج داشته باشیم که دیگر نیازی به آن نداشته و حالا در گوشه ای از کمد یا … خاک می خورد! یک راه حل این است که چون همۀ گوشی های اندروید دارای دوربین نیز هستند آنها را تبدیل به دوربین مداربسته، برای دیدن تصاویر از راه دور کنیم.

چند هفته پیش برنامه جالبی دیدم که در این فرصت اون را معرفی می کنم، امیدوارم به درد دوستان بخورد. اپلیکیشن eWelink برنامه پیش فرض شرکت چینی Itead برای کنترل محصولات تولیدی این شرکت (نظیر لامپ های هوشمند، سوییچ ها و…) از راه دور است. این شرکت در آخرین آپدیت این نرم افزار، قابلیت جدیدی را عرضه کرده است که می توانید با نصب اپلیکیشن eWelink Camera بر روی گوشی قدیمی خود و نصب eWelink بر روی گوشی اصلی خود بصورت مجزا، تصاویر دوربین گوشی قدیمی خود را از هر جای دنیا مشاهده کنید!

eWelink Camera

پس ابتدا روی گوشی اصلی خود اپلیکیشن eWelink را نصب کنید و بر روی گوشی دوم و بلا استفاده برنامه eWelink Camera را نصب کنید. فقط دقت نمایید روی هر دو گوشی باید با یک اکانت لاگین نمایید. برای ساخت اکانت جدید از نرم افزار eWelink استفاده نمایید. خوشبختانه هیچ محدودیتی برای کاربران ایرانی وجود ندارد.

در انتها وارد برنامه eWelink شوید و از لیست دوربین ها، دوربین مورد نظر خود را مطابق تصویر پایین انتخاب کنید. همان طور که مشاهده می کنید تصاویر دوربین گوشی قدیمی از طریق اپلیکشین قابل دریافت است.

eWelink

برای ارسال پیام صوتی می توانید، با زدن کلید Talk صدای خود را بصورت زنده از طریق اسپیکر گوشی قدیمی پخش نمایید.

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

نوشته شده توسط رامین در 5 اردیبهشت 1398
تصویری از جلد کتاب

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

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

دریافت کتاب

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

نوشته شده توسط رامین در 2 اردیبهشت 1398

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

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

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

نحوه ساخت کابل آپدیت فریمور شارژرهای ISDT

نوشته شده توسط رامین در 29 فروردین 1398

حرفه ای ها برای شارژ باتری های لیتیوم و … معمولاً از شارژرهای مطرح بازار استفاده می کنند. شرکت چینی ISDT یکی از بهترین ها شرکت ها در زمینه تولید انواع شارژر در دنیا است که با توجه به قیمت مناسب محصولات این شرکت، مورد توجه بسیاری از علاقمندان قرار گرفته است.


اغلب این شارژرها، از طراحی متفکرانه ای برخوردار هستند که در عین ساده بودن، حتی برای کاربرانی که برای اولین بار از دستگاه شارژر استفاده می کنند، امکانات پیشرفته شارژ را فراهم می سازد تا بتوانند به راحتی از این شارژر استفاده کند.
کنترل ساده شارژر این امکان را فراهم می سازد تا به سرعت بتوان شارژر را برای استفاده مطلوب برنامه ریزی کرد و ابعاد کوچک اغلب شارژر های تولیدی توسط ISDT باعث شده است تا در هر جعبه ابزاری جا بگیرند.
این شارژر ها دارای Firmware هستند که شرکت سازنده بصورت منظم برای هر مدل Firmware را آپدیت و عرضه می کند که برای آپدیت کردن شارژر نیاز به یک آداپتور USB مطابق تصویر زیر است که باید جداگانه تهیه شود. قیمت این آداپتور حدود 7 دلار است که باتوجه به نرخ دلار، هزینه نسبتاً زیادی است.

در این مجال قصد ندارم در مورد انواع شارژر های ISDT توضیح دهم بلکه هدفم این است تا راهی برای ساخت این آداپتور که برای آپدیت Firmware شارژر های ISDT نیاز است، معرفی کنم.
اگر به تصاویر آداپتورِ آپدیتِ فریمور دقت کنید، می بینید که این آداپتور از دو قسمت تشکیل شده است: قسمت اول که یک سر آن USB است و همانند یک فلش است و قسمت دوم که یک کابل دو سر استریو است که در دو طرف دارای دو فیش 3.5 میلی متری (4 پین) است که یکی به شارژر و دیگری به قسمت اول، متصل می شود.

در واقع قسمت جداگانه آداپتورِ آپدیتِ فریمور که بصورت USB است یک تبدیل FTDI Programmer است. حال برای ساخت این آداپتور فقط نیاز به یک فیش 3.5 میلی متری (4 پین) و یک FTDI Programmer و مقداری سیم دارید.

در ادامه تصاویر را دنبال کنید.

همان طور که در تصاویر مشاهده می کنید فقط به سه سیم نیاز است و قسمت DTR بلا استفاده است. کافیست سیم های متصل به فیش 3.5 میلی متری را به FTDI Programmer متصل کنیم. برای راحتی کار بهتر است سیم های متصل به فیش 3.5 میلی متری را لیبل گذاری کنید. سیم RX به پین TX آداپتور FTDI، سیم TX را به پین RX و سیم GND را به پین GND آداپتور FTDI متصل کنید. در پایان نیاز است درایور FTDI Programmer را نیز نصب کنید.
برای آپدیت فریمور لازم است آخرین نسخه فریمور شارژر خود به همراه نرم افزار SCU را از اینجا دانلود کنید. فیش 3.5 میلی متری را به شارژر و FTDI Programmer را به کامپیوتر متصل کنید.

شارژر را روشن کنید (توسط باتری یا کابل برق) و سپس کلید Update Now را در برنامه SCU را بزنید، منتظر باشید تا عملیات آپدیت فریمور به پایان برسد.

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

نوشته شده توسط رامین در 26 فروردین 1398

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

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

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

نوشته شده توسط رامین در 22 فروردین 1398

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

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

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