آردوینو آموزش آردوینو پروسسینگ Processing پروژه های آردوینو

نمایشگر فاصله با ماژول فاصله سنج آلتراسونیک SRF و نرم افزار پروسسینگ

Arduino-SRF-module-and-processing-diagram-tutorial-digispark
نوشته شده توسط پریسا پوربلورچیان

نرم افزار پروسسینگ آردوینو یک پلتفرم اوپن سورس دارای Sketchbook و زبان برنامه نویسی جاوا وC++ است. با استفاده از این نرم افزار نحوه ی کدنویسی و ایجاد محیط گرافیکی را یاد خواهیم گرفت. این نرم افزار در سال ۲۰۰۱ جهت پردازش تصویرهای تجسمی پروموت شد و در حال حاضر ده ها هزار نفر از دانش آموزان و دانشجویان برای طراحی محیط گرافیکی و نمونه سازی بدون دانش تخصصی  از آن استفاده می‌کنند. نرم افزار پروسسینگ رایگان و اوپن سورس است. قابلیت اجرای برنامه هایی با خروجی  ۲D, 3D , PDF را دارد. ادغام با برنامه OpenGL برای طراحی شتاب های  ۲D و ۳D، قابلیت اجرا با GNU/Linux, Mac OS X, Windows, Android,  ARM نیز دارد. بیش از ۱۰۰ کتابخانه در این نرم افزار قرار گرفته شده است و به راحتی قابل استفاده است. تشخیص و اندازه‌گیری فاصله در کیت‌های DIY از اهمیت ویژه‌ای برخوردار است. سنسور آلتراسونیک، بسیار دقیق عمل می‌کند. در این آموزش توسط نرم افزار پروسسینگ، فاصله شی تا سنسور در GUI نمایش داده می‌شود. در ادامه با مرجع تخصصی آردوینو به زبان فارسی دیجی اسپارک همراه باشید.

 


۱- فاصله سنج آلتراسونیک SRF


ماژول فاصله سنج SRF، اجسام قرار گرفته شده در مسیر سنسور را تشخیص داده و سپس فاصله شی تا سنسور را اندازه گیری می‌کند. ولتاژ کاری ماژول فاصله سنج SRF بین ۴٫۵ تا ۵٫۵ ولت DC است. فرکانس کاری ماژول SRF در حدود ۴۰ کیلوهرتز است. این ماژول از ۵ پایه Trigger, Echo, Out, Vcc, Gnd تشکیل شده است. پایه Trigger و Echo در خروجی پالس دیجیتال ۱۰uS ایجاد می‌کند. خروجی پایه Echo بین ۰ تا Vcc متغیر است. دراین حالت پالس ۱۰uS به پایه تریگر Trigger ارسال شده و سپس سنسور به صورت اتوماتیک در خروجی فرکانس ۴۰ کیلوهرتز را ارسال خواهد کرد. توسط پایه Echo مانیتورنیگ خروجی انجام می‌شود. هنگامی که خروجی Echo افزایش یابد، تابمر فعال می‌شود. سپس با کاهش یافتن خروجی Echo، مدت زمان سپری شده در تایمر ذخیره شده و در نهایت فاصله توسط فرمولی که برای محاسبه فاصله شی تا سنسور تعریف شده است، اندازه گیری خواهد شد.

Distance (in cm) = (elapsed time * sound velocity (340 m/s)) / 100 / 2

 


۲- پیش نیاز آردوینو با پروسسینگ


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

معرفی نرم افزار پروسسینگ Processing و آموزش نصب و راه اندازی برای آردوینو

آموزش کار با نرم افزار پروسسینگ Processing بخش دوم GUI با LED

آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE

نرم افزار پروسسینگ Processing ساخت نمایشگر فاصله سنج با آلتراسونیک SRF برد آردوینو - دیجی اسپارک

 


۳- اجرای پروسسینگ Processing


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

 

ارتبا سریال Serial با برد آردوینو

کلاسی برای ارسال و دریافت دیتا که از پروتکل سریال serial communication استفاده می‌شود. به عنوان مثال:

import processing.serial.*;

// The serial port:
Serial myPort;       

// List all the available serial ports:
printArray(Serial.list());

// Open the port you are using at the rate you want:
myPort = new Serial(this, Serial.list()[0], 9600);
  
// Send a capital A out the serial port:
myPort.write(65);

تابع import

از تابع import برای فراخوانی کتابخانه در نرم افزار پروسسینگ استفاده می‌شود. از کاراکتر * برای پایان دادن به تابع کتابخانه استفاده می‌گردد.

	
import libraryNameimport

تابع PFont

تابع PFont یک کلاس فونت برای نرم افزار پروسسینگ است. برای ساخت فونت مورد نظر از منو Tools، گزینه Create fonts را انتخاب کنید. از پسوند vlw. برای فونت استفاده می‌شود.

PFont  myFont;

تابع ()size

تعریف ابعاد جهت نمایش ابعاد صفحه نمایش و اتنخاب عرض و طول آن.

	
size(size(widthwidth, , heightheight)
size(width, height, renderer)

تابع ()Background

از تابع background جهت انتخاب رنگ صفحه نمایش استفاده می‌شود. برای انتخاب رنگ باید از کد رنگ ها استفاده کنید.

	
background(backgr rgb)
background(rgb, alpha)
background(gray)
background(gray, alpha)
background(v1, v2, v3)
background(v1, v2, v3, alpha)
background(image)

تابع ()textAlign

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

	
textAlign(textAl alignX)
textAlign(alignX, alignY)

تابع ()fill

توسط تابع fill، رنگ اشکال داخل صفحه نمایش را می‌توان تعیین کرد.

	
fill(fill(rgbrgb)
fill() fill rgb, alpha)
fill(gray)
fill(gray, alpha)
fill(v1, v2, v3)
fill(v1, v2, v3, alpha)

تابع ()text

توسط تابع text، مکان نمای نمایش متن یا اشکال دیگر در صفحه مشخص می‌گردد.

	
text(text(cc, , xx, , yy)
text() text c, x, y, z)
text(str, x, y)
text(chars, start, stop, x, y)
text(str, x, y, z)
text(chars, start, stop, x, y, z)
text(str, x1, y1, x2, y2)
text(num, x, y)
text(num, x, y, z)

تابع ()textSize

توسط تابع textsize، سایز فونت نمایش متن در صفحه مشخص می‌گردد.

textSize(size)

تابع ()stroke

از تابع stroke جهت تعیین رنگ دور اشکال استفاده می‌شود.

	
stroke(stroke rgb)
stroke(rgb, alpha)
stroke(gray)
stroke(gray, alpha)
stroke(v1, v2, v3)
stroke(v1, v2, v3, alpha)

ارتباط نرم افزار پروسسینگ Processing با آردوینو - دیجی اسپارک

 


۴- کد پروسسینگ Processing


 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 

 

اتصالات ماژول آلتراسونیک به آردوینو

  • پایه Trigger را به پایه ۸ دیجیتال آردوینو Arduino اتصال دهید.
  • پایه Echo را به پایه ۷ دیجیتال آردوینو Arduino اتصال دهید.

برای اجرای پروژه، اطلاعات از پایه تریگر خوانده شده و سپس توسط فرمول، فاصله اندازه گیری می‌گردد.

 


۵- کد فاصله سنج با آردوینو Arduino


 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 

ساخت فاصله سنج نرم افزار پروسسینگ Processing و آردوینو - دیجی اسپارک

 


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


ماژول تشخیص فاصله آلتراسونیک SRF05

برد آردوینو Arduino UNO

کابل مخصوص برد بورد

 

 

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

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

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

۲۶ دیدگاه

  • سلام
    از آموزش کامل و توضیح خط به خط بی نهایت ممنونم.
    بی صبرانه منتظر آموزش بعدی هستم

    • سلام
      کاربر گرامی برای دسترسی به کدها باید اشتراک تهیه کنید. گزینه ثبت نام سایت را انتخاب و اشتراک خریداری کنید.

  • سلام
    ارتباط بین آردوینو و نرم افزار از چه طریقی است؟! چطور تعیین میکنیم دیتا ارسال شود>

    • سلام
      از طریق پورت سریال ارتباط بین آردوینو و نرم افزار پروسسینگ برقرار می‌گردد.

  • با سلام و خسته نباشید
    طبق دستور عمل کردیم
    موقع اجرا کردن کد processing با این خطا مواجه شدیم
    Could not parse -1 for –display

  • سلام خسته نباشید خانم پوربلورچیان
    میخواستم بدونم که آیا امکان اجرای این پروژه با برد آردوینو nano با پردازنده ATmega328 هست یا خیر؟
    اگر امکانش باشه آیا نیازی به ایجاد تغییراتی در اتصالات یا کدنویسی برنامه ذکر شده هست یا میتوان با تمام آموزش های گفته شده این پروژه را با برد آردوینو nano نیز انجام داد؟
    اگر راهنمایی بفرمایید ممنون میشم
    سپاس فراوان

    • با سلام
      هیچ تفاوتی در نوع برد وجود ندارد و تنها کافیست در تنظیمات آردوینو برد مورد نظر را انتخاب کنید. کدها نیازی به تغییر ندارد.

  • سلام خانم پور بلورچیان
    خسته نباشید
    میخواستم بدونم امکانش هست که این پروژه رو با برد آردوینو NANO با پردازنده ATmega328 هم انجام داد؟
    اگر که این امکان وجود داشته باشه ، بفرمایید که نیازی به ایجاد تغییراتی در اتصالات یا کد برنامه نویسی هست یا خیر؟
    ممنون میشم اگر راهنمایی بفرمایید
    سپاس فراوان

    • با سلام
      هیچ تفاوتی در نوع برد وجود ندارد و تنها کافیست در تنظیمات آردوینو برد مورد نظر را انتخاب کنید. کدها نیازی به تغییر ندارد.

  • سلام
    من از example این کتابخونه ای که معرفی کردین استفاده کردم و مدام فاصله رو صفر برمیگردونه
    البته وقتی قطع و وصل میکنم تغذیش رو تو یه لحظه یه عدد میده(البته عددش هم درست نیست) و نمیدونم مشکل از کجاست.
    و اینکه مگه ولتاژ کاری سنسور ۵ ولت نیست؟
    نباید برای صفرو یک کردن پایه های trig و echo از level shifter استفاده کنیم؟

  • سلام خانم پوربلورچیان
    من تو اجرای پروژه با این خطا مواجه میشم :
    RuntimeException: Error opening serial port COM9: Port not found
    Could not run the sketch (Target VM failed to initialize).
    میشه راهنماییم کنین
    اگه میشه لطفا راجع به اتصال پورت سریال یکم توضیح بدین که چطور باید باشه
    ممنون

    • با سلام
      این ارور مربوط به عدم شناسایی پورت آردوینو در سیستم است.
      در خصوص سریال مانتیور با نگه داشتن همزمان CTRL +SHIFT + M باز خواهد شد.