بایگانی سال 2024
خط تولید کنسرو لوبیا
/۰ دیدگاهها/در خدمات مشاوره, خط تولید کمپوت و کنسروجات, مشاوره راه اندازی کارخانه صنایع کنسروی /توسط karanAdminآموزش ساخت فرکانس متر با آردینو
/۰ دیدگاهها/در آموزش رباتیک /توسط karanAdminتقریبا برای ساخت اکثر پروژه های الکترونیکی نیاز است که فرکانس خروجی آن اندازه گیری شود .
برای اندازه گیری فرکانس معمولا از اسیلوسکوپ یا سایر تجهیزات اندازه گیری استفاده می شود .
اما این دستگاهها معمولا قیمت بالایی دارند و تهیه آنها برای همه مقدور نمی باشد . برای حل مشکل ما در
این بخش ، قصد داریم که با کمک Arduino Uno و Schmitt trigger gate یک فرکانس متر ارزان بسازیم .
همچنین برای تست این فرکانس متر می خواهیم یک سیگنال ژنراتور ساده با استفاده از آی سی ۵۵۵ بسازیم .
این مدار سیگنال ژنراتور یک موج مربعی تولید می کند که برای تست به پروژه فرکانس متر ما داده می شود .
قطعات مورد نیاز :
۱٫ آی سی تایمر ۵۵۵ و ۷۴LS14 Schmitt trigger gate
۲٫ دو عدد مقاومت ۱ کیلو اهم و یک عدد مقاومت ۱۰۰ اهم
۳٫ دو عدد خازن ۱۰۰ نانو فاراد ، یک عدد خازن ۱۰۰۰ میکرو فاراد
۴٫ LCD 16*2
۵٫ برد بورد و اتصالات مربوط به آن
۶٫ پتانسیومتر ۴۷ کیلو اهم
طراحی مدار :
در تصویر زیر مدار پروژه فرکانس متر ( اندازه گیر فرکانس ) را مشاهده می کنید .
LCD با استفاده از اتصالاتی به برد آردینو متصل شده است .
اندازه فرکانس در LCD نمایش داده می شود .
ورودی موج به مدار پروژه ی سیگنال ژنراتور می رود که از طریق آن ، سیگنال تولید شده به آردینو می رود .
از IC 74LS14 برای اطمینان از اینکه فقط موج مستطیلی به آردینو می رسد استفاده می شود .
از خازن ها جهت فیلتر کردن نویز ها استفاده شده است .
این فرکانس متر می تواند فرکانس های تا ۱ مگاهرتز را اندازه گیری کند .
مدار سیگنال در تصویر زیر رسم شده است .
مدار سیگنال ژنراتور با استفاده تایمر ۵۵۵ :
اول از همه در مورد آی سی ۵۵۵ موج مربعی صحبت خواهیم کرد .
ساخت این مدار ضروری است .
زیرا برای تست فرکانس متر نیاز به تولید سیگنال مشخص داریم .
با داشتن یک سیگنال ژنراتور ما می توانیم موج مربعی تولید کنیم و با ارسال آن به آردینو ، خطا و حساسیت و سایر پارامترها را تنظیم کنیم .
تصویر سیگنال ژنراتور ساخته شده با آی سی ۵۵۵ در تصویر زیر آمده است :
مدار شماتیک این سیگنال ژنراتور نیز در تصویر زیر آورده شده است :
فرکانس سیگنال خروجی به مقاومت های RA، RB و خازن C بستگی دارد. معادله به صورت داده شده است.
Frequency (F) = 1/ (Time period) = 1.44/ ((RA+RB2)C).
در اینجا RA و RB مقادیر مقاومت و C مقدار ظرفیت هستند. با قرار دادن مقادیر مقاومت و ظرفیت خازن در معادله فوق فرکانس موج مربع خروجی را بدست می آوریم.
در دو تصویر بالا می بینیم که RB با یک پتانسیومتر در عمل جایگزین شده است . این کار به این دلیل انجام گرفته تا بتوانیم با تغییر مقاومت پتانسیومتر
فرکانس موج مربعی را تغییر دهیم .
اشمیت تریگر گیت :
می دانیم همه سیگنال های آزمایشی مربعی یا مستطیلی نیستند .
امواج مثلثی ، سینوسی و … نیز داریم .
از آنجایی که آردینو فقط قادر به تشخیص امواج مربعی یا مستطیلی می باشد ، ما باید تمام امواج سینوسی ، مثلثی و … را به موج مربعی
یا مستطیلی تبدیل کنیم .
برای این کار از اشمیت تریگر استفاده می کنیم .
اشمیت تریگر گیت یک قطعه دیجیتال است که برای عملیات حسابی و منطقی طراحی شده است .
این گیت خروجی را بر اساس سطح ولتاژ ورودی تعیین می کند . این گیت دارای سطح ولتاژ تری شولد است .
وقتی سطح ولتاژ ورودی بالاتر از سطح ولتاژ تری شولد باشد ، خروجی سطح بالا می شود . ( سطح بالا رونده پالس مربعی ) .
برعکس ، اگر سطح ولتاژ ورودی کمتر از ولتاژ تری شولد شود ، خروجی گیت سطح پایین می شود .
و به این شکل سیگنال مربعی توسط اشمیت تریگر ساخته می شود .
معمولا قبل اشمیت تریگر یک گیت NOT قرار داده می شود .
ما قصد داریم از تراشه ۷۴LS14 استفاده کنیم، این تراشه دارای ۶ گیت Schmitt Trigger در آن است. این شش گیت همانطور که در شکل زیر نشان داده شده است به صورت داخلی متصل می شوند
جدول کارکرد اشمیت تریگر به همراه گیت NOT ( معکوس ) در جدول زیر آورده شده است :
اکنون خروجی اشمیت تریگر را می توانیم به آردینو متصل کنیم و موج مربعی بگیریم .
توضیح کدهای پروژه فرکانس متر آردینو
کد نویسی برای فرکانس متر بسیار ساده می باشد .
ما در اینجا تابع PulseIn را توضیح می دهیم که وظیفه اصلی اندازه گیری فرکانس را این تابع برعهده دارد .
این تابع ما را قادر می سازد که مدت زمان حالت مثبت یا مدت زمان حالت منفی یک پالس مستطیلی را اندازه بگیریم .
Htime = pulseIn(8,HIGH);
Ltime = pulseIn(8, LOW);
این تابع زمانی اندازه گیری می کند که لبه بالا رونده یا لبه پایین رونده در PIN8 آردینو وجود دارد .
بنابراین در یک سیکل موج مدت زمان سطوح مثبت یا منفی را در میکرو ثانیه خواهیم داشت .
این تابع مدت زمان را در حد میکرو ثانیه اندازه گیری می کند .
در یک سیگنال داده شده، زمان بالا = ۱۰ میلی ثانیه و زمان کم = ۳۰ میلی ثانیه (با فرکانس ۲۵ هرتز) داریم.
بنابراین ۳۰۰۰۰ در عدد صحیح Ltime و ۱۰۰۰۰ در Htime ذخیره می شود
وقتی آنها را با هم جمع می کنیم، مدت چرخه را خواهیم داشت و با معکوس کردن آن، فرکانس را خواهیم داشت.
کد کامل پروژه در این قسمت قرار داده شده است :
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int Htime; //integer for storing high time
int Ltime; //integer for storing low time
float Ttime; // integer for storing total time of a cycle
float frequency; //storing frequency
void setup()
{
pinMode(8,INPUT);
lcd.begin(16, 2);
}
void loop()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Frequency of signal");
Htime=pulseIn(8,HIGH); //read high time
Ltime=pulseIn(8,LOW); //read low time
Ttime = Htime+Ltime;
frequency=1000000/Ttime; //getting frequency with Ttime is in Micro seconds
lcd.setCursor(0,1);
lcd.print(frequency);
lcd.print(" Hz");
delay(500);
}
آموزش ساخت ربات مریخ نورد
/۰ دیدگاهها/در آموزش رباتیک /توسط karanAdminدر این بخش ، آموزش ساخت یک مدل بسیار ساده شده ی ساخت ربات مریخ نورد را ارائه خواهیم کرد .
سیاره مریخ برای قرن ها تخیل ما را مجذوب خود کرده است و ایده ارسال مریخ نوردها برای کاوش در سطح آن، کنجکاوی ما را بیش از پیش تقویت کرده است. در این پروژه، ما به دنیای هیجان انگیز رباتیک می پردازیم و نحوه ساخت مریخ نورد مبتنی بر آردوینو با قابلیت عبور از زمین های مختلف را نشان خواهیم داد.
بنابراین، کمربند ایمنی خود را ببندید تا سفر هیجان انگیز ساخت مریخ نورد خودمان را آغاز کنیم.
در این مقاله، تمرکز ما بر روی ایجاد مریخ نورد با بلوتوث آردوینو است. یک هدف این آموزش ارائه یک توضیح گام به گام روشن از ساخت شاسی مریخ نورد تا برنامه ریزی و آزمایش آن است. وظیفه اصلی ما شامل آموزش کدنویسی است که به زبان برنامه نویسی C یا C++ نوشته شده است. میکروکنترلر آردوینو کد را کامپایل و اجرا می کند و به مریخ نورد این امکان را می دهد تا مطابق مشخصات مورد نظر ما عمل کند.
توضیحات طراحی مریخ نورد
قبل از اینکه به جنبههای فنی بپردازیم، بیایید لحظهای به درک طراحی مریخنورد بپردازیم. یک مریخ نورد معمولی باید در مناظر چالش برانگیز سطح مریخ حرکت کند. برای دستیابی به این هدف، ما بر روی ساخت یک مریخ نورد با سیستم ۶ چرخ محرک با سیستم تعلیق مناسب تمرکز خواهیم کرد تا از تحرک و پایداری مطلوب برای مریخ نورد اطمینان حاصل کنیم.
شاسی مریخ نورد به عنوان پایه ای برای کل وسیله نقلیه عمل می کند. باید محکم، بادوام و قابلیت عبور از زمین های مختلف را داشته باشد و همچنین باید قطعات الکترونیکی مختلف مانند برد آردوینو، منبع تغذیه و ماژول های کنترل موتور را در خود جای دهد.
من قطعات شاسی اکریلیک را با استفاده از SolidWorks ایجاد کردم و برش لیزری را برای ساخت مریخ نورد خود انجام دادم. من فایل های .dxf را برای پروژه مریخ نورد پیوست می کنم که می توانید از آن برای برش لیزری استفاده کنید. این ویدئو روند مونتاژ مریخ نورد را نشان می دهد.
قطعات مورد نیاز مریخ نورد
شاسی برش اکریلیک مریخ نورد
۶ موتور و چرخ BO
آردوینو اونو
ماژول درایور موتور L298n
ماژول بلوتوث HC-05
باتری ۱۲ ولت لیتیوم یونی با کانکتور
گیره L (8 عدد )
مهره و پیچ و مهره ۱۰ میلی متری M4 (8 عدد )
مهره و پیچ و مهره ۱۰ میلی متری M3 (12 عدد )
مهره و پیچ و مهره ۳۰ میلی متری M3 (12 عدد )
سوئیچ و اتصال سیم ها
ماژول درایور موتور L298N
ماژول درایور موتور L298N یک ماژول راه انداز موتور است که معمولاً در پروژه های رباتیک و الکترونیک استفاده می شود. این ماژول مبتنی بر مدار مجتمع L298n است، دارای دو مدار پل H، یکی برای هر کانال موتور است که امکان کنترل دو جهته موتورها را فراهم می کند. با ارائه سیگنال های منطقی مناسب به پایه های کنترل ماژول، می توانید سرعت و جهت موتور را کنترل کنید. از آنجایی که ما از سیگنال PWM تولید شده توسط آردوینو برای کنترل سرعت موتورها استفاده نمی کنیم، آنها با حداکثر سرعت خود کار خواهند کرد. دلیل این امر این است که ما پین های ENA و ENB را که مربوط به کنترل PWM هستند، در حالت ثابت روی برد نگه می داریم. بنابراین، هدف اصلی ماژول درایور موتور در این تنظیمات، تغییر جهت چرخش موتورها است. این قابلیت ربات را قادر می سازد در هر چهار جهت از جمله جلو، عقب، چپ و راست حرکت کند.
Pinout درایور موتور L298N
ماژول درایور موتور L298N دارای پین اوت خاصی است که با عملکردهای مختلف آن مطابقت دارد. در اینجا توضیحات پین اوت ماژول درایور موتور L298N آمده است.
VCC : این پین برای اتصال یک منبع تغذیه خارجی (تا ۱۲ ولت) برای تغذیه موتورها استفاده می شود.
GND : این پایه اتصال زمین برای ماژول است و باید به زمین منبع تغذیه و منبع سیگنال کنترل (آردوینو) متصل شود.
۵V : این پین یک خروجی ۵ ولتی تنظیم شده را ارائه می دهد که می تواند برای تغذیه اجزای خارجی یا تامین ولتاژ منطقی به منبع سیگنال کنترل استفاده شود.
ENA : این پین برای فعال یا غیرفعال کردن موتور متصل به کانال A و کانال B استفاده می شود و وظیفه کنترل سرعت موتور را از طریق سیگنال های PWM (Pulse Width Modulation) بر عهده دارد.
IN1 , IN2 , IN3 , IN4: این پایه ورودی برای کنترل جهت چرخش موتور متصل به کانال A، به طور مشابه IN3 و IN4 برای کانال B استفاده می شود. با ارائه سطوح منطقی مناسب (HIGH یا LOW)، می توانید جهت مورد نظر را تنظیم کنید. این پایه ها برای دریافت سیگنال (HIGH یا LOW) به پین های دیجیتال آردوینو متصل می شوند.
OUT1 , OUT2 : پین ذکر شده برای اتصال موتورها در نظر گرفته شده است. به طور خاص، یک موتور باید به OUT-1 و OUT-2 وصل شود در حالی که موتور دیگر باید به OUT-3 و OUT-4 متصل شود. لازم به ذکر است که موتورها را می توان در محدوده ولتاژ ۵ تا ۳۵ ولت متصل کرد. با این حال، شایان ذکر است که کاهش تقریبی ۲ ولت در ولتاژ خروجی در مقایسه با ولتاژ اعمال شده به پین Vcc وجود خواهد داشت.
ماژول بلوتوث HC-05
HC-05 یک ماژول بلوتوث پرکاربرد است که روشی راحت و قابل اعتماد برای افزودن قابلیت های ارتباط بی سیم به دستگاه های الکترونیکی ارائه می دهد. از ارتباط سریال از طریق پروتکل UART (گیرنده-فرستنده ناهمزمان جهانی) پشتیبانی می کند.
ماژول HC-05 از مشخصات بلوتوث نسخه ۲٫۰ پشتیبانی می کند و بسته به برنامه مورد نظر می تواند به عنوان یک دستگاه Master یا Slave از طریق دستورات AT پیکربندی شود. در حالت Master، می تواند اتصالات را با سایر دستگاه های بلوتوث آغاز کند، در حالی که در حالت Slave، می تواند اتصالات ورودی را بپذیرد.
HC-05 Pinout
ماژول بلوتوث HC-05 دارای یک پین اوت خاص است که با عملکردهای مختلف آن مطابقت دارد. در اینجا توضیحات پین اوت ماژول بلوتوث HC-05 آمده است.
VCC : این پین برای تامین برق ماژول استفاده می شود. معمولاً در محدوده ولتاژ ۳٫۳ تا ۶ ولت کار می کند.
GND : این پایه اتصال زمین ماژول است و باید به زمین منبع تغذیه و منبع سیگنال کنترل متصل شود.
TXD : این پین ، پین انتقال داده است و برای ارسال اطلاعات از ماژول به دستگاه دیگر استفاده می شود. باید به پین دریافت (RX) دستگاه گیرنده متصل شود.
RDX : این پین پین دریافت اطلاعات است و برای دریافت اطلاعات از دستگاه دیگری استفاده می شود. باید به پین انتقال (TX) دستگاه فرستنده متصل شود.
STATE : این پین یک پین اختیاری است که می توان از آن برای بررسی وضعیت ماژول استفاده کرد. می توان آن را طوری پیکربندی کرد که اطلاعات مربوط به وضعیت اتصال ماژول یا سایر اطلاعات مرتبط را ارائه دهد.
EN : این پین برای فعال یا غیرفعال کردن ماژول (حالت Command & Data) استفاده می شود. هنگامی که این پین بالا (۳٫۳ ولت یا ۵ ولت) کشیده می شود، ماژول فعال می شود (حالت فرمان)، و هنگامی که آن را LOW (0 ولت یا GND) کشیده می شود، ماژول غیرفعال می شود (حالت داده).
مونتاژ شاسی مریخ نورد
ما از یک ورق اکریلیک برش با لیزر برای ایجاد شاسی برای پروژه خود استفاده کرده ایم. ورق دقیقاً برش داده شده است تا تمام اتصالات و اجزای لازم را در خود جای دهد و امکان مونتاژ آسان با استفاده از پیچ گوشتی را فراهم می کند.
با کمک پیچ و مهره های ۱۰ میلی متری M4 پایه عقب را به پایه جلو متصل کنید
جفت پای جلو و عقب را با صفحه پایه با کمک گیره L با مهره ها و پیچ های ۱۰ میلی متری M3، M4 وصل کنید.
موتورها را با هر دو پایه به محل مناسب خود با مهره و پیچ و مهره ۳۰ میلی متری M3 وصل کرد.
تمام قطعات الکترونیکی را با چسب دو طرفه در محل مناسب خود قرار دهید.
نمودار مدار مریخ نورد با بلوتوث کنترل شده آردوینو
در اینجا شماتیک یک مریخ نورد کنترل شده با بلوتوث را مشاهده می کنید. در این طرح مجموعاً شش موتور داریم که سه موتور به صورت موازی در سمت راست و سه موتور به صورت موازی در سمت چپ متصل می شوند. این پیکربندی به هر سه موتور در هر طرف اجازه می دهد تا به طور همزمان کار کنند و با سرعت یکسان و در یک جهت کار کنند. با اتصال موازی آنها، اطمینان حاصل می کنیم که سیگنال های کنترلی و منبع تغذیه یکسان را دریافت می کنند. این ترتیب حرکت کارآمد و هماهنگ را برای مریخ نورد امکان پذیر می کند و قدرت مانور و پایداری آن را افزایش می دهد.
اتصالات :
ماژول بلوتوث آردوینو و HC-05:
پایه TX ماژول بلوتوث را به پایه RX (معمولاً پایه دیجیتال ۰) آردوینو وصل کنید.
پایه RX ماژول بلوتوث را به پایه TX (معمولاً پایه دیجیتال ۱) آردوینو وصل کنید.
پایه های VCC و GND ماژول بلوتوث را به برق مناسب (+۵ ولت) و پایه های زمین در آردوینو وصل کنید.
آردوینو و ماژول درایور موتور:
پایه های خروجی دیجیتال آردوینو (پایه های دیجیتال ۱۰، ۹، ۸ و ۷) را به پایه های ورودی مناسب (IN1، IN2، IN3، و IN4) در ماژول درایور موتور متصل کنید.
پین های ENA و ENB ماژول درایور موتور را با کمک هدر ماده به پین High State روی برد متصل کنید.
پایه های OUT1، OUT2، OUT3 و OUT4 ماژول درایور موتور را به پایانه های مناسب موتورها وصل کنید.
پایه های VCC (+5V) و GND ماژول درایور موتور را به اتصالات مناسب برق (Vin) و زمین (GND) در آردوینو وصل کنید.
منبع تغذیه:
ترمینال مثبت منبع تغذیه را به ورودی +۱۲ ولت ماژول درایور موتور وصل کنید.
ترمینال منفی منبع تغذیه را به پایه GND ماژول درایور موتور وصل کنید.
پایه GND آردوینو را به پایه GND ماژول درایور موتور وصل کنید.
توضیح کد های برنامه :
در اینجا کد کنترل کننده ی ساده ی مریخ نورد را قرار داده ایم .
پیکربندی پین : پین های روی برد آردوینو که به ماژول درایور موتور و سایر اجزا وصل شده اند تعریف شده اند. این مرحله تضمین می کند که از پین های صحیح برای کنترل موتور و سایر عملیات استفاده می شود.
ما پین های IN1، IN2، IN3 و IN4 را به صورت ۱۰،۹،۸ و ۷ پایه دیجیتال آردوینو تعریف کرده ایم. این پایه ها به پایه های ورودی ماژول درایور موتور متصل می شوند.
int state=0;
const int motorpin11=10; // L298n #NI1
const int motorpin12=9; // L298n #NI2
const int motorpin21=8; // L298n #NI3
const int motorpin22=7; // L298n #NI4
Setup: تابع setup فقط یک بار در ابتدای اجرای کد اجرا می شود. وظیفه پیکربندی پروتکل های ارتباطی، تنظیم حالت های پین و مقداردهی اولیه متغیرها را بر عهده دارد
در تابع setup() با مقداردهی اولیه ارتباط سریال سخت افزاری با نرخ باود ۹۶۰۰ شروع می کنیم. این به آردوینو اجازه می دهد تا با دستگاه های خارجی مانند ماژول بلوتوث با سرعت انتقال داده مشخص شده ارتباط برقرار کند.
در مرحله بعد، ما حالت های پین را برای پین های کنترل جهت مورد استفاده برای کنترل موتور تنظیم می کنیم. این پین ها برای کنترل حرکت و جهت موتورها پیکربندی شده اند. با تنظیم اولیه آنها بر روی LOW، اطمینان حاصل می کنیم که موتورها در شروع اجرای برنامه در حالت توقف هستند. این امر از هرگونه حرکت ناخواسته موتورها قبل از دریافت هر گونه دستور یا دستورالعمل جلوگیری می کند.
راهاندازی ارتباط سریال سختافزاری و تنظیم حالتهای پین مناسب، مراحلی حیاتی در آمادهسازی آردوینو برای کنترل مناسب موتور و اطمینان از کنترل و ثابت بودن حالت اولیه موتور هستند.
void setup() {
Serial.begin(9600);
pinMode(motorpin11,OUTPUT);
pinMode(motorpin12,OUTPUT);
pinMode(motorpin21,OUTPUT);
pinMode(motorpin22,OUTPUT);
digitalWrite(motorpin11,LOW);
digitalWrite(motorpin12,LOW);
digitalWrite(motorpin21,LOW);
digitalWrite(motorpin22,LOW);
}
LOOP : تابع حلقه پس از اتمام نصب به طور مداوم اجرا می شود. این تابع شامل منطق اصلی برنامه است که رفتار مریخ نورد را بر اساس دستورات دریافتی تعریف می کند.
تابع حلقه () یا LOOP به طور مداوم دستورات دریافتی از ماژول بلوتوث را بررسی می کند. بسته به فرمان دریافتی، مریخ نورد به جلو، عقب، گردش به چپ، گردش به راست یا توقف حرکت می کند.
کد به سیگنال های بلوتوث ورودی گوش می دهد و دستورات را از یک دستگاه جفت شده دریافت می کند. این می تواند شامل دستورالعمل هایی برای حرکت به جلو، عقب، چرخش به چپ یا راست، یا توقف مریخ نورد باشد.
void loop()
{ if (Serial.available()>0)
state=Serial.read();
{
دستورات دریافتی به سیگنال های کنترل موتور مناسب ترجمه می شوند. کد سیگنال های لازم را به ماژول راننده موتور ارسال می کند و جهت ها را مطابق دستورالعمل تنظیم می کند.
if (state=='F') {
digitalWrite(motorpin11,HIGH);
digitalWrite(motorpin12,LOW); // Forward motion of rover
digitalWrite(motorpin21,HIGH);
digitalWrite(motorpin22,LOW);
}
else if(state=='B') {
digitalWrite(motorpin11,LOW);
digitalWrite(motorpin12,HIGH); // Backward motion of rover
digitalWrite(motorpin21,LOW);
digitalWrite(motorpin22,HIGH);
}
else if(state=='S') {
digitalWrite(motorpin11,LOW);
digitalWrite(motorpin12,LOW); // Stop
digitalWrite(motorpin21,LOW);
digitalWrite(motorpin22,LOW);
}
else if(state=='L') {
digitalWrite(motorpin11,HIGH);
digitalWrite(motorpin12,LOW); // Left motion of rover
digitalWrite(motorpin21,LOW);
digitalWrite(motorpin22,HIGH);
}
else if(state=='R')
{
digitalWrite(motorpin11,LOW);
digitalWrite(motorpin12,HIGH); // Right motion of rover
digitalWrite(motorpin21,HIGH);
digitalWrite(motorpin22,LOW);
}
else if(state=='l')
{
digitalWrite(motorpin11,LOW);
digitalWrite(motorpin12,HIGH); // Backward Left motion of rover
digitalWrite(motorpin21,HIGH);
digitalWrite(motorpin22,LOW);
}
else if(state=='r')
{
digitalWrite(motorpin11,HIGH);
digitalWrite(motorpin12,LOW); // Backward Right motion of rover
digitalWrite(motorpin21,LOW);
digitalWrite(motorpin22,HIGH);
}
}}
داده های دریافتی با استفاده از دستورات if و else if مقایسه می شوند که امکان اجرای مشروط عبارات خاص را بر اساس ارزیابی این شرایط فراهم می کند. در این عبارات شرطی، ما هفت تابع حرکتی مختلف را تعریف کردهایم که با اقدامات مختلف مریخنورد مطابقت دارد. این توابع در داخل دستورات if بر اساس شرایط خاص فراخوانی می شوند. هر تابع وظیفه کنترل یک حرکت خاص مانند حرکت به جلو، عقب، چرخش به چپ یا راست، توقف، عقب به چپ و عقب به راست را بر عهده دارد. با سازماندهی کد به این روش، میتوانیم عملکرد را مدولار کنیم و درک و نگهداری آن را آسانتر کنیم. عبارات شرطی تضمین می کنند که تابع حرکت مناسب زمانی که شرط مربوطه بر اساس داده های دریافتی برآورده می شود، اجرا می شود. به طور خلاصه، دستور if و else if کد را قادر می سازد تا داده های دریافتی را ارزیابی کند و تابع حرکت مربوطه را بر اساس شرایط انجام شده اجرا کند و کنترل دقیق و مانورپذیری مریخ نورد را تسهیل می کند.
برنامه اندروید را برای کنترل مریخ نورد تنظیم کنید
برای اتصال ماشین کنترلشده با بلوتوث به تلفن خود، این مراحل را دنبال کنید: برنامه «Bluetooth RC Car» را در دستگاه Android خود باز کنید. لطفا توجه داشته باشید که در حال حاضر، این برنامه فقط برای کاربران اندروید در دسترس است. بلوتوث گوشی خود را با رفتن به تنظیمات گوشی خود روشن کنید. گوشی خود را به ماژول بلوتوث HC-05 وصل کنید. اگر یک ماژول HC-05 جدید دارید، یک مرحله اضافی قبل از اتصال وجود دارد. به تنظیمات بلوتوث گوشی خود بروید. دستگاه های بلوتوث را جستجو کنید. یک دستگاه بلوتوث به نام HC-05 پیدا خواهید کرد. با انتخاب دستگاه بلوتوث با تلفن خود آن را جفت کنید. در طول فرآیند جفت شدن، از شما خواسته می شود یک رمز عبور وارد کنید. رمز عبور پیش فرض برای HC-05 معمولاً ۱۲۳۴ یا ۰۰۰۰ است. رمز عبور را وارد کرده و فرآیند جفت شدن را ادامه دهید. پس از موفقیت آمیز شدن جفت شدن، مریخ نورد کنترل شده با بلوتوث شما اکنون به دستگاه اندرویدی شما متصل است.
با دنبال کردن این مراحل، میتوانید بین تلفن خود و ماژول بلوتوث مریخنورد ارتباط برقرار کنید و به شما این امکان را میدهد تا با استفاده از برنامه «Bluetooth RC Car» بهصورت بیسیم آن را کنترل کنید.
جمع بندی
تبریک می گویم! شما با موفقیت مریخ نورد مبتنی بر آردوینو خود را ساختید. اکنون زمان آن رسیده است که به آن اجازه پرسه زدن و کاوش را بدهید. مریخ نورد خود را به مناطق مختلف ببرید، آزمایشها را انجام دهید و دادههای ارزشمند را جمعآوری کنید. با استفاده از تلفن هوشمند یا سایر دستگاه های دارای بلوتوث آن را به صورت بی سیم کنترل کنید و نحوه مانور آن را در چالش ها مشاهده کنید.
ساخت مریخنورد آردوینو فرصتی هیجانانگیز برای بررسی روباتیک، الکترونیک و برنامهنویسی ارائه میدهد. این به ما امکان می دهد تا کاوش سیارات دوردست را شبیه سازی کنیم و کنجکاوی ما را در مورد اسرار جهان بر می انگیزد. بنابراین، ابزارهای خود را بردارید، خلاقیت خود را آزاد کنید و با مریخ نورد خودتان وارد این سفر هیجان انگیز ساختن و کاوش شوید!
کد کامل ربات مریخ نورد
int state=0;
const int motorpin11=10; // L298n #NI1
const int motorpin12=9; // L298n #NI2
const int motorpin21=8; // L298n #NI3
const int motorpin22=7; // L298n #NI4
void setup() {
pinMode(motorpin11,OUTPUT);
pinMode(motorpin12,OUTPUT);
pinMode(motorpin21,OUTPUT);
pinMode(motorpin22,OUTPUT);
digitalWrite(motorpin11,LOW);
digitalWrite(motorpin12,LOW);
digitalWrite(motorpin21,LOW);
digitalWrite(motorpin22,LOW);
Serial.begin(9600);
}
void loop() {
if (Serial.available()>0)
state=Serial.read();
{
if (state=='F')
{
digitalWrite(motorpin11,HIGH);
digitalWrite(motorpin12,LOW); // Forward motion of rover
digitalWrite(motorpin21,HIGH);
digitalWrite(motorpin22,LOW);
}
else if(state=='B')
{
digitalWrite(motorpin11,LOW);
digitalWrite(motorpin12,HIGH); // Backward motion of rover
digitalWrite(motorpin21,LOW);
digitalWrite(motorpin22,HIGH);
}
else if(state=='S')
{
digitalWrite(motorpin11,LOW);
digitalWrite(motorpin12,LOW); // Stop
digitalWrite(motorpin21,LOW);
digitalWrite(motorpin22,LOW);
}
else if(state=='L')
{
digitalWrite(motorpin11,HIGH);
digitalWrite(motorpin12,LOW); // Left motion of rover
digitalWrite(motorpin21,LOW);
digitalWrite(motorpin22,HIGH);
}
else if(state=='R')
{
digitalWrite(motorpin11,LOW);
digitalWrite(motorpin12,HIGH); // Right motion of rover
digitalWrite(motorpin21,HIGH);
digitalWrite(motorpin22,LOW);
}
else if(state=='l')
{
digitalWrite(motorpin11,LOW);
digitalWrite(motorpin12,HIGH); // Backward Left motion of rover
digitalWrite(motorpin21,HIGH);
digitalWrite(motorpin22,LOW);
}
else if(state=='r')
{
digitalWrite(motorpin11,HIGH);
digitalWrite(motorpin12,LOW); // Backward Right motion of rover
digitalWrite(motorpin21,LOW);
digitalWrite(motorpin22,HIGH);
}
}}
دستگاه فلافل ساز
/۰ دیدگاهها/در ماشین آلات آماده سازی, ماشین آلات فرآوری, ماشین آلات مواد غذایی, مشاوره راه اندازی کارخانه جات صنایع بسته بندی /توسط karanAdminکاران ماشین
سازنده و تامین کننده ماشین آلات خطوط تولید و بسته بندی صنایع آشامیدنی و کنسروی
آدرس
استان گیلان، لاهیجان، جاده رودبنه،ابتدای رودبنه،
کارگاه ماشین سازی کاران ماشین
تماس با ما
info@karanmachine.com
1370 244 0911
ساعات کاری
شنبه-چهارشنبه: 8:00-17:00
پنجشنبه: 8:00-14:00
جمعه: تعطیل