مطالب وبلاگ

استفاده از تاریخ هجری در ActionScript 3.0

یکی از بسته‌های بسیار مفیدی که با انتشار Adobe Flash Player 10.1 ارائه شد، مجمموعه کلاس‌های flash.globalization هستند که حاوی امکانات مختلفی جهت محلی سازی متون، تاریخ، اعداد و غیره می‌باشند.

کلاس DateTimeFormatter در این مجموعه دارای قابلیت تغییر قالب تاریخ جاری سیستم به قالبهای میلادی، هجری و ژاپنی می‌باشد. برای انجام این کار، کافیست که یک نمونه از این کلاس ایجاد کرده و یک شئ از نوع Date را به تابع format آن ارسال کنیم:

import flash.globalization.DateTimeFormatter;

var dt:Date = new Date();
var dtf:DateTimeFormatter = new DateTimeFormatter("ar-SA");
trace(dtf.format(dt));

و یا نمونه ساده تر آن در یک خط:

trace( (new DateTimeFormatter("ar-SA@calendar=islamic")).format(new Date) );

معرفی کتاب: اصول برنامه نویسی ActionScript 3.0 در نرم‌افزار Flash

تکنولوژی Flash از زمای که توسط شرکت Macromedia در سال 1996 معرفی شد، همواره جزء فناوری‌های پیشتاز در عرصه نرم‌افزار بوده است. عمومیت یافتن قالب فایل swf و انیمیشن‌های برداری (Vector) در سال‌های 1998 که به نوعی آغاز پیشرفت اینترنت محسوب می‌شد، تحول بسیار بزرگی در جلوه‌های بصری نرم‌افزاری به وجود آورد.

shams as3 book

کیفیت بالا و حجم کم انیمیشن‌های فلش، شرایط ایده‌آلی را جهت انتشار آثار گرافیکی در اینترنت فرهم نموده و بدون شک زیبایی بصری web در دوران حاضر تا حد زیادی مدیون تکنولوژی‌های پیشتازی همچون flash است که در گذشته راه پیشرفت آن را هموار نموده‌اند. البته امروزه کاربرد این تکنولوژی، تنها به انیمیشن‌های web محدود نیست بلکه با پیدایش مفاهیم RIA و معرفی تکنولوژی AIR توسط شرکت Adobe به عنوان یکی از مدعیان تولید نرم‌افزارهای Rich Internet Application، اهمیت بستر Flash در نرم‌افزارهای کاربردی نیز تا حد زیادی مشخص شده است.
در کنار امکانات طراحی و بصری فلش، زبان کدنویسی مورد استفاده در آن نیز از اهمیت بسیار بالایی برخوردار است. زبان ActionScript از گذشته تا کنون تغییرات زیادی نموده و تلفیق دانش و تجربه دو شرکت قدرتمند Macromedia و Adobe در توانایی و امکانات آن کاملاً مشهود است. اهمیت تسلط در زبان AS3 تا این حد است که می‌توان آن را کلید ورود به دنیای Flash Platform معرفی نمود.

کتاب حاضر مجموعه‌ای از سال‌ها تجربه مؤلف در طراحی نرم‌افزارهای مبتنی بر بستر فلش است که به صورت یک مرجع خودآموز برای زبان ActionScript 3.0 آماده شده است.

جهت مشاهده فهرست کتاب به این قسمت مراجعه کنید.


راه‌اندازی موتور Brushless سه فاز با Arduino

اگر در مورد موتورهای براشلس اطلاعاتی ندارید به این توضیح اکتفا کنید که که در این موتورها اتصال مستقیمی بین محور چرخان و قسمت ثابت موتور وجود ندارد. در موتورهای عادی DC این اتصال با استفاده از زغال یا جاروب (در موتورهای کوچک 3 تا 6 ولت) انجام میشود.
اما در یک موتور براشلس (Brushless) با تغییر مسیر جریان، قطب مغناطیسی در سیم پیچ تغییر کرده و با استفاده از جاذبه و دافعه بین آهنربای سیم پیچ (چرخان) و آهنربای ثابت، چرخش انجام میشود.

انواع مختلفی از این موتور در تجهیزات کامپیوتری مانند Fan و CD-Rom یا حتی Floppy Drive پیدا میشود. موتورهای 2 فاز مانند Fan، دارای دو سیم خروجی از سیم پیچ (و یک سیم جهت سنسور) بوده و به راحتی روشن میشوند.

اما موتورهای 3 فاز دارای 4 سیم (3 تا سیم پیچ و 1 سنسور) هستند که راه اندازی آنها مستلزم اعمال سیگنال و زمانبندی خاصی میباشد.

(ادامه مطلب…)


طراحی دستگاه مورس با ماژول وایرلس nrf24 و برد Arduino

ماژول nrf24 از شرکت Nordic Semiconductor یک ماژول کم مصرف، ارزان قیمت و کوچک است که در باند فرکانسی 2.4 گیگاهرتز عمل میکند. از این ماژول در انواع پروژه‌های ارسال داده به صورت wifi میتوان استفاده نمود. در این پروژه می‌خواهم به بررسی روش pair کردن دو ماژول nrf24 با استفاده از دو برد Arduino بپردازم.

تجهیزات مورد نیاز:

-    2 عدد ماژول nRF24
-    بردهای Arduino ProMini و Mega2560
-    2 عدد کلید فشاری
-    2 عدد Buzzer
-    منبع تغذیه مناسب برای ProMini

ماژول nrf24 دارای 8 پایه به شرح VCC ، CE، CSN، SCK، MOSI، MISO، IRQ می‌باشد که در این پروژه ما از تمام آنها به غیر از IRQ استفاده خواهیم کرد.

برای شناسایی پایه‌ها به تصاویر زیر دقت کنید:
nrf24 wifi module

NRF24L01 wifi pinout

(ادامه مطلب…)


چگونه یک مسئله را با الگوریتم ژنتیک حل کنیم؟

در ادامه مطالبی که تا کنون در مورد الگوریتم های تکاملی نوشته‌ام، می‌خواهم به بررسی چگونگی تشخیص قابل حل بودن یک مسئله با الگوریتم ژنتیک بپردازم.
برای شبیه‌سازی مسائل در Genetic Algorithm، باید به سه سوال اساسی پاسخ گفت:

1.  ساختار مسئله چگونه است؟ آیا یک مسئله بهینه‌سازی محسوب می‌شود؟ هدف از حل این مسئله چیست؟

2.  آیا پاسخ این مسئله را می‌توان به صورت یک کروموزوم یا به عبارتی به شکل آرایه‌ای از متغیرها و پارامتهای مسئله نشان داد؟

3.  آیا می‌توان روند رسیدن به پاسخ را در یک تابع ارزیابی تعریف نمود؟ آیا این تابع ارزیابی در تمام مراحل اجرای الگوریتم و از نسل آغازین تا نسلهای پایانی معتبر بوده و مقادیر صحیحی برمی‌گرداند؟

معمولاً در صورتی که نتوان به روشنی و صراحت به این سه سوال پاسخ داد، به احتمال زیاد ساختار مسئله مورد نظر با GA تطابق نداشته و الگوریتم ژنتیک گزینه مناسبی جهت حل آن مسئله نخواهد بود. اکثر مسائل کلاسیکی که ناگزیر از جستجوی تمام فضای حالت آنها هستیم در این دسته قرار می‌گیرند، این گونه مسائل عموماً بوسیله روشهای جستجوی سیستماتیکی مثل A* بهتر حل می‌شوند.

برای پاسخ به سوال اول و تشخیص ساختار مسئله، باید آن را به بخشهای کوچکتر و سوالات ساده‌تر تقسیم کنیم. پس از شناسایی سوالهای اصلی، با توجه به صورت آنها می‌توان به سادگی نوع مسئله را تشخیص داد. معمولاً در صورت مسائل بهینه‌سازی، از کلماتی مانند «کمترین»، «بیشترین»، «کوتاه‌ترین»، «طولانی‌ترین» و «کم‌هزینه‌ترین» استفاده می‌شود.

پس از شناسایی نوع و ساختار مسئله، می‌بایست روشی برای نمایش پاسخ آن به شکل کروموزوم پیدا کرده و در نهایت تابعی برای ارزیابی کروموزومها طراحی شود.

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

(ادامه مطلب…)


  • بایگانی:

  • کاربران:

  • .
    Copyright (c) 2010 www.mshams.ir