کتابخانه فارسی نویسی ورژن آرم

جمعه,۲۶ اسفند, ۱۳۹۰ ۱۰:۰۲

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

بلاخره پس از مدت طولانی که مشغله فراوان مانع از کار بر روی کتابخانه فارسی نویسی می شد . بلاخره امروز فرصتی پیش اومد که این کتابخانه را  کنم ، اگر دوستان با این کتابخانه آشنایی ندارن میتونن به صفحه مربوط به این کتابخانه مراجعه کنند. ورژن قبلی که برای کار بر روی AVR بود ، صرفا جهت برطرف کردن نیاز متون فارسی به صورت دینامیک بر روی نمایشگر های پیکسلی بود ولی با توسعه سخت افزار ها و بالا رفتن سطوح برنامه نویسی و همچنین با توجه به نیاز بازار داخلی ، بر آن شدیم که این کتابخانه رو گسترش بدم و امکانات اون رو بیشتر از پیش توصعه دهم که حاصل این توسعه به وجود آمدن ورژن جدید این کتابخانه هست، از قابلیت های منحصر به فرد این ورژن سازگاری کامل با تمام  پردازنده های آرم هست ، این کتابخانه بدون هیچ تغییری با انواع پردازنده های آرم قابل کامپایل است (arm7-arm11) این ورژن همچنین سازگاری کامل با کامپایلر keil داشته و به راحتی میتوان در محیط این کامپایلر متون فارسی خود را تایپ نمایید و نگران وارد کردن یونی کد نباشید.

قابلیت های این ورژن:

  1. فونت پذیری فارسی و اینگلیسی
  2. پشتیبانی کامل از فونت های دینامیک
  3. ساپورت رنگ برای خود نوشته و بک گراد نوشته
  4. داری دو مود نمایشی
  5. اضافه شدن قابلیت نمایش اعداد فارسی و لاتین
  6. اضافه شدن فرمان printf برای سادگی کارکرد
  7. پشتیبانی فونت تا ارتفاع نامحدود
  8. لود فونت از حافظه خارجی (هنوز ریلیز نشده).
  9. عدم وابستگی به نمایشگر(قابل استفاده برای تمام نمایشگر های گرافیکی)

این ورژن که مشهور به ورژن تجاری هست با قیمت ۹۵ هزار تومان عرضه خواهد شد.

و ورژن دانشجویی اون هم قابلیت بند های ۳و۴و۶و۷و۸و فونت پذیری لاتین را ندارد با قیمت ۴۰ تومان عرضه خواهد شد.

برای خریداری هر کدام از ورژن ها با شماره ۰۹۳۹۴۳۸۱۸۱۱ و یا از صفحه تماس با ما اقدام نمایید.

در ضمن به مناسبت نوروز تا ۱۵ فروردین ۱۳۹۱ این کتابخانه ها با ۱۵ درصد تخفیف عرضه خواهند شد.

و کسانی که بورد آموزشی تیم کویرالکترونیک را خریداری کرده باشند از ۱۰ درصد تخفیف برخوردار خواهند شد.

پس کسانی که تا ۱۵ فروردین ۱۳۹۱ قصد خرید بورد آموزشی تیم کویرالکترونیک و  این کتابخانه را داشته باشند ۲۵ درصد تخفیف دریافت خواهند کرد.

 

کتابخانه ریموت کدلرنینگ

شنبه,۲۲ بهمن, ۱۳۹۰ ۱۳:۱۳

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

کنترل از طریق امواج رادیویی خود به دسته های مختلفی رده بندی می شوند ، امواج با فرکانس پایین در حدود ۲۰ الی ۳۰ مگاهرتز و کنترل توسط امواج با فرکانس متوسط در بازه ۲۰۰ تا ۵۰۰ مگاهرتز و فرکانس بالا که از بالای ۵۰۰ مگاهرتز شروع می شوند.

نوع معمول و پر استفاده – کنترل هایی با فرکانس ۳۱۵ و ۴۳۸ مگاهرتز هست که به عنوان ریموت های در باز کن ، یا دزدگیر ماشین یا هر وسیله کنترلی که نیاز به کنترل از فاصله نزدیک داشته باشد مورد استفاده قرار می گیرد. این ریموت ها برای این که با هم تداخل نداشته باشند(به دلیل فرکانس کاری یکسان) هر یک دارای یک کد منحصر به فرد می باشند و با توجه به ۲۰ بیتی بودن این کد در حدود یک میلیون ریموت در یک محدوده قابل تعریف هستند.این ریموت ها به دو دسته ریموت های fix و lern دسته بندی میشوند ، ریموت های FIX بر اساس چیپست PT2262 کار میکنند که برای راه اندازی آنها باید در ریموت خریداری شده یک سری پایه ها را لحیم کرد که به منزله کد ریموت محصوب می شود، راه اندازی این ریموت ها بسیار ساده است و با استفاده از آیسی PT2272 به راحتی میتوان کدهای ارسالی توسط این ریموت ها را دکد کرد.

دسته دیگر که به ریموت های LERN معروف هستند؛ هر کدام از این ریموت ها کد مخصوص خودشان را دارند چون با  OTP “one time programmable” Encoder اطلاعات ارسالی را کد گذاری می کنند OTP Encoder چیپ هایی هستند که در ریموت های فرسنده قرار دارند و وقتی شما کلیدی را فشار می دهید کد آدرس ریموت به اضافه کد کلید فشرده شده را به ماژول فرسنده رادیویی می دهد تا اطلاعات برای گیرنده اسال شود . که با توجه به پرتکل مورد استفاده این ریموت ها دکد کردن کد ارسالی به سادگی مقدور نبوده و برای این مهم باید از برنامه ای استفاده کرد که قادر به شناسایی و دکد باشد. این برنامه باید قادر به حذف نویز محیط باشد و بتواند کد مربوطه را به صورت صحیح استخراج کند.

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

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

توابع :

init_remote

این تابع کتابخانه را پیکر بندهی و آماده استفاده می کنید.

get_remote

این تابع کد و داده مربوط به ریموت را بر می گرداند.

تذکر مهم: این کتابخانه قادر به لرن کردن نیست ! تنها داده های دریافتی را دکد کرده و در اختیار قرار میدهد که به راحتی می توان با اضافه کردن کد های دلخواه ریموت را لرن کرد یا هر دستور لازمی را ارسال کرد بسته به داده وارده.

در حال حاضر این کتابخانه برای کامپایلر کدویژن موجود بوده و البته برای میکرو های

ATMEGA8 , ATMEGA16 , ATMEGA32 در دسترس است.

این کتابخانه رایگان و متن باز نیست و برای تهیه آن باید مبلغ ۵ هزار تومان پرداخت کنید که البته قیمت آن از یک ریموت کدلرنینگ کمتر است.

برای خریداری باشماره تماس ۰۹۳۹۴۳۸۱۸۱۱ (ساعت تماس فقط از ۱۶ الی ۲۱)و یا از طریق فرم تماس با ما اقدام فرمائید.

شارژر کامل باطری های اسیدی

دوشنبه,۸ فروردین, ۱۳۹۰ ۲۰:۳۱
battry charger

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

  1. دو مود شارژی FAST و FLOAT
  2. کنترل گر جریان با قابلیت غیر فعال سازی
  3. نشانگر وظعیت شارژ و بیان به درصد
  4. دو کانال نمایش سیگنال جهت موارد خاص

این شارژر از دو مود شارژی FAST , FLOAT استفاده میکند . مود FAST جهت شارژ آرام باطری تا ۹۸ درصد شارژ ظرفیت باطری میباشد که با جریان ۴ آمپر (در صورت فعال بودن کنترلر جریان)به شارژ باطری اقدام میکند و بعد از تکمیل شدن فرایند شارژ تا ۹۸ درصد شارژر به صورت اوتوماتیک به مود Float میرود و با جریان کم ادامه شارژ را دنبال میکند این روش شارژ باعث نگه داری بهتر شارژ باطری شده و از تخلیه آن جلوگیری میکند.

این شارژر همچنین قابلیت نمایش ولتاژ خالص باطری و میزان شارژ آن را دارا میباشد که میتواند در فرایند شارژ مورد استفاده قرار گیرد و از صحت باطری اطمینان حاصل کرد:

یکی دیگر از قابلیت های منحصر به فرد این شارژر محدود کننده جریان آن میباشد که این امکان را به ما می دهد که بتوانیم از این شارژر در مواردی که جریان دهی محدودی داریم استفاده کنیم مثل شارژ توسط سلول های خورشیدی و یا هر منبع دیگری با محدودیت جریان در صورت فعال بودن محدود کننده جریان جریان مصرفی از ۴ آمپر بیشتر نخواد شد و در صور غیر فعال کردن این قابلیت شارژر با تمام توان کار خواهد کرد:

و دیگر قابلیت های این مدار دو کانال نمایش سیگنال است که میتوان از آن برای نظارت بر فزایند شارژ و کنترلگر جریان از آن استفاده کرد.

دانلود سورس + فایل شبیح ساز:

Full Battry Charger (420)

راه اندازی LCD گرافیکی با ARM فیلیپس

دوشنبه,۸ فروردین, ۱۳۹۰ ۱۶:۳۷

سلام به تمام دوستان ، بعد از مدت ها بلاخره با مطلب جدیدی خدمت میرسم ، حتما همه شما با نمایشگر های گرافیکی کار کرده اید نمایشگر های چون T6963, T6963C  ,Ks0108 و کنترلرهای مختلف دیگر ، اما راه انداری این نمایشگر ها با پردازنده های ARM چندان ملموس و رواج یافته نیست. در این پست مثالی از راه اندازی نمایشگر T6963 و LPC2138 که ARM فیلیپس هست قرار میدم امیدوارم که مورد توجه شما عزیزان قرار گیرد.

کتابخانه راه انداز این نمایشگر توسط این جانب نوشته شده است و کاملا رایگان و متن باز میباشد!

LPC2138 And T9663 LCD (332)

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

یکشنبه,۱۸ مهر, ۱۳۸۹ ۱۵:۳۲

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

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

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

ادامه مطلب…

کتابخانه راه انداز چیپست های ks0108

سه شنبه,۱۹ مرداد, ۱۳۸۹ ۱۰:۱۵

همانطور که میدانیم چیپست های ks0108 برای راه اندازی ال سی دی های گرافیکی به کار برده میشود. هر چیپست ks0108 قابلیت پشتیبانی ۶۴*۶۴ پیکسل را دارد. که مرسوم ترین نوع السیدی های موجود ۱۲۸*۶۴ می باشد که از دو چیپست ks0108 استفاده می کند. این کتابخانه که به صورت کاملا دینامیک نوشته شده قابلیت پشتیبانی تا ۴ چیپست را دارا می باشد که می توان تعداد آن را در فایل کانفیگ، پیکر بندی کرد.

ادامه مطلب

کتابخانه AVR-WIN

سه شنبه,۱۸ خرداد, ۱۳۸۹ ۱۴:۵۶

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

کتابخانه AVR-WIN که به جرات میتوان گفت تنها نمونه موجود در نوع خود است توسط این جانب طراحی و پیاده سازی شده است . ممکن است این سوال در ذهن شما مطرح شده باشد که کار این کتابخانه چیست ؟ توضیح مختصری راجبه کاربرد آن ارایه میدهم که امیدوارم مورد قبول واقع شود.

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

حال فرض کند میخواهید با AVR خود منویی گرافیکی بسازید و فرمی طراحی کنید که کاربر بتواند تنظیمات مورد نظر خود را همانند ویندوز (همان گونه که عادت کرده) انجام دهد، برنامه ای مثل برنامه موبایل که کاربر با استفاده از  رابط گرافیکی تنظیمات مورد نظر خود را اعمال میکند. اگر قصد ارتقاع سطح برنامه های خود را دارید یا این که میل دارید پروژه هایی رو که انجام میدهید به سرعت به پایان برسانید این کتابخانه مثلما راه گشای خوبی خواهد بود. با استفاده از این کتابخانه ویندوز را در سخت افزار خود شبیح سازی می کنید. عکس زیر نمونه ای از فورم(پنجره)  طراحی شده توسط این کتابخانه است:

فکر میکند برای طراحی چنین فرمی چه مقدار برنامه نویسی لازم باشد ؟ برنامه زیر صفحه بالا را تولید میکند که متشکل از دو تکست باکس و سه دکمه و دو لیبل می باید:

page=get_page();
set_page_optionf(page,”EXECUTION”,exe_page);
page_add_buttomf(page,0,51,”Cancel”,exe_cancel_but);
page_add_lablef(page,6,10,”Select File”,exe_lable_1);
page_add_text(page,6,20,12,exe_file_text);
page_add_buttomf(page,83,20,”Browse”,exe_browse_but);
page_add_lablef(page,6,35,”Count:”,exe_lable);
page_add_text(page,42,33,6,exe_count_text);
page_add_buttomf(page,85,51,”Start”,exe_start_but);

در واقع این توابع جزیی از توابع سطح بالا میباشند که توسط کتابخانه AVR-WIN در دسترس قرار میگیرد و به راحتی قادر خواهید بود هر چیدمانی از المان های شیء گرا را در صفحه خود به وجود بیاوید

این کتابخانه حاوی ۵۰۰۰۰ خط کد است که کار شما را برای طراحی و برنامه نویسی راحت می کند.و دیگر دغدغه رابط کاربر را نخواهید داشت و به راحتی هر صفحه ای که لازم داشتید را ایجاد می کنید.

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

لیست برخی از توابع سطح بالای آن :

struct page *get_last_page();
struct object *get_page_last_obj(struct page *ptr);
struct page *get_last_active_page();
struct object *get_page_last_active_obj(struct page *ptr);
void active_next_page(void);
void active_prev_page(void);
struct page *get_page();
void add_obj(struct page *ptr, struct object *obj_);
void del_page(struct page *ptr);
void drow_pages(void);
void set_page_option(struct page *ptr,char *name,char handel);
void set_page_optionf(struct page *ptr,flash char *name,char handel);
struct page *get_page_whandel(char handel);
void active_page_whandel(char handel);
void key_process(char key);
struct object *page_add_text(struct page *ptr,char x,char y,char length,char handel);
struct object *page_add_lable(struct page *ptr,char x,char y,char *st,char handel);
struct object *page_add_lablef(struct page *ptr,char x,char y,flash char *st,char handel);
struct object *page_add_buttom(struct page *ptr,char x,char y,char *st,char handel);
struct object *page_add_buttomf(struct page *ptr,char x,char y,flash char *st,char handel);
struct object *page_add_listbox(struct page *ptr,char x,char y,char len_x,char len_y,char handel);
void send_key(char key);

نمونه عکس ها:

فورم ورود:

تغییر پسورد:

منو :

و در آخر فایل شبیح سازی شده :

در این فایل نحوی کار این کتابخانه رو به صورت عملی مشاهده خواهید کرد، برای گردش بین المان های یک فورم از دکمه TAB استفاده کنید و برای انتخاب المان(مثلا فشار دادن دکمه) از کلید Space و برای بالا و پایین شدن منو به ترتیب از کلید های A,D استفاده کند.

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

دانلود مثال :AVR-WIN (377)

struct page *get_last_page();
struct object *get_page_last_obj(struct page *ptr);
struct page *get_last_active_page();
struct object *get_page_last_active_obj(struct page *ptr);
void active_next_page(void);
void active_prev_page(void);
struct page *get_page();
void add_obj(struct page *ptr, struct object *obj_);
void del_page(struct page *ptr);
void drow_pages(void);
void set_page_option(struct page *ptr,char *name,char handel);
void set_page_optionf(struct page *ptr,flash char *name,char handel);
struct page *get_page_whandel(char handel);
void active_page_whandel(char handel);
void key_process(char key);
struct object *page_add_text(struct page *ptr,char x,char y,char length,char handel);
struct object *page_add_lable(struct page *ptr,char x,char y,char *st,char handel);
struct object *page_add_lablef(struct page *ptr,char x,char y,flash char *st,char handel);
struct object *page_add_buttom(struct page *ptr,char x,char y,char *st,char handel);
struct object *page_add_buttomf(struct page *ptr,char x,char y,flash char *st,char handel);
struct object *page_add_listbox(struct page *ptr,char x,char y,char len_x,char len_y,char handel);
void send_key(char key);

پروگرامر جیبی FabISP

پنجشنبه,۶ خرداد, ۱۳۸۹ ۱۱:۱۷

FabISP :

این پروگرامر که نسخه تغییر یافته TinyUsb میباشد داری حجم بسیار پایینی است و می توان آن را همراه خود حمل کرد.

دانلود Firmware : دانلود fabisp (328)

دانلود پرد مدار چاپی : برد مدار چاپی fab (787)

سایت منبع

میلی اهم متر

پنجشنبه,۶ خرداد, ۱۳۸۹ ۱۰:۲۶

زبان برنامه : C

کامپایلر برنامه : Codevision

فایل شبیح سازی : prtuse 6.4

توضیحات : با استفاده از این مدار قادر خواهدید بود مقاومت های بسیار کوچک رو با دقت مناسب اندازه گیری کنید. دقت مورد نظر دقتی معادل دو هزارم اهم میباشد(۰٫۰۰۲). و حد اکثر میتوان مقاومت هایی به بزرگی یک اهم رو اندازه گرفت.

دانلود : دانلود میلی اهم متر (300)

کتابخانه GBUF

پنجشنبه,۶ خرداد, ۱۳۸۹ ۸:۳۶

این کتاب خانه با مقصود  پردازش گرافیکی برای میکرو کنترلر های AVR  طراحی و پیاده سازی شده است ، با استفاده از این کتابخانه شما به راحتی قادر خواهید بود که متون و اشکال خود را در LCD  های گرافیکی به نمایش بگذارید، درواقع این کتابخانه مثل کارت گرافیک عمل میکنید و تمام پردازش های خود را در RAM  گرافیکی سیستم انجام میدهد که به آنها فریم های تصویر میگوییم، هرچه تعداد فریم های تصویر بیشتر باشد سرعت پردازش ها هم افزایش میابد(در واقع هرچه RAM گرافیکی بیشتر باشد یعنی سرعت بیشتر). در این کتابخانه به دلیل محدودیت در حافظه سیستم فقط یک فریم گرافیکی در اختیار کتابخانه قرار میگیرد با این حال سرعت به صورت فزاینده ای بالا خواهد رفت. یک فریم عبارت است از تعداد پیکسل های طول در عرض تقسیم بر ۸، که برای نمایشگر ۱۲۸*۶۴ نیاز به ۱۰۲۴ یا یک کیلو بایت RAM  میباشد.

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

ادامه مطلب