من شروع به جستجو در پردازش و انتقال مقادیر بین پردازش و آردوینو کردهام . اگر میپرسید پردازش چیست، اساساً یک زبان برنامهنویسی منبع باز برای بصری کردن دادهها است که میتواند با خواندن مقادیر/پینها یا با تنظیم آنها با آردوینو ارتباط برقرار کند. فقط به یاد داشته باشید که آنها 2 چیز بسیار متفاوت هستند و به 2 طرح متفاوت نیاز دارند!
اگر می خواهید اطلاعات آردوینو را به صورت گرافیکی نمایش دهید، یا اگر می خواهید یک دستگاه ورودی فیزیکی برای رایانه خود داشته باشید، بسیار جالب است، به عنوان مثال یک برنامه فلش که ورودی ها را از سوییچ ها و پتانسیومترها می گیرد.
بنابراین، به هر حال، نصب و کار کردن این بسیار آسان است، فقط مراحل زیر را در اینجا انجام دهید: http://www.arduino.cc/playground/Interfacing/Processing
اکنون، من با کمی مشکل در دریافت مقادیر از SRF05 از آردوینو به پردازش مواجه شده ام. در آردوینو خوب کار می کند و پورت سریال مقادیر را به درستی نشان می دهد اما در Processing نتوانستم مقادیر را دریافت کنم. برخی از افراد استفاده از Firmata را پیشنهاد می کنند، اما مشکل این است که تعداد کمی از توابع مورد نیاز من برای مثال delayMicroseconds () در هنگام استفاده از Firmata در دسترس نیست.
همچنین من افراد زیادی را دیدم که سعی می کردند با استفاده از تنظیمات حالت های مختلف برای SRF05 این کار را انجام دهند، اما صادقانه بگویم من کدم را دوست دارم، بنابراین می خواهم از آن استفاده کنم - من از پین های اکو و ماشه جداگانه استفاده می کنم تا یک پین منفرد. فکر میکنم اگر در دریافت مقادیر دیگر مشکل دارید، این ممکن است به شما کمک کند.
مشکل دیگری که با آن برخورد کردم تبدیل خروجی پورت سریال به عدد صحیح بود، فقط این را اصلا دوست نداشت، بنابراین یک راه حل سریع برای رفع آن پیدا کردم. اگرچه این خطای دیگری را معرفی می کند که باید آن را بگیریم، اما اکنون فکر می کنم مجموعه ای از کدها را دارم که برای آنچه من نیاز دارم به خوبی کار می کند.
بنابراین اول از همه نگاهی به آموزش آردوینو SRF05 من بیندازید.
طرح آردوینو SRF05
اکنون مدار را دریافت کرده اید و قطعات از طرح زیر در برد آردوینو استفاده می کنند:
const int numReadings = 10;
int readings[numReadings]; // the readings from the analog input
int index = 0; // the index of the current reading
int total = 0; // the running total
int average = 0; // the average
int echoPin = 2; // the SRF05's echo pin
int initPin = 3; // the SRF05's init pin
unsigned long pulseTime = 0; // variable for reading the pulse
unsigned long distance = 0; // variable for storing the distance
void setup() {
// make the init pin an output:
pinMode(initPin, OUTPUT);
// make the echo pin an input:
pinMode(echoPin, INPUT);
// initialize the serial port:
for (int thisReading = 0; thisReading < numReadings; thisReading++) {
readings[thisReading] = 0;
}
// set the serial port to begin logging values which Processing will later read.
Serial.begin(9600);
}
برای جزئیات بیشتر: آردوینو و پردازش - دریافت مقادیر از حسگر اولتراسوند SRF05 و پورت سریال
در ادامه، متن انگلیسی این مطلب را میتوانید مشاهده نمایید:
I’ve started to delve into Processing and passing values between Processing and Arduino. If you’re wondering what Processing is, basically its an open source programming language for vizualising data that can interface with Arduino either by reading values/ pins or by setting them. Just remember that they are 2 very different things and require 2 different sketches!