خوش آمديد!
15:53 دوشنبه 17 ارديبهشت ماه ، 1403
تغییر آدرس سایت
اطلاعیه مهم آدرس سایت از HLachini.com به آدرس HLachini.elewiz.com تغییر پیدا کرده است.
حتما لینکهای صفحات خود را به آدرس جدید تغییر دهید.
همچنین سایت جدیدی نیز بزودی به آدرس EleWiz.com راه اندازی خواهد شد.

مترجم گوگل

Google Translate

فروشگاه

نرم افزار


نرم افزار LTG
نرم افزار تولید کننده سورس بسکام تابلوروان 16 در 64
تعداد:


GIF Code Wizard
تبديل انيميشن به كد تابلوروان
تعداد:


مدارات آماده


ماژول Wav Player
Mono/Stereo 8khz-48Khz
تعداد:


پروگرامر هوشمندUSB برای AVR
پروگرامر AVR با قابلیت درج تمامی میکروکنترولرها از پین یک زیف سوکت و تامین کلاک جهت پوشش تمامی حالات فیوزبیت CKSEL
تعداد: 50


ليست محصولات
SMS خبرنامه

SMS

جهت دريافت رايگان تازه هاي سايت شماره مويايل خود را به همراه نام و نام خانوادگي به شماره 99009123812060  ارسال كنيد.

عضویت در خبرنامه

ایمیل - Email



تازه های سایت
· موتور همو پلار در 10 ثانيه[ 5 نظر - 15350 مشاهده ]
· نصب برنامه در Slax[ 9 نظر - 11708 مشاهده ]
· ورود به محيط Slax[ 16 نظر - 12143 مشاهده ]
· خواندن فایلهای MMC و SD با فرمت FAT16 , FAT32[ 33 نظر - 25979 مشاهده ]
· رله کنترل فاز Three Phase Monitor[ 35 نظر - 30074 مشاهده ]

[ موارد بیشتر در بخش اخبار و تازه ها ]
کیت نمایشگر سحرآمیز

تابلوروان: انیمیشن در تابلو روان

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

 

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



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

 حال به توضیح برنامه میرسیم. در ابتدا به توضیح هر یک از متغیرهای استفاده شده در برنامه میپردازم. در این برنامه از پنج متغییر استفاده شده. در زیر نحوه تعریف متغییر های مورد نیاز آورده شده.

 

Dim Row As Byte
Dim Scan As Byte
Dim Refresh As Byte
Dim Character As Byte
Dim C As Byte

 

Row : این متغییر شمارنده سطرهای ماتریس LED است.

Scan : توسط این متغییر سیگنالهای فعال سازی سطرها جهت جاروب تولید میشود.

Refresh : جهت تولید انیمیشن در این برنامه از نمایش متوالی چهار کاراکتر استفاده شده، که این متغییر تعداد دفعات نمایش یک کاراکتر ( جاروب کامل ) را قبل از نمایش کاراکتر بعدی تعیین میکند.

Character : آدرس محل شروع اطلاعات ( سطر اول ) مربوط به هر کاراکتر، در این متغییر قرار میگیرد.

C : آدرس محل اطلاعات مربوط به سطر کاراکتر مورد نمایش در جدول گلایف برنامه (Animation) در این متغییر نگهداری میشود.

 بعد از تعریف متغییرها در برنامه به حلقه اصلی برنامه (Do-Loop) میرسیم. این حلقه بدلیل آنکه شرطی برای اتمام آن ذکر نشده، به تعداد بینهایت بار اجرا میگردد که ما هم به آن نیاز داریم! درون این حلقه دستورات و کدهای برنامه قرار دارد.

 

For Character = 0 To 27 Step 7
For Refresh = 0 To 10
    Scan = &B11111110
    For Row = 0 To 6
        Portb = Scan
        C = Character + Row
        Portd = Lookup(c , Animation)
        Waitus 250
        Portd = 0
        Rotate Scan , Left
    Next Row
Next Refresh
Next Character

 

در اولین دستور به حلقه For-Next میرسیم که متغییر Character به عنوان شمارنده این حلقه در نظر گرفته شده، همانطور که قبلا نیز اشاره شد این متغییر آدرس محل شروع اطلاعات مربوط به هر کارکتر را محاسبه میکند. که مسلما برای اولین کاراکتر مقدار آن صفر است و از طرفی چون ارتفاع هر کاراکتر 7 سطر میباشد لذا میزان افزایش( گامهای) آن هفت تایی تعریف شده.

 

در حلقه مربوط به متغییر Character حلقه For-Next دیگری با متغییر Refresh قرار دارد. تعداد دفعات اجرای دستورات این حلقه ده بار می‌باشد. که تعیین کننده تعداد جاروب های کامل هر کاراکتر قبل از نمایش کاراکتر بعدی میباشد.

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

 

Scan = &B11111110

 

در ادامه به حلقه For-Next دیگری با متغییر Row میرسیم. دستورات موجود در این حلقه هفت بار اجرا میگردند که در هر بار یک سطر از ماتریس LED فعال میشود. در نتیجه با اجرای کامل این حلقه یک کاراکتر به نمایش در می‌آید. روند اینکار بدین شکل است، ابتدا توسط دستور زیر سطر مورد نظر فعال میگردد.

 

Portb = Scan

 

سپس آدرس سطر مورد نظر از کارکتر نمایشی محاسبه میشود و در متغییر C قرار میگیرد. همانطور که مشاهده میکنید این آدرس به دو پارامتر سطر نمایشی Row و کاراکتر نمایشی Character  وابسته است.

 

C = Character + Row

 

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

 

Portd = Lookup(c , Animation)

 

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

 

Waitus 20

 

بعد نمایش اطلاعات یک سط باید LED های آن سطر خاموش شوند. در غیر این صورت زمانی که شما سطر بعدی را فعال میکنید برای یک لحظه کوتاه اطلاعات سطر ماقبلی نمایش داده میشوند که در تابلو روان باعث میگردد شما یک حاله نورانی کوچک بالا و یا پائین (بسته به جهت جاروب) نوشته و یا تصاویر ظاهر شود.

 

Portd = 0

 

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

 

Rotate Scan , Left

 

همانطور که نیز در ابتدای این مقاله اشاره شد. جهت ایجاد انیمیشن ما در این برنامه از یک جدول گلایف به نام Animation استفاده کردیم. در این جدول اطلاعات مربوط به چهار کاراکتر /،-،،| ذخیره شده که با نمایش متوالی این چهار کاراکتر انیمیشنی بشکل چرخش یک خط حول مرکز خود به نمایش در خواهد آمد. جدول فوق به صورت زیر در برنامه تعریف شده است.

 

Animation:

'character '/'

Data &B00000
Data &B00001
Data &B00010
Data &B00100
Data &B01000
Data &B10000
Data &B00000


'character '-'

Data &B00000
Data &B00000
Data &B00000
Data &B11111
Data &B00000
Data &B00000
Data &B00000


'character ''

Data &B00000
Data &B10000
Data &B01000
Data &B00100
Data &B00010
Data &B00001
Data &B00000


'character '|'

Data &B00100
Data &B00100
Data &B00100
Data &B00100
Data &B00100
Data &B00100
Data &B00100

 

امیدوارم که مطالب ارائه شده در این مقاله برای شما دوستان مفید واقع شده باشد. متن کامل برنامه را که با استفاده از نرم‌افزار BASCOM AVR 1.11.8.1 نوشته شده در زیر مشاهده میکنید. این نسخه از نرم افزار مشکلات نسخه های پیشین را ندارد بالاخص اینکه نسخه های موجود در بازار Demo بوده و به شما امکان نوشتن برنامه‌هایی  با حجم بیش از دو کیلو بایت را نمی‌دهند. شما جهت نوشتن برنامه تابلو روان حرفه‌ای نمی‌توانید از نسخه Demo استفاده کنید. پس

 

'*********************************************
'* This Program Writing By : Hossein Lachini                    *
'* Animation on the LED Signe Board                               *
'* For to get more details visit :                                       *
'*                
www.HLachini.com                          *
'* Contact to me by :
eLachini@Gmail.com      *
'*********************************************

$regfile = "m8def.dat"
$crystal = 8000000

Config Portb = Output
Config Portd = Output

Dim Row As Byte
Dim Scan As Byte
Dim Refresh As Byte
Dim Character As Byte
Dim C As Byte


Do
For Character = 0 To 27 Step 7
For Refresh = 0 To 10
    Scan = &B11111110
    For Row = 0 To 6
        Portb = Scan
        C = Character + Row
        Portd = Lookup(c , Animation)
        Waitus 250
        Portd = 0
        Rotate Scan , Left
    Next Row
Next Refresh
Next Character
Loop
End 'end program

Animation:

'character '/'

Data &B00000
Data &B00001
Data &B00010
Data &B00100
Data &B01000
Data &B10000
Data &B00000


'character '-'

Data &B00000
Data &B00000
Data &B00000
Data &B11111
Data &B00000
Data &B00000
Data &B00000


'character ''

Data &B00000
Data &B10000
Data &B01000
Data &B00100
Data &B00010
Data &B00001
Data &B00000


'character '|'

Data &B00100
Data &B00100
Data &B00100
Data &B00100
Data &B00100
Data &B00100
Data &B00100

 

در این بخش من فایل های برنامه انیمیشن در تابلو روان را قرار دادم. این فایلها با فرمت Zip فشرده سازی شده است.  این فایل ها عبارتند از :

  • فایل برنامه تابلو روان، که در نرم افزار BASCOM نوشته شده است. 
  • فایل هگز (Hex) برنامه تابلو روان جهت پروگرم کردن میکروکنترلر ATmega8.

جهت دانلود اینجا کلیلک کنید.

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

برای اینکار میتوانید از نرم افزار آنلاین تبدیل انیمیشن به کدهای تابلوروان استفاده کنید. که آدرس آن در زیر داده شده است:

http://www.hlachini.com/gifanimation2hex.wiz

 



کلمات کليدي :
ارسال شده در مورخه : دوشنبه، 4 شهريور ماه ، 1387 توسط admin  چاپ مطلب

مرتبط با موضوع :

 مثال تابلو 16 در 128 با مبدل آنلاین  [پنجشنبه، 11 شهريور ماه ، 1389]
 تابلو روان و اندازه گیری دما با SMT160  [چهارشنبه، 3 شهريور ماه ، 1389]
 انیمیشن در تابلوروان توسط 74HC595  [پنجشنبه، 7 مرداد ماه ، 1389]
 تابلوروان با میکرو 8051  [سه شنبه، 5 مرداد ماه ، 1389]
 نرم افزار آنلاین تبدیل متن به کد هگز  [چهارشنبه، 17 تير ماه ، 1388]
 جاروب ستوني  [يكشنبه، 3 شهريور ماه ، 1387]
 برنامه نویسی اولین تابلوروان  [يكشنبه، 3 شهريور ماه ، 1387]
 بررسی اولین مدار عملی تابلو روان  [يكشنبه، 3 شهريور ماه ، 1387]
 جدول گلایف  [يكشنبه، 3 شهريور ماه ، 1387]
 جاروب یک در میان  [يكشنبه، 3 شهريور ماه ، 1387]

نام شما: [ کاربر جدید ]

عنوان:
 
نظر:


:) ;) |) :- :( :0 :# *) ^) +)) :} |(( @: (:) :? :**

کد امنيتي : mit99puv
تايپ کد امنيتي : [ بازگشت ]

حسین (امتیاز : 0)
توسط ميهمان در مورخه : سه شنبه، 25 آبان ماه ، 1389
عالی بود. دستتون درد نکنه. فقط یه چیزی: For Character = 0 To 27 Step 7 تو سطر بالا از برنامتون چون کلا چهار کاراکتر هست و دیتای اول کاراکتر چهارم در 3*7=21 هست و بقیه سطرهاش با C = Character + Row بدست میاد پس به جای 27 مقدار 21 هم جواب میده.


[ ارسال جوابیه ]

امتیاز دهی به مطلب
امتیاز متوسط : 3.5
تعداد آراء: 8


لطفا رای مورد نظرتان را در مورد این مطلب ارائه نمائید :

عالی
خیلی خوب
خوب
متوسط
بد

موضوعات مرتبط

تابلوروان - تابلو روان

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