به سایت ایرانویچ خوش آمدید
IranVig

مقدمه‌اي بر برنامه نويسي موبایل


توسط ha_60 در 1385/1/17 1:55:55

در اين مقاله ابتدا با مفهوم MIDlet آشنا مي‌شويم و س‍پس به  APIهاي عالي J2ME مي‌پردازيم. و سپس یک محیط برنامه نویسی را معرفی می کنیم امید وارم برای شروع برنامه نویسی با موبایل بتونه مفید باشه سعی می کنم بعد از این سورس یه بازی با موبایل رو هم براتون بزارم که بتونه کمکتون کنه برای نوشتن برنامه ابتدا باید زبان برنامه نویسی خود را مشخص کنید برای این کار 2 راه حل مناسب دارید یکی جاوا که تقریبا روی تمام گوشی ها پشتیبانی می شود و قابل استفاده است و دیگری SDK های سیمبین است که می توانید با آن به زبان C برنامه نویسی کنید البته این کار باعث می شود که برنامه شما فقط روی گوشی هایی که سیستم عامل سیمبین دارند اجرا شود در هر حال من جاوا را پیشنهاد می کنم  برای شروع کار با آن می توانید یک IDE مانند NetBeans را از سایت آن (http://www.netbeans.org) به صورت رایگان در یافت کرده البته پکیج مخصوص موبایل آنرا فراموش نکنید ( http://www.netbeans.org/products/mobility) و محصول خود سان را هم فراموش نکنید (http://developer.java.sun.com/developer/earlyAccess/j2mewtoolkit/) در ادامه هم چند خطی از کتابم(و یکی از دوستان) رو که در حال چاپه رو اضافه می کنم شاید به دردتون بخوره [bold]MIDletها [bold]MIDP بستر نرم‌افزار‌ي دستگاهها‌ي همراه يا Mobile Information Device Profile است. تمامي برنامه‌هاي MIDP براساس کلاس مخصوصي بنام MIDlet شکل مي‌گيرند که در شاخه javax.microedition.midlet قرار دارد. MIDlet را مي‌توان با اپلتهاي J2SEمقايسه كرد تنها با اين فرق که MIDlet بمراتب مستقل‌تر از صفحه نمايش خود است. هر MIDlet چهار حالت به خود مي‌گيرد: فراخوانده‌شده، فعال،متوقف و باطل‌‌شده مي‌باشد. [bold]نمايش و قابليت نمايش آن[bold] با کلاس Display مي‌توان يک رابط با کاربر ايجاد کرد. دسترسي MIDlet به صفحه نمايش با فراخواني Display.getDisplay(MIDlet midlet امکان‌پذير است. کليه ابزار ارتباطي با کاربر در شاخه javax.microedition.lcdui قرار دارند. کلاس Display با دستور setCurrent()نمايش فعلي MIDlet ميسر مي‌سازد. در اين حالت وضعيت MIDlet به صورت Displayable درمي‌آيد. تفاوت Display و Displayable در اين است که Display کلاسي است که وظيفه آن هدايت صفحه نمايش سخت‌افزار است و Displayable همان چيزهائي است که بر صفحه نمايش، نمايش داده‌مي‌شوند. MIDlet با دستور isShown() مي‌تواند آن چيزي که بايد نمايش داده‌شود را مشخص و معين سازد. [bold]نوشتن HelloMidp[bold] مثل اکثر زبانهاي ديگر کار را با يک Hello! آغاز مي‌کنيم. در بدو امر بايد کلاسهاي midlet و lcdui را فراخواني کنيم. import javax.microedition.midlet.*; import javax.microedition.midlet.*; public class HelloMidp extends MIDlet { حال شما يک Display ايجاد کرده و بعد يک فرم مي‌سازيد: Display display; Form mainForm; public HelloMidp() { mainForm= new Form("HelloMidp"); } فرم يک کلاس مخصوص از Displayable است. فرم يک عنوان دارد که در بالاي صفحه نمايش ديده‌مي‌شود. در اينجا مطلب زيادي در فرم نمي‌آوريم. اين برنامه تنها همان عنوان را در بالاي صفحه نمايش خواهد داد. در بدو اجراي يک MIDlet مجري برنامه زيرروال startApp() را فرامي‌خواند. در اينجا شما دستور نمايش فرم را مي دهيد و مي‌خواهيد که فرم قابل ديدن باشد.(تفاوت نمايش و قابل ديدن يا همان Display و Displayable را بياد بياوريد.) public void startApp() { display = Displayable.getDisplay(this); display.setCurrent(mainForm); } از آنجا که حافظه يا متغيرهاي خاصي را نداريد که در حالت توقف برنامه نيازي به آزادکردن آنها داشته‌باشيد، بنابراين فقط بايد يک زيرروال خالي pauseApp() بنويسيد: public void pauseApp() { } مثل زيرروال pauseApp() زيرروال destroyApp() هم به همان دليل بايد خالي باشد: public void destoryApp(Boolean unconditional) { } } در ابتداي هر برنامه MIDP بايد کلاس MIDlet را براي آن برنامه به صورت زير تعريف نمود: فایلها :

ادامه

کارت ورودی خروجی با ISA


توسط ha_60 در 1385/1/11 5:52:49

این یه کارت I/O که به باس ISA متصل می شه و برای یاد گرفتن کار این باسها مناسب به نطر می رسه البته این گذر گاه مدتیه که تقریبا دیگه استفاده نمی شه ولی به علت سادگی برای یاد گرفتن می تونه مفید باشه یا اگه یه کامپیوتر خیلی قدیمی دارین و دوست دارین که این جور مدار هارو با اون بسازین تا اگه هم خراب شد زیاد مهم نباشه این مدار به دردتون می خوره. این نقشه رو من از کتاب 304 مدار در آوردم که می تونین با نقشه PCB کامل توی اون کتاب پیداش کنین و به علت اینکه با تبدیل به عکس و پرینت کردن کیفیت پایین می یومد فقط نقشه شماتیک دستگاه رو گذاشتم
فقط یادتون باشه که کارت رو وارونه داخل اسلات قرار ندید و آدرس کارت رو هم با استفاده از جامپر هایی که در نقشه طراحی شده می تونید تغییر بدید و 8 تا از انها را در کامپیوتر قرار دهید آدرس پیش فرض 200(hex) است و برای خروجی هم از IC 8255 استفاده شده که دارای سه پورت 8 بیتی است و اطلاعاتش رو می تونین در دیتا شیتش ببینید. فایلها : ISA.zip 42.05KB

ادامه

آموزش AVRStudio


توسط ha_60 در 1385/1/11 12:31:52

یه PDF آموزشی برای کار با AVRStudio
آخرین ورژن AVR Studio در هنگام نوشتن این مقاله 4 است .

از این نرم افزار به غیر از دیباگ کردن برنامه های اسمبلی می توانید برای دیباگ کردن کد های کمپایل شده را نیز استفاده کنید و به عنوان دیباگ برای نرم افزار های که فرمتهای COFF را مانند Codevision پشتیبانی می کنند استفاده کنید (از ورژن 4.06 به بعد)
با این روش می توانید برنامه نوشته شده به زبان مثلا C را داخل AVRStudio دیباگ کنید.

ادامه مطلب

ادامه

شارژ باتری


توسط ha_60 در 1385/1/4 8:27:8

امروزه کار برد دستگاه های الکترونیکی زیاد شده و این دستگا ها نیز برای قابل حمل بودن به باتری روی آوردن و باتری های قابل شارژ هم که هر روز در حال پیشرفت هستند ولی یه شارژر خوب رو با قیمت مناسب توی بازار نمی تونین پیدا کنین اکثر شارژر ها که با قیمت کم پیدا می کنین بدون هیج حساب و کتابی باتری شما رو شارژ می کنن بدونه دونستن نوع و ظرفیت باتری به همین خاطر این مدار رو اینجا گذاشتم
این یه شارژر باتری های NIMH است ولی برای بقیه باتری ها همی می تونین استفاده کنین روش شارژ هم 14 ساعت با جریان یک دهم ظرفیت باتریه که یه روش استاندارد به حساب می یاد این پروژه رو از سایت (۱) گرفتم اگه دوست داشتین می تونین به سایت اصلی یه سری بزنین عکسها و مدار مربوطه رو می تونین تو فایل ضمیمه پیدا کنین با یک پتانسیومتر ظرفیت باتری رو تعیین می کنین و بعد از 14 ساعت باتری تون شارژ می شه البته برای بار اول باید دستگاه رو کالیبر کنین که به یه رابط سریال نیاز دارین که باز نقشش رو تو فایل ضمیمه می بینین و یه برنامه که توی کامپیوتر بتونین با پورت سریال کار کنین که می تونین از یکی از همین برنامه های من استفاده کنین یا HyperTerminal ویندوز (البته برای این کار من HyperTerminal رو پیش نهاد می کنم) بقیه کار ها رو خود میکرو از طریق پورت سریال بهتون می گه فقط یادتون باشه کالیبر کردن نیازه و برای تنظیم دقیق دستگاه نیست برای کار با HyperTeminal در ابتدا به جای مودم پورت کام مربوطه رو انتخاب کنید و سرعت رو 9600 و بدون پریتی و با یک Stop Bit برنامه ریزی کنید فراموش نکنید که بعد از روشن کردن دستگاه 1.5 ثانیه فرست دارید تا دستور set رو برای میکرو بفرستید یادتون باشه که اگه اشتباه تایپ کردید یه بار دیگه دستگاه رو روشن کنید چون backSpace فایده نداره و اگه یه بار دستگاه رو کالیبر کردید برای همیشه کافیه برای کامپایل کردن برنامه باید از GCC استفاده کنین البته برای راحتی کار WinAVR رو از (۲) بگیرید ۱ - http://www.opend.co.za/hardware/nimh1/nimh1.htm ۲ - http://sourceforge.net/projects/winavr

ادامه

FPGA Programmer


توسط ha_60 در 1384/12/26 3:40:29

اگه با FPGA ها کار نکردید بد نیست حداقل با هاشون آشنا بشید برای شروع هم به پروگرامرشون نیاز دارید پس بد نیست این پروگرامر رو هم ببینید این پروگرامر آی سی ها ی Altera است و اسمش هم ByteBlasteMV است با یه آی سی بافر می تونید بسازیدش و با پورت پارالل هم کار می کنه البته شماره آی سی رو حتما دقیقا رعایت کنید یعنی از نوع HC بخرید و امید وازم مشکل دیگه ای نداشته باشید فایلها : ByteBlasterMV.zip 187.15KB

ادامه

Pony Prog


توسط ha_60 در 1384/12/23 5:30:27

این پروگرامر هم از پروگرامر های جالبه تقریبا همه چیز رو پروگرام می کنه البته فقط آی سی هایی رو که به صورت سریال پروگرام می شن و تقریبا با تمام سخت افزار ها هم می تونه کار کنه این یه برنامه کاملا free و می تونین آخرین ورژنش رو از سایت http://www.lancos.com در یافت کنید البته تقریبا در تمام سیستم عاملها حتی لینوکس هم قابل استفادس البته شماتیک های زیادی هم براش هست که یکیش رو داخل فایل اصلی و چند تا رو هم تو این صفحه می تونین پیدا کنین فقط برای شروع کار اگه از صدای اسب خوشتون نمی یاد می تونین غیر فعالش کنین و یادتون هم نره که باید ستاپ رو اجرا کنید تا با سرعت کامپیوتر تون هماهنگ بشه البته برنامه ای نباید در این موقع اجرا باشه تا بتونه سرعت کامپیوتر رو درست تخمین بزنه http://www.lancos.com/siprogsch.html فایلها : ponyprog 2.06a.zip 636.24KB

ادامه

شبکه های عصبی


توسط ha_60 در 1384/12/18 11:14:9

در مورد شبکه های عصبی چیزی شنیدید؟

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

ادامه مطلب

ادامه

LCD‌ گرافيكي


توسط ha_60 در 1384/12/8 6:14:47

اين روزها LCD‌ به خاطر قيمت كم و امكانات زياد در اكثر پروژه ها استفاده مي شه و در اين بين LCD‌ هاي گرافيكي هم به خاطر سخت تر بودن كار باهاشون كمتر مورد توجه قرار گرفتن!!! اگه مي خواهيد با اين نوع LCD ها كار كنيد این برنامه مي تونه براتون مفيد باشه ... ادامه مطلب

ادامه

راديو AM


توسط ha_60 در 1384/12/2 5:11:14

این یک نقشه رادیو AM بسيار سادس با IC MKT484 يا همان ZN414 شما به يك سيم پيچ و يك تقويت كننده صوتي نياز داريد و با يك باتري 1.5 ولتي هم مي توانيد راديويتان را بسازيد. آي سي MKT484 يك تقويت كننده بسيار ساده AM است كه در بسته بندي TO92 (به اندازه همين ترانزيستور هاي سه پايه كوچك) ارايه شده و با ولتاژ 1.1 ولت نيز كار مي كند داراي AGC نيز هست و شما با كمترين قطعات اضافي مي توانيد آنرا بسازيد البته اين آي سي مشاب آي سي ZN414 است و مي توانيد بجاي آن اسفاده كنيد. در زير يك نقشه براي آن را مشاهده مي كنيد.

اين آي سي در فركانس 150KHz تا 3MHz كار مي كند و به ولتاژي بين 1.1 تا 1.8 ولت نياز دارد كه براي كار با باتري مناسب است در فايل ضميمه مي توانيد نثشه فيبر مدار چاپي را نيز پيدا كنيد

فایل ZN484

ادامه

پورت سریال2


توسط ha_60 در 1384/11/23 8:25:27

اين يه برنامه مفيد براي كار با پورت سريال هست که مي تونید براي ارسال دريافت و حتي كشيدن نمودار از اون استفاده كنيد ... ادامه مطلب

ادامه