بسم الله
قرار بود اینجا تعطیل بشه ولی مثل اینکه هنوز نشده و هاست همچنان مونده.
مسابقاتی که در پیش داریم مسابقات شاهین شهر هست که قرار بود ۱۸ بهمن برگزار بشه و مثل اینکه با درخواست شرکتت کننده گان قرار شده بذارند برای ۲۲ فروردین و این تغییر تاریخ با یک نظر سنجی به انتخاب خود شرکت کننده گان گذاشته اند.
تاریخ ثبت نام آن هم تا ۳۰ دی ماه تمدید شده و دوستانی که به رباتیک علاقه دارند میتونند ثبت نام کنند.
حتی اگر یک ربات خوب و قوی هم ندارید سعی کنید ثبت نام کنید. مهمترین چیزی که کسب میکنید تجربه هست.
وقتی هیچ مسابقه ای شرکت نکرده باشید شناخت درستی نسبت به برگزاری مسابقات ندارید و گاها نمیتوانید یک ربات مناسب برای مسابقات طراحی کنید. خود من اولین بار که میخواستم مسابقات شرکت کنم به فکر ساخت یک ربات با ۳ سنسور بودم و وقتی این مساله را در یک تالار گفتگو مطرح کردم دوستان با تجربه ای بودند که من را راهنمایی کردند و به این نتیجه رسیدم که باید تعداد سنسور ها را خیلی بیشتر در نظر بگیرم و وقتی وارد اولین مسابقه شدم و سرعت و قدرت تشخیص بقیه ربات ها را دیدم خودم این مساله را درک کردم. یا در مورد موتور ها که من برای اینکه سرعت رباتم زیاد باشه در اولین مسابقه ای که رفتم (ربات ها در شهر – تهران) موتورهای ۱۰۰۰ دور روی رباتم گذاشته بودم و وقتی اونجا رفتم دیدم که با این موتورها که سرعت خوب اما قدرت بسیار کمی دارند نمیتوان ربات را به سادگی کنترل کرد. روی پیچ ها وقتی تغییر مسیر میدادم به خاطر قدرت کم موتورها ، ربات توانایی تغییر مسیر آنی را نداشت و مقداری از مسیر خارج میشد که البته با برنامه نویسی و برگرداندن ربات به عقب، در پیچها تونستم کمی این مشکل را بر طرف کنم اما با تجربیاتی که اونجا کسب کردم تغییرات بسیار زیادی در رباتم دادم و از جمله اینکه در ربات بعدی از موتور های ۳۰۰ دور ZGA28 استفاده کردم که قدرت خیلی خوبی دارند و کنترل ربات خیلی ساده تر هست.(از ۱۰۰۰ دور در اولین مسابقه به ۳۰۰ دور در دومین مسابقه)
مسابقه بعدی را با یک ربات جدید رفتم. (رهفاکاپ). این دوره رباتم طول زیادی داشت که متاسفانه برای پیچ های ۹۰ درجه که فاصله ی ۲۰ سانتی متری داشتند مشکل بزرگی داشت و با اینکه وقت زیادی روی این ربات گذاشته بودم و مسیر ها را خیلی خوب طی می کرد اما در مرحله دوم در ابتدای مسیر که چنین المانهایی بود حذف شد.
الان رباتم را کمی کوچکتر کردم و برد اصلی اون را هم با تغییراتی دوباره ساخته ام.
*
همه ی این موارد را ذکر کردم که بگم شرکت در مسابقات تاثیر زیادی بر روش ساخت ربات میذاره و با مشکلاتی که برای ربات خودمون پیش میاد و با ویژگی هایی که از ربات بقیه میبینیم تجربیات زیادی کسب میکنیم که در پیروزی ما نقش زیادی داره و شاید بتوان گفت غیر ممکن هست کسی بدون تجربه وارد یک مسابقه بشه و بتونه مقام خیلی خوبی کسب کنه ولی این غیر ممکن، برنده شدن فرد را در مسابقات بعدی و بعدی تا حد زیادی ممکن و تضمین میکنه.
این هم آدرس سایت مسابقات:
|
+
موضوع : رباتیک |
تاریخ
| یک نظر
مسابقات رباتیک آزاد ایران (IranOpen 2012)
مسابقات رباتیک آزاد ایران فروردین ماه سال جاری برگزار میشه و اکنون شروع به ثبت نام کرده. مسابقات رباتیک آزاد ایران هر ساله توسط دانشگاه آزاد قزوین برگزار میشه.
سطح این مسابقات بالا هست و مسابقه به صورت بین المللی برگزار میشه و از کشورهای زیادی در این مسابقات شرکت میکنند.
لیگهایی که در ایران اپن وجود داره معمولا لیگهای خاصی هستند و از نظر قوانین هم خیلی سخت هستند که معمولا نیاز به کارهای گروهی داره و هزینه های زیادی هم برای ساخت ربات نیاز هست. توی این چند سال دوست داشتم فرصتی پیش بیاد که بتونم در این مسابقات ثبت نام کنم اما به دلایلی که عرض کردم نمیشد. امثال یکی از دوستانم که همشهری و همدانشگاهی ام هست تماس گرفت و از من خواست تا اگر میتونم به عنوان برنامه نویس به تیم رباتیکشون ملحق بشم و گفت که دارند برای مسابقات ایران اپن آماده میشن، من هم از خدا خواسته و با کمال میل پذیرفتم و روز پنج شنبه گذشته توی اصفهان قرار گذاشته بودند تا تمامی گروه با هم آشنا بشوند.
گروه ۶ نفره هست، من که برنامه نویس هستم و دو نفر از رشته برق و الکترونیک و سه نفر دیگه هم رشته مکانیک هستند که اولین قرار گروهی ما هم برای چهارشنبه این هفته هست که اگر انشاالله مشکلی نباشه کار را شروع کنیم. در این میان باید فکر یک حامی پولدار هم باشیم که بتونه هزینه های ساخت را قبول کنه.
پیش ثبت نام ۱۴ آبان – ۱۵ دی ۱۳۹۰
ارسال گزارش فنی ۱۹ آذر – ۱۴ بهمن ۱۳۹۰
انتخاب تیم ها ۱۴ بهمن – ۵ اسفند ۱۳۹۰
ثبت نام ۱۵ بهمن – ۱۳ اسفند ۱۳۹۰
آماده سازی تیم ها ۱۵ فروردین – ۱۶ فروردین ۱۳۹۱
مسابقات ۱۷ فروردین – ۱۹ فروردین ۱۳۹۱
|
+
موضوع : برنامه نویسی,رباتیک |
تاریخ
| ۲ نظر
حفاظت شده: سرویس اشتباهی سوار شدم و سر از زرین شهر در آوردم
|
+
موضوع : خاص,عمومی |
تاریخ
| برای نمایش یافتنِ دیدگاهها رمز را بنویسید.
سلامت را نمی خواهند پاسخ گفت
سرها در گریبان است
کسی سر بر نیارد کرد پاسخ گفتن و دیدار یاران را
نگه جز پیش پا را دید، نتواند
که ره تاریک و لغزان است
و گر دست محبت سوی کسی یازی
به اکراه آورد دست از بغل بیرون
که سرما سخت سوزان است
نفس، کز گرمگاه سینه می آید برون، ابری شود تاریک
چو دیوار ایستد در پیش چشمانت
نفس کاین است ، پس دیگر چه داری چشم
ز چشم دوستان دور یا نزدیک ؟
مسیحای جوانمرد من! ای ترسای پیر پیرهن چرکین
هوا بس ناجوانمردانه سرد است … آی
دمت گرم و سرت خوش باد
سلامم را تو پاسخ گوی، در بگشای
منم من، میهمان هر شبت، لولی وش مغموم
منم من، سنگ تیپاخورده ی رنجور
منم، دشنام پس آفرینش، نغمه ی ناجور
نه از رومم، نه از زنگم، همان بیرنگ بیرنگم
بیا بگشای در، بگشای، دلتنگم
حریفا! میزبانا! میهمان سال و ماهت پشت در چون موج می لرزد
تگرگی نیست، مرگی نیست
صدایی گر شنیدی، صحبت سرما و دندان است
من امشب آمدستم وام بگذارم
حسابت را کنار جام بگذارم
چه می گویی که بیگه شد، سحر شد، بامداد آمد؟
فریبت می دهد، بر آسمان این سرخی بعد از سحرگه نیست
حریفا ! گوش سرما برده است این، یادگار سیلی سرد زمستان است
و قندیل سپهر تنگ میدان، مرده یا زنده
به تابوت ستبر ظلمت نه توی مرگ اندود، پنهان است
حریفا! رو چراغ باده را بفروز، شب با روز یکسان است
سلامت را نمی خواهند پاسخ گفت
هوا دلگیر، درها بسته، سرها در گریبان، دستها پنهان
نفسها ابر، دلها خسته و غمگین
درختان اسکلتهای بلور آجین
زمین دلمرده، سقف آسمان کوتاه
غبار آلوده مهر و ماه
زمستان است
.
.
.
|
+
موضوع : عمومی |
تاریخ
| ارسال نظر
دو پلیس و چند سرباز بودند و یک نیسان که به دمش یک گاری بزرگ آهنی وصل بود -اسمش را نمیدانم-. موتورها را میگرفتند و اگر صاحبش شانس نداشت میانداختنش توی این گاری بزرگ آهنی. رانندهی نیسان بیحوصله بود و سیگار میکشید. هر موتور و سوارش انگار مجرمانی بالفطره بودند که جرمش را سوار میکرد و مجازاتش را مرکب میدید. میان ده دوازده موتوری که از چراغ سرخ دم غروب روزهای آخر پاییز رد شدند، چشم پلیسها و سربازهاشان پی موتور یاماها صد زواردرفتهای بود که سوارش کلاه نداشت و خودش چراغ جلو. انگار شیر گرسنه خشمگین غرش میکرد و میتازاند.
وقتی تابلویِ سرخ و سفید شبیه راکت پلیس توی آسمان بالا میرفت و پایین، سوار یاماها صد راند سمت پلیسها، آرام شد و ایستاد و لبخند زد و سلام کرد. سرباز دوید و کلید موتور را کشید بیرون. سوار نه گواهینامه داشت، نه اعتراض. آرام به پلیس گفت شوما اینو نمی برید پارکینج. عمداً گفت ج. پلیس براندازش کرد. گفت شما؟ سوار گفت من. پلیس گفت ما قانونو اجرا میکنیم. جواب داد شما این کارو نمی کنید. سوار همان تبسمش را داشت. پلیس انگار ناظم دوران راهنمائیمان باشد، عربده کشید: سرباز! این قوطیو بندا تو نیسون. گفت نیسون.
سربازها یاماها صد را کشیدند سمت گاری. سوار خندید. گفت ای بره او تو نمیات بیرون. بِذ دم آخری مَ ازش وداع کنم. گفت وداع. سربازها دورهاش کردند. دو پلیس هم. راننده دود سیگار را انگار قورت داد. سوئیچ دست سرباز بلندقدتر بود. سوار یاماها را بغل کرد. خواباندش زمین. در باکش را باز کرد. بنزینش ریخت. دست کرد توی جیب کتش. کبریت زد. یاماها زبانه کشید. غرید. آتش شد. سربازها، پلیسها رفتند عقب. سوار لبخند زد. گفت حالا که نرفت او تو، بیایت با آتیشش خُتونُ گرم کنیت.
واقعی، سر میدان نوِ قم

منبع نوشته: درویشی نشسته بر پوست پلنگ
|
+
موضوع : عمومی |
تاریخ
| ارسال نظر
درست وقتی فکر میکنی همه چیز خوب پیش میره
براتون اتفاق افتاده؟
درست وقتی فکر میکنی همه چیز خوب و رضایت بخش داره پیش میره، یه اتفاق می افته و همه چیز را تغییر میده.
|
+
موضوع : عمومی |
تاریخ
| یک نظر
«ای مردم درهای بهشت در این ماه باز است از خدا بخواهید که آنرا بر شما نبندد و در های جهنم بسته است از خدا بخواهید که بر شما باز نشود(باز نکند) و شیطان ها در غل و زنجیرند از خدا مسئلت کنید که برشما مسلط نکند.»
پیامبر اکرم (ص).
من به این جمله ایمان دارم که در ماه رمضان شیطان ها در غل و زنجیر هستند. البته همونطور که پاسخ دادند به این معنی نیست که کسی گناهی نمیکنه، بلکه بعضی ها این وسط خودشون میروند سراغ شیطان و در احوالپرسی از شیطان کم نمی گذارند.
اما واقعا توی این ماه اگر آدم خودش اراده کنه میتونه خوب باشه، میتونه با بقیه ماه ها متفاوت باشه و تغییری در خودش ایجاد کنه.
|
+
موضوع : عمومی |
تاریخ
| ارسال نظر
آموزش برنامه نویسی شبکه در دات نت (بخش ۳) مراحل کار برنامه مشتری
امروز در مورد برنامه مشتری یا همان Client صحبت می کنم. همانطور که از نام پیداست این بخش برنامه ای هست که میخواهد از خدماتی که سرویس دهنده ارائه میدهد استفاده کند. مثلا یک سرویس دهنده وب را در نظر بگیرید. سرویس دهنده وب بر روی یک کامپیوتر متصل به شبکه جهانی وب اجرا میشود و وظیفه آن دریافت درخواست از برنامه های مشتری و ارسال پاسخ مناسب به آنهاست. مرورگر های وب اجرا شده بر روی کامپیوتر های ما همگی برنامه های مشتری هستند که تقاضای خود را برای سرویس دهنده وب ارسال می کنند و سرویس دهنده با توجه به اینکه ما اطلاعات چه صفحه ای از چه سایتی را درخواست کرده ایم اطلاعات مورد نظر را به مرورگر ما میدهد.
مراحل کار یک برنامه مشتری
۱- Socket()
با فراخوانی این تابع ما به سیستم عامل درخواست ایجاد سوکت را میدهیم و در همین مرحله باید نوع ارتباط و نوع شبکه را مشخص کنیم. منظور از نوع ارتباط دیتاگرام یا استریم بودن هست که به مفاهیم پروتکل هایی مانند TCP و UDP برمیگرده که ما در اینجا از TCP که یک پروتکل اتصالگرا هست استفاده میکنیم.(اگر مفهوم TCP و یک ارتباط اتصالگرا و تفاوت های اون با یک ارتباط غیر اتصالگرا را نمیدونید میتونید همین حالا رجوع کنید به گوگل و این مفاهیم را یاد بگیرید)
۲- Connect()
با این تابع ما تقاضای ارتباط با یک کامپیوتر خاص که آنرا با یک IP مشخص شده و برنامه ای خاص روی آن کامپیوتر که با شماره PORT مشخض شده است را میدهیم. این تابع با دریافت یک IP و یک PORT سوکت ما را به سرویس دهنده متصل میکند.
۳- Send() و Recv()
در صورتی که ارتباط برنامه ما با سرویس دهنده برقرار شد، برنامه مشتری با استفاده از این توابع شروع به ارسال و دریافت اطلاعات میکند تا زمانی که پاسخ های مورد نظر خود را دریافت کند.
۴- Close()
در پایان وقتی مشتری درخواست های خود را داد و پاسخ مورد نظر خودش را گرفت با فراخوانی این تابع ارتباط خود را با سرویس دهنده قطع میکند.
—————-
تا اینجا با برنامه های سرویس دهنده و مشتری و مراحل ارتباط آنها آشنا شدیم. در مرحله بعد ما برنامه های سرویس دهنده و مشتری را در .Net و با زبان CSharp پیاده سازی میکنیم.
در طی مراحل فرض بر این هست که خوانندگان این مطلب با برنامه نویسی در سی شارپ آشنایی دارند بنابراین بیشتر به بحث روی سوکت نویسی و توابع آن در .Net میپردازم و کمتر در مورد نحوه ایجاد کردن پروژه و نحوه ی اجرا کردن آن و… میپردازم.
به این دلیل که مراحل کار یک برنامه مشتری ساده تر هست و درگیر برنامه های چند نخی هم نمیشیم ابتدا از برنامه مشتری شروع میکنیم و یک برنامه مشتری را به صورت عملی و مرحله به مرحله ایجاد می کنیم.
|
+
موضوع : برنامه نویسی,دات نت |
تاریخ
| ۲ نظر
برنامه نویسی شبکه در دات نت (بخش ۲) مراحل کاری یک سرویس دهنده
در بحث شبکه برنامه ها و کامپیوتر ها به دو دسته مهم تقصیم بندی میشوند.
۱- سرویس دهنده ( Server)
2- مشتری (Client)
سرویس دهنده برنامه ای هست که یک امکانات و اطلاعاتی را ارائه میدهد و مشتری ها برنامه هایی هستند که قصد اتصال پیدا کردن به سرویس دهنده ها را دارند تا از آنها استفاده کنند و اطلاعات و داده هایی را کسب کنند.
معمولا اساس کار به این شکل هست که یک سرویس دهنده منتظر میماند تا مشتری ها با آن ارتباط برقرار کنند تا به آنها پاسخ دهد. یعنی معمولا به این شکل هست که چندین مشتری به یک عدد سرویس دهنده وصل میشوند. (در سیستم های توزیع شده کمی تفاوت داره که ما قصد بررسی اونها را نداریم.)
مراحل کار یک سرویس دهنده درون شبکه:
یک سرویس دهنده باید مراحل زیر را انجام دهد و درون شبکه به مشتری ها پاسخ دهد. مراحل فعلا به صورت شبه کد نوشته می شوند و در بخش های بعدی که پیاده سازی میکنیم با استفاده از توابع دات نت مینویسیم.
۱- Socket()
با فراوخوانی این تابع ما به سیستم عامل درخواست ایجاد سوکت را میدهیم و در همین مرحله باید نوع ارتباط و نوع شبکه را مشخص کنیم. منظور از نوع ارتباط دیتاگرام یا استریم بودن هست که به مفاهیم پروتکل هایی مانند TCP و UDP برمیگرده که ما در اینجا از TCP که یک پروتکل اتصالگرا هست استفاده میکنیم.(اگر مفهوم TCP و یک ارتباط اتصالگرا و تفاوت های اون با یک ارتباط غیر اتصالگرا را نمیدونید میتونید همین حالا رجوع کنید به گوگل و این مفاهیم را یاد بگیرید)
۲- Bind()
بعد از اینکه ما نوع سوکت و ارتباز مورد نظرمون را اعلام کردیم و سیستم عامل سوکت را برای ما ایجاد کرد باید یک شماره PORT را به سوکتی که ایجاد کرده ایم مقید یا Bind کنیم.
یعنی تا اینجا ما یک سوکت داریم با یک شماره شناسایی (PORT) درون کامپیوترمون.
۳- Listen()
در این مرحله ما به سیستم عامل اعلام میکنیم که ما به سوکت گوش میدهیم و آماده دریافت ارتباط با مشتری ها هستیم. در این مرحله ما حداکثر تعداد مشتری را هم انتخاب میکنیم و سیستم عامل بیشتر از این تعداد مشتری را منتظر نگه میدارد و به نوبت به برنامه ما ارسال میکند. بعدا میبینید که ما به کمک برنامه های چند نخی همزمان به چندین مشتری پاسخ میدهیم و این حداکثر تعدا مشتری که انتخاب میکنیم به این دلیل هست که اگر ما تعداد مشتری ها را نا محدود قرار دهیم و در یک زمان تعداد مشتری ها خیلی زیاد بشوند پردازش برنامه ما خیلی زیاد میشه و سبب میشه که سیستم هنگ کنه. بنابر این از سیستم عامل میخواهیم که در یک لحظه فقط تعداد محدودی از مشتری ها به برنامه ما معرفی کنه.
۴- Accept()
در این مرحله ما از سیستم عامل میخواهیم که یکی از مشتری هایی که در حالت معلق قرار دارند را به ما معرفی کند تا به او پاسخ دهیم. بعدا میبینید که در برنامه های چند نخی ما این تابع Accept را درون یک حلقه قرار میدهیم و مدام مشتری ها را میگیریم و هر کدام را به یک نخ میسپاریم تا به درخواست هاشون رسیدگی بشه.
۵- Send() و Recv()
در این مرحله ما یک مشتری را پذیرفته ایم و با توابع ارسال و دریافت شروع به گرفتن درخواست های مشتری میکنیم.
۶- Close()
در پایان وقتی مشتری درخواست های خود را داد و ما آنها را پردازش کردیم و مشتری پاسخ مورد نظر خودش را گرفت با فراخوانی یک تابع ارتباط را با این مشتری قطع میکنیم.
و در انتهای برنامه نیز سوکت اصلی که ایجاد کرده بودیم را میبندیم.
مراحل کار یک سیستم مشتری در پست آینده انشاالله.
|
+
موضوع : برنامه نویسی,دات نت |
تاریخ
| ارسال نظر