منوی Sketch: (ادامه)
5⃣ منوی Include Library: قبل از توضیح این منو باید متذکر شوم که وقتی ما طرح آردوینو را می نویسیم باید بتوانیم از کلیه ماژولها، شیلد ها و ابزار جانبی آن نیز استفاده کرده و آنها را نیز در برنامه خود وارد کنیم.
برای این منظور و جهت راحتی کار با آردوینو و برای اینکه تعداد خطوط برنامه نویسی به حداقل خود برسد کتابخانه هایی را باید به برنامه اضافه کنیم. به همین جهت نرم افزار IDE آردوینو این منو را در لیست منوهای خود قرار داده است.
مثلاً ما می خواهیم با کارت SD کار کنیم که روش استفاده آنرا نمیدانیم، ابتدا باید کتابخانه را به طرح مان اضافه کنیم، حال دو حالت پیش می آید:
✅ کتابخانه SD در لیست کتابخانه های آردوینو وجود دارد: در این صورت از منوی Include Library روی گزینه SD کلیک می کنیم و این کتابخانه بصورت دستور زیر در نرم افزار ما به قسمت بالایی طرح اضافه می گردد:
#include <SD.h>
✅ حالت دوم این است که کتابخانه مورد نظر در لیست کتابخانه های آردوینو وجود ندارد: در این صورت باید به سراغ کتابخانه هایی برویم که توسط برنامه نویسان نوشته شده و در اینترنت قرار داده شده اند. و از دو طریق میتوانیم آنرا بدست آوریم:
1- بعنوان مثال دنبال کتابخانه SD.h می گردیم. در اینترنت که اکثر کتابخانه ها در سایت GitHub می باشند. عبارت SD.h Library forArduino را وارد کرده و از سایت GitHub بعنوان مثال پوشه Zip شده ای به ما میدهدکه در تصویر زیر نمایش داده شده است. سپس به محیط IDE آردوینو برگشته و از منوی Sketch زیر منوی Include Library و سپس گزینه ...Add.ZIPLibrary را انتخاب کرده و از پوشه Downloads روی کتابخانه دانلود شده دابل کلیک می کنیم. حال اگر مجدداً به منوی Include Library سر بزنیم می بینیم که کتابخانه SD در آنجا وجود دارد و آنرا انتخاب می کنیم تا به برنامه مان اضافه گردد.
2- از منوی Sketch زیر منوی Include Library و سپس گزینه ...Manage Libraries را انتخاب کرده و منتظر می مانیم تا آردوینو کتابخانه های موجود خودش را بروز رسانی کند سپس نام کتابخانه مورد نظر را در کادر بالایی پنجره باز شده وارد می کنیم و لیست یک سری از مثالها که کتابخانه مورد نظر در آنها استفاده شده است به ما نمایش داده می شود. که یکی یکی روی آنهایی که از توضیحاتشان خوشمان آمد کلیک کرده و کلید Install را میزنیم و به همین سادگی کتابخانه مورد نظر وارد محیط IDE آردوینو می شود.
بهتر است که پس از اضافه شدن کتابخانه ها یکبار محیط IDE را ببندیم و از نو باز کنیم.
حال میخواهیم نحوه استفاده از کتابخانه مورد نظر را یاد بگیریم. به منوی File رفته و گزینه Examples را انتخاب می کنیم و در زیر منوی آن دنبال کتابخانه ای که نصب کردیم گشته و سپس آنرا انتخاب می کنیم مشاهده می شود که چندین مثال ساده و روان با توضیحات کافی در آنجا وجود دارد که می توانیم با تغییراتی کوچک در مثالهای فوق طرح خودمان را بنویسیم.
ادامه دارد...
https://telegram.me/ArduinoKaraneJavan
5⃣ منوی Include Library: قبل از توضیح این منو باید متذکر شوم که وقتی ما طرح آردوینو را می نویسیم باید بتوانیم از کلیه ماژولها، شیلد ها و ابزار جانبی آن نیز استفاده کرده و آنها را نیز در برنامه خود وارد کنیم.
برای این منظور و جهت راحتی کار با آردوینو و برای اینکه تعداد خطوط برنامه نویسی به حداقل خود برسد کتابخانه هایی را باید به برنامه اضافه کنیم. به همین جهت نرم افزار IDE آردوینو این منو را در لیست منوهای خود قرار داده است.
مثلاً ما می خواهیم با کارت SD کار کنیم که روش استفاده آنرا نمیدانیم، ابتدا باید کتابخانه را به طرح مان اضافه کنیم، حال دو حالت پیش می آید:
✅ کتابخانه SD در لیست کتابخانه های آردوینو وجود دارد: در این صورت از منوی Include Library روی گزینه SD کلیک می کنیم و این کتابخانه بصورت دستور زیر در نرم افزار ما به قسمت بالایی طرح اضافه می گردد:
#include <SD.h>
✅ حالت دوم این است که کتابخانه مورد نظر در لیست کتابخانه های آردوینو وجود ندارد: در این صورت باید به سراغ کتابخانه هایی برویم که توسط برنامه نویسان نوشته شده و در اینترنت قرار داده شده اند. و از دو طریق میتوانیم آنرا بدست آوریم:
1- بعنوان مثال دنبال کتابخانه SD.h می گردیم. در اینترنت که اکثر کتابخانه ها در سایت GitHub می باشند. عبارت SD.h Library forArduino را وارد کرده و از سایت GitHub بعنوان مثال پوشه Zip شده ای به ما میدهدکه در تصویر زیر نمایش داده شده است. سپس به محیط IDE آردوینو برگشته و از منوی Sketch زیر منوی Include Library و سپس گزینه ...Add.ZIPLibrary را انتخاب کرده و از پوشه Downloads روی کتابخانه دانلود شده دابل کلیک می کنیم. حال اگر مجدداً به منوی Include Library سر بزنیم می بینیم که کتابخانه SD در آنجا وجود دارد و آنرا انتخاب می کنیم تا به برنامه مان اضافه گردد.
2- از منوی Sketch زیر منوی Include Library و سپس گزینه ...Manage Libraries را انتخاب کرده و منتظر می مانیم تا آردوینو کتابخانه های موجود خودش را بروز رسانی کند سپس نام کتابخانه مورد نظر را در کادر بالایی پنجره باز شده وارد می کنیم و لیست یک سری از مثالها که کتابخانه مورد نظر در آنها استفاده شده است به ما نمایش داده می شود. که یکی یکی روی آنهایی که از توضیحاتشان خوشمان آمد کلیک کرده و کلید Install را میزنیم و به همین سادگی کتابخانه مورد نظر وارد محیط IDE آردوینو می شود.
بهتر است که پس از اضافه شدن کتابخانه ها یکبار محیط IDE را ببندیم و از نو باز کنیم.
حال میخواهیم نحوه استفاده از کتابخانه مورد نظر را یاد بگیریم. به منوی File رفته و گزینه Examples را انتخاب می کنیم و در زیر منوی آن دنبال کتابخانه ای که نصب کردیم گشته و سپس آنرا انتخاب می کنیم مشاهده می شود که چندین مثال ساده و روان با توضیحات کافی در آنجا وجود دارد که می توانیم با تغییراتی کوچک در مثالهای فوق طرح خودمان را بنویسیم.
ادامه دارد...
https://telegram.me/ArduinoKaraneJavan
سلام بر آردوینو کاران جوان
امروز میخواهیم یک پروژه با ماژول PING یا همون ماژول آلتراسونیک که تصویر اون رو در گیف بالا می بینید براتون آموزش بدهیم.
اما نه دقیقاً همون پروژه. بلکه میخواهیم با استفاده از ماژول PING یک متر دیجیتالی بسازیم و فاصله اجسام از سنسور رو برحسب سانتیمتر روی پورت سریال نشون بدیم و در پروژه بعدی که می خواهیم کار با LCD های کاراکتری رو یاد بگیریم بجای پورت سریال متراژ خوانده شده را روی LCD نمایش دهیم.
ماژول PING چیست؟
اساس کار ماژول آلتراسونیک (فراصوت) مشابه رادار یا ردیاب صوتی، تشخیص ویژگی های هدف از طریق تحلیل بازتاب امواج رادیویی یا صوتی می باشد. این ماژول امواج صوتی را با فرکانس بالا ایجاد کرده و موج بازتاب شده را دریافت و تحلیل می نماید.
این حسگر با محاسبه ی زمان بین فرستادن سیگنال و گرفتن بازتاب، فاصلهٔ جسم را محاسبه می کند.
در این ماژول سنجش مسافت، فرستنده آلتراسونیک و حسگر بر روی یک برد قرار داده شده و مدار الکترونیکی واسط، کار را برای استفاده از این ماژول بسیار ساده می نماید.
به طور کلی این ماژول با همه میکرو کنترلر ها سازگار می باشد؛ اما چنانچه از آردوینو برای به کارگیری این ماژول استفاده می نمایید با استفاده از توابع NewPing در چند خط کد می توانید آن را راه اندازی نمایید.
قیمت ارزان و به کارگیری آسان، این ماژول را تبدیل به یکی از ماژول های معروف و پرکاربرد در حوزه سنسورهای آلتراسونیک سنجش مسافت تبدیل کرده است.
قبل از ارائه توضیحات در مورد طرح برنامه بهتر است که یک نکته را یاد آوری نمایم که برای کار با هر نوع ماژولی که می خواهیم به آردوینو متصل نماییم باید ابتدا کتابخانه های آنرا از اینترنت دریافت کرده و با استفاده از روشهایی که قبلاً توضیح داده شده اند به نرم افزار آردوینو اضافه نماییم. که در این مثال ما از کتابخانه NewPing.h که مربوط به ماژول PING یا همان آلتراسونیک می باشد استفاده خواهیم کرد بنابراین ابتدا باید این کتابخانه را به نرم افزار آردوینو اضافه نماییم تا برنامه نوشته شده کار کند. البته من کتابخانه NewPing.h را در زیر جهت دانلود قرار خواهم داد.
پس از اضافه نمودن کتابخانه به برنامه شما باید یک متغیر از نوع کلاس کتابخانه مورد نظر بسازید و آرگومانهایی را که لازم دارد به آن بدهید.
خوب به نظرم بهتر است که به برنامه اصلی بپردازیم و نحوه کارکرد آنرا با هم برسی کنیم:
#include <NewPing.h>
// پین آردوینو که به پین trigger بر روی سنسور اولتراسونیک متصل می شود. //
#define TRIGGER_PIN 7
// پین آردوینو که به پین echo بر روی سنسور اولتراسونیک متصل می شود. //
#define ECHO_PIN 8
// حداکثر مسافتی که ما می خواهیم PING کنیم (بر حسب سانتی متر). حداکثر فاصله سنسور بین 400 تا 500 سانتی متر است //
#define MAX_DISTANCE 200
// یک متغیر برای ذخیره فاصله اندازه گیری شده تعریف می کنیم. //
int temp = 0;
// تعریف یک متغیر به نام sonar از نوع کلاس NewPing و همچنین //
// تنظیم پایه های آردوینو و حداکثر فاصله برای کتابخانه NewPing //
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(9600);
}
void loop() {
// تاخیر 100 میلی ثانیه بین PING ها(حدود 10 عدد PING در ثانیه) حداقل تاخیر بین PING ها باید 29 میلی ثانیه باشد. //
delay(100);
// ارسال PING و دریافت زمان PING برحسب میکروثانیه //
// دستور ()ping یک سیگنال مافوق صوت از پایه trigger ارسال میکند و انعکاس آنرا در پایه echo دریافت میکند //
// و با استفاده از رابطه زیر میتوانیم زمان رفت و برگشت آنرا بر حسب میکروثانیه بدست آوریم و به سانتیمتر تبدیل کنیم. //
// چون زمان نمی تواند منفی باشد، یک متغیر از نوع int بدون علامت تعریف کرده و زمان اندازه گیری شده را در آن قرار می دهیم. //
unsigned int uS = sonar.ping() / US_ROUNDTRIP_CM;
// اگر فاصله اندازه گیری شده با مقدار قبلی متفاوت است //
if (uS != temp)
{
// مقدار جدید را ذخیره کن. //
temp = uS;
Serial.print("The distance is : ");
// چاپ مقدار اندازه گیری شده در خروجی. (مقدار 0 یعنی خارج از فاصله تعریف شده) //
Serial.print(temp);
Serial.println("cm");
}
}
خوب دیدید که کار با ماژول ها در آردوینو بخاطر وجود کتابخانه های قدرتمند آن چقدر ساده است؟
حالا شما میتوانید که به راحتی با ماژول PING کار کنید و یک متر دیجیتالی برای خود بسازید. و یا با استفاده از دستور IF در برنامه شرط تعیین کنید که مثلاً اگر جسمی با فاصله 120 سانتی متر از ماژول قرار گرفت چه عملی انجام گیرد و غیره...
https://telegram.me/ArduinoKaraneJavan
امروز میخواهیم یک پروژه با ماژول PING یا همون ماژول آلتراسونیک که تصویر اون رو در گیف بالا می بینید براتون آموزش بدهیم.
اما نه دقیقاً همون پروژه. بلکه میخواهیم با استفاده از ماژول PING یک متر دیجیتالی بسازیم و فاصله اجسام از سنسور رو برحسب سانتیمتر روی پورت سریال نشون بدیم و در پروژه بعدی که می خواهیم کار با LCD های کاراکتری رو یاد بگیریم بجای پورت سریال متراژ خوانده شده را روی LCD نمایش دهیم.
ماژول PING چیست؟
اساس کار ماژول آلتراسونیک (فراصوت) مشابه رادار یا ردیاب صوتی، تشخیص ویژگی های هدف از طریق تحلیل بازتاب امواج رادیویی یا صوتی می باشد. این ماژول امواج صوتی را با فرکانس بالا ایجاد کرده و موج بازتاب شده را دریافت و تحلیل می نماید.
این حسگر با محاسبه ی زمان بین فرستادن سیگنال و گرفتن بازتاب، فاصلهٔ جسم را محاسبه می کند.
در این ماژول سنجش مسافت، فرستنده آلتراسونیک و حسگر بر روی یک برد قرار داده شده و مدار الکترونیکی واسط، کار را برای استفاده از این ماژول بسیار ساده می نماید.
به طور کلی این ماژول با همه میکرو کنترلر ها سازگار می باشد؛ اما چنانچه از آردوینو برای به کارگیری این ماژول استفاده می نمایید با استفاده از توابع NewPing در چند خط کد می توانید آن را راه اندازی نمایید.
قیمت ارزان و به کارگیری آسان، این ماژول را تبدیل به یکی از ماژول های معروف و پرکاربرد در حوزه سنسورهای آلتراسونیک سنجش مسافت تبدیل کرده است.
قبل از ارائه توضیحات در مورد طرح برنامه بهتر است که یک نکته را یاد آوری نمایم که برای کار با هر نوع ماژولی که می خواهیم به آردوینو متصل نماییم باید ابتدا کتابخانه های آنرا از اینترنت دریافت کرده و با استفاده از روشهایی که قبلاً توضیح داده شده اند به نرم افزار آردوینو اضافه نماییم. که در این مثال ما از کتابخانه NewPing.h که مربوط به ماژول PING یا همان آلتراسونیک می باشد استفاده خواهیم کرد بنابراین ابتدا باید این کتابخانه را به نرم افزار آردوینو اضافه نماییم تا برنامه نوشته شده کار کند. البته من کتابخانه NewPing.h را در زیر جهت دانلود قرار خواهم داد.
پس از اضافه نمودن کتابخانه به برنامه شما باید یک متغیر از نوع کلاس کتابخانه مورد نظر بسازید و آرگومانهایی را که لازم دارد به آن بدهید.
خوب به نظرم بهتر است که به برنامه اصلی بپردازیم و نحوه کارکرد آنرا با هم برسی کنیم:
#include <NewPing.h>
// پین آردوینو که به پین trigger بر روی سنسور اولتراسونیک متصل می شود. //
#define TRIGGER_PIN 7
// پین آردوینو که به پین echo بر روی سنسور اولتراسونیک متصل می شود. //
#define ECHO_PIN 8
// حداکثر مسافتی که ما می خواهیم PING کنیم (بر حسب سانتی متر). حداکثر فاصله سنسور بین 400 تا 500 سانتی متر است //
#define MAX_DISTANCE 200
// یک متغیر برای ذخیره فاصله اندازه گیری شده تعریف می کنیم. //
int temp = 0;
// تعریف یک متغیر به نام sonar از نوع کلاس NewPing و همچنین //
// تنظیم پایه های آردوینو و حداکثر فاصله برای کتابخانه NewPing //
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(9600);
}
void loop() {
// تاخیر 100 میلی ثانیه بین PING ها(حدود 10 عدد PING در ثانیه) حداقل تاخیر بین PING ها باید 29 میلی ثانیه باشد. //
delay(100);
// ارسال PING و دریافت زمان PING برحسب میکروثانیه //
// دستور ()ping یک سیگنال مافوق صوت از پایه trigger ارسال میکند و انعکاس آنرا در پایه echo دریافت میکند //
// و با استفاده از رابطه زیر میتوانیم زمان رفت و برگشت آنرا بر حسب میکروثانیه بدست آوریم و به سانتیمتر تبدیل کنیم. //
// چون زمان نمی تواند منفی باشد، یک متغیر از نوع int بدون علامت تعریف کرده و زمان اندازه گیری شده را در آن قرار می دهیم. //
unsigned int uS = sonar.ping() / US_ROUNDTRIP_CM;
// اگر فاصله اندازه گیری شده با مقدار قبلی متفاوت است //
if (uS != temp)
{
// مقدار جدید را ذخیره کن. //
temp = uS;
Serial.print("The distance is : ");
// چاپ مقدار اندازه گیری شده در خروجی. (مقدار 0 یعنی خارج از فاصله تعریف شده) //
Serial.print(temp);
Serial.println("cm");
}
}
خوب دیدید که کار با ماژول ها در آردوینو بخاطر وجود کتابخانه های قدرتمند آن چقدر ساده است؟
حالا شما میتوانید که به راحتی با ماژول PING کار کنید و یک متر دیجیتالی برای خود بسازید. و یا با استفاده از دستور IF در برنامه شرط تعیین کنید که مثلاً اگر جسمی با فاصله 120 سانتی متر از ماژول قرار گرفت چه عملی انجام گیرد و غیره...
https://telegram.me/ArduinoKaraneJavan
آردوینو فارسی
سوال: ما دوتا ماژول ESP32 داریم و میخواهیم هردو را به اینترنت متصل کنیم. ولی ماژول دوم از مودم دارای اینترنت خیلی دور است و نمی تواند به آن متصل شود ولی به ماژول اول نزدیک است و میتواند به ماژول اول متصل شود. آیا ما میتوانیم اینترنت را از طریق ماژول اول به…
خب بریم سراغ پاسخ اصلی
برای این منظور ما چند تا روش داریم که فعلا یکی از روش ها را بررسی میکنیم.
برنامه ماژول اول:
const char* ssid = "نام مودم خارجی";
const char* password = "رمز عبور";
void setup() {
Serial.begin(115200);
WiFi.softAP(ssid, password);
IPAddress IP = WiFi.softAPIP();
Serial.print("آدرس IP Access Point: ");
Serial.println(IP);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("در حال اتصال به شبکه...");
}
Serial.println("اتصال برقرار شد");
Serial.print("آدرس IP: ");
Serial.println(WiFi.localIP());
}
void loop() {
// انجام وظایف دیگر در صورت نیاز
}
در این برنامه مودم داخلی را با اسم و رمز مودم خارجی استارت می کنیم. سپس ماژول اول را به مودم خارجی متصل میکنیم. به این صورت مودم داخلی ماژول اول، یک اشاره گر به مودم خارجی می شود. و ماژول دوم با متصل شدن به مودم داخلی ماژول اول، میتواند از اینترنت استفاده کند.
برنامه ماژول دوم:
#include <WiFi.h>
const char* ssid = "نام مودم خارجی";
const char* password = "رمز عبور";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("در حال اتصال به شبکه...");
}
Serial.println("اتصال برقرار شد");
Serial.print("آدرس IP: ");
Serial.println(WiFi.localIP());
}
void loop() {
// انجام وظایف دیگر در صورت نیاز
}
در این برنامه ما با وارد کردن اسم و رمز مودم خارجی به مودم داخلی ماژول اول متصل می شویم ولی چون مودم داخلی ماژول اول به عنوان اشاره گری به مودم خارجی هست، ماژول دوم هم به اینترنت وصل می شود.
در نتیجه ماژول اول به عنوان ریپیتر عمل کرده و اینترنت را به ماژول دوم که به مودم ما دسترسی نداشت، منتقل می کند.
در ضمن ما میتوانیم برنامه ماژول اول را که بعنوان ریپیتر عمل میکند، روی چند تا ماژول دیگر نیز آپلود کنیم و چند تا ریپیتر داشته باشیم. و لازم به ذکر است که همه ماژول ها همزمان میتوانند هم ریپیتر باشند و هم کارهای کنترلی دیگری را نیز انجام دهند.
WiFi Repeater#
@ArduinoFarsi_cc
برای این منظور ما چند تا روش داریم که فعلا یکی از روش ها را بررسی میکنیم.
برنامه ماژول اول:
const char* ssid = "نام مودم خارجی";
const char* password = "رمز عبور";
void setup() {
Serial.begin(115200);
WiFi.softAP(ssid, password);
IPAddress IP = WiFi.softAPIP();
Serial.print("آدرس IP Access Point: ");
Serial.println(IP);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("در حال اتصال به شبکه...");
}
Serial.println("اتصال برقرار شد");
Serial.print("آدرس IP: ");
Serial.println(WiFi.localIP());
}
void loop() {
// انجام وظایف دیگر در صورت نیاز
}
در این برنامه مودم داخلی را با اسم و رمز مودم خارجی استارت می کنیم. سپس ماژول اول را به مودم خارجی متصل میکنیم. به این صورت مودم داخلی ماژول اول، یک اشاره گر به مودم خارجی می شود. و ماژول دوم با متصل شدن به مودم داخلی ماژول اول، میتواند از اینترنت استفاده کند.
برنامه ماژول دوم:
#include <WiFi.h>
const char* ssid = "نام مودم خارجی";
const char* password = "رمز عبور";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("در حال اتصال به شبکه...");
}
Serial.println("اتصال برقرار شد");
Serial.print("آدرس IP: ");
Serial.println(WiFi.localIP());
}
void loop() {
// انجام وظایف دیگر در صورت نیاز
}
در این برنامه ما با وارد کردن اسم و رمز مودم خارجی به مودم داخلی ماژول اول متصل می شویم ولی چون مودم داخلی ماژول اول به عنوان اشاره گری به مودم خارجی هست، ماژول دوم هم به اینترنت وصل می شود.
در نتیجه ماژول اول به عنوان ریپیتر عمل کرده و اینترنت را به ماژول دوم که به مودم ما دسترسی نداشت، منتقل می کند.
در ضمن ما میتوانیم برنامه ماژول اول را که بعنوان ریپیتر عمل میکند، روی چند تا ماژول دیگر نیز آپلود کنیم و چند تا ریپیتر داشته باشیم. و لازم به ذکر است که همه ماژول ها همزمان میتوانند هم ریپیتر باشند و هم کارهای کنترلی دیگری را نیز انجام دهند.
WiFi Repeater#
@ArduinoFarsi_cc
👍23