برد هوش مصنوعی Sipeed

راه اندازی و کار با برد Maixduino بخش ششم: ارتباط سریال UART

getting-started-with-sipeed-m1-maixduino-step-six-uart-digispark
نوشته شده توسط معین صابری

در سلسله آموزش های برد Maixduino، قسمت ششم به رابط سریال در برد Miaxduino یا همان قابلیت UART می پردازیم. برد maixduino از پورت سریال UART جهت پروگرام و تبادل داده با رایانه، دقیقا مانند برد UNO بهره می برد. در این آموزش قصد داریم به پورت سریال این برد و قابلیت های آن بپردازیم. مطابق سایر سلسله آموزش های برد SIPEED، ابتدا به معرفی توابع رابط سریال می پردازیم. در ادامه به کمک یک نمونه برنامه، نحوه استفاده از توابع را مشاهده خواهیم کرد. اما پیش از بررسی توابع، به طور مختصر به رابط سریال UART می پردازیم. در ادامه این آموزش با مرجع تخصصی برد هوش مصنوعی Sipeed به زبان فارسی، دیجی اسپارک همراه باشید.

 


رابط سریال UART تعریف و کاربرد


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

رابط سریال UART تعریف و کاربرد - دیجی اسپارک

 

ارتباط UART، یک ارتباط دو طرفه است. به عبارت دیگر فرستنده و گیرنده می توانند همزمان هم داده ارسال کنند و هم داده های ارسالی را دریافت کنند. عبارت UART که مخفف Universal Asynchronies Receiver Transmitter است، دارای دو پایه به نامه های RX و TX است. پایه RX جهت دریافت و پایه TX جهت ارسال داده ها به کار می رود. از این پروتکل در طراحی و پیاده سازی بسیاری از سیستم ها استفاده می شود. برد Maixduino نیز همانند برد آردوینو، از این پروتکل پشتیبانی می کند. در کنار این، سریال سخت افزاری و توابع توسعه یافته در آردوینو جهت ارتباط سریال، در برد Maixduino نیز قابل استفاده است. قسمت بعدی به این توابع می پردازیم.

 


رابط سریال در برد Miaxduino


پس از معرفی رابط سریال UART، نوبت به بررسی رابط سریال و توابع آن در برد Maixduino می رسد. توابع سریال در برد Maixduino دقیقا همان توابع آردوینو برای سایر بردها هستند. جدول زیر مهم ترین توابع سریال را نمایش می دهد. دقت داشته باشید که همانند سایر برد های آردوینو، برد Maixduino قابلیت دریافت و ارسال داده به سریال مانیتور آردوینو را داراست.

شرح ورودی تابع
به کمک این تابع ارتباط سریال راه اندازی می گردد. وروی تابع هم نرخ تبادل داده نظر ۹۶۰۰، ۱۱۵۲۰۰ و… را فراهم می کند. نرخ تبادل داده begin(baud_rate)
به کمک این تابع می توان تعداد کاراکترهای موجود در سریال بافر که هنوز خوانده نشده اند را در خروجی تابع مشاهده کرد. بدون ورودی available()
به کمک این تابع می توان به جستجوی رشته ای که در ورودی تابع قرار دارد، در بافر سریال پرداخت. ورودی از نوع رشته یا ارایه ای از کاراکترها find(char arrya[])
به کمک این تابع می توانید خروجی های مختلفی را در سریال مانیتور قرار دهید. ورودی های مختلف صحیح، اعشاری، رشته  و آرایه ای از کاراکترها(c style string)  print(input)
این تابع همانند تابع print، پس از چاپ عبارات، یک خط پایین می رود. ورودی های مختلف صحیح، اعشاری، رشته  و آرایه ای از کاراکترها(c style string) println(input)
این تابع رشته موجود در بافر سریال را خوانده و در خروجی قرار می دهد. بدون ورودی readString()
این تابع یک کاراکتر از بافر سریال خوانده و در خروجی قرار می دهد. بدون ورودی read()

 

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

 


اجرای یک نمونه برنامه


جهت روشن تر شدن موضوع سریال در برد Miaxduino، این قسمت را به اجرای یک نمونه برنامه می پردازیم. در این برنامه اسم خود را در سریال مانیتور وارد کنید. سپس برد در جواب به شما پاسخ خواهد داد!

void setup() {
  Serial.begin(115200);

}

void loop() {
  String s = "";
  if (Serial.available() > 0) {
    s = Serial.readString();
    Serial.print("HELLO ");
    Serial.flush();
    Serial.println(s);
    Serial.flush();
  }
}

 

 پس از اجرای کد فوق، در صورتیکه در سریال مانیتور عبارتی را تایپ کنید، عبارت HELLO به عبارت ارسالی از سوی شما اضافه می شود.

رابط سریال در برد Miaxduino - دیجی اسپارک

 


 لوازم مورد نیاز


بردهای مبتنی بر هوش مصنوعی Sipeed

برد Maixduino

 


جمع بندی


در سلسله آموزش های برد پردازشی sipeed، قسمت ششم به رابط سریال در برد Miaxduinoیا همان uart در این برد پرداختیم. رابط سریال uart یکی از مهم ترین و پرکاربردترین ابزارها در سیستم های مختلف به شمار می روند.  برد Maixduino نیز از این قابلیت بهره می برد. در این آموزش ابتدا به طور خلاصه به بررسی ارتباط سریال uart پرداختیم. سپس در ادامه توابع و دستورات آردوینو برای راه اندازی و کار با رابط سریال Maixduino مورد بررسی قرار گرفت. در نهایت با ارائه یک مثال ، نحوه استفاده از توابع در برنامه های عملی، مشاهده گردید.

 

چنانچه هرگونه ابهامی در مطالب درج شده وجود دارد، می توانید با ثبت نظر در انتهای همین پست سوال خود را بپرسید. تاکنون در دیجی اسپارک بیش از ۲۶ هزار سوال و پاسخ ثبت شده است؛ پس نظرات بی جواب نمی مانند! همچنین اگر ایراد و یا اشکالی در مطالب درج شده وجود دارد، لطفا آن را با ثبت نظر، مطرح کنید. همچنین اگر مشکلی در کدها وجود داشته و یا اجرا نمی شوند، مورد را حتما در انتهای همین آموزش مطرح نمایید. نظرات شما برای ما بسیار ارزشمند هسنند!! 

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه