Table of Contents

پروژه مهندسی برق

مهندسی برق چیست؟

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


حوزه‌های اصلی پروژه‌های مهندسی برق:

 

  1. قدرت و انرژی

    • پروژه‌ها معمولاً درباره تولید، انتقال و توزیع برق هستند.

    • مثال‌ها:

      • شبیه‌سازی شبکه‌های برق با MATLAB یا ETAP

      • طراحی سیستم خورشیدی یا توربین بادی برای تولید انرژی پاک

      • بهینه‌سازی مصرف انرژی در ساختمان‌ها یا کارخانه‌ها

  2. الکترونیک و مدارها

    • طراحی مدارهای آنالوگ و دیجیتال، از مقاومت و خازن تا تراشه‌ها و میکروکنترلرها.

    • مثال‌ها:

      • ساخت تقویت‌کننده صوتی

      • طراحی مدار سنسور دما یا نور با Arduino

      • ساخت رگولاتور ولتاژ یا فیلتر فرکانسی

  3. کنترل و اتوماسیون

    • کنترل رفتار سیستم‌ها برای رسیدن به عملکرد مطلوب، معمولاً با استفاده از کنترلرها و الگوریتم‌ها.

    • مثال‌ها:

      • کنترل موتور DC با PID

      • طراحی ربات یا بازوی مکانیکی هوشمند

      • شبیه‌سازی سیستم‌های اتوماسیون صنعتی در Simulink

  4. مخابرات و پردازش سیگنال

    • ارسال، دریافت و پردازش اطلاعات و سیگنال‌ها

    • مثال‌ها:

      • پردازش سیگنال دیجیتال (DSP) برای صدا یا تصویر

      • طراحی سیستم‌های وایرلس یا آنتن

      • شبیه‌سازی شبکه‌های ارتباطی یا سیستم‌های رمزگذاری


چرا پروژه مهندسی برق مهم است؟

پروژه مهندسی برق

 

  • یادگیری عملی مفاهیم تئوری

  • آشنایی با ابزارهای شبیه‌سازی و طراحی

  • تقویت مهارت حل مسئله و مهارت‌های فنی

  • آماده‌سازی برای ورود به بازار کار یا ادامه تحصیل

۱. قدرت و انرژی

  1. شبیه‌سازی شبکه توزیع برق شهری با MATLAB یا ETAP و تحلیل ولتاژ و جریان‌ها.

  2. سیستم خورشیدی کوچک برای تامین انرژی یک لامپ یا دستگاه کوچک و اندازه‌گیری بازده آن.

  3. بهینه‌سازی مصرف انرژی ساختمان‌ها با سنسورهای جریان و ولتاژ و تحلیل داده‌ها.

  4. طراحی و شبیه‌سازی توربین بادی کوچک و محاسبه توان تولیدی.

  5. کنترل توان راکتیو در شبکه برق برای بهبود ضریب توان.


۲. الکترونیک و مدارها

  1. تقویت‌کننده صوتی ساده با ترانزیستور یا Op-amp.

  2. طراحی مدار سنسور دما و رطوبت با Arduino و نمایش داده‌ها روی LCD.

  3. مدار چشمک‌زن LED با میکروکنترلر و قابلیت تنظیم سرعت.

  4. طراحی فیلتر پایین‌گذر یا بالاگذر برای سیگنال‌های الکترونیکی.

  5. رگولاتور ولتاژ ساده با IC برای تثبیت ولتاژ ورودی به یک مدار.


۳. کنترل و اتوماسیون

  1. کنترل موتور DC با الگوریتم PID و بررسی پاسخ سیستم به تغییرات ولتاژ.

  2. ربات خط‌ران (Line Follower Robot) با سنسورهای نور و Arduino.

  3. سیستم باز و بسته کردن اتوماتیک درب با سنسور حرکت و میکروکنترلر.

  4. شبیه‌سازی سیستم کنترل دما برای یک کوره یا اتاقک در MATLAB/Simulink.

  5. کنترل سطح آب در مخزن با سنسور سطح و الگوریتم کنترلی ساده.


۴. مخابرات و پردازش سیگنال

  1. پردازش سیگنال صوتی: حذف نویز و تقویت صدا با MATLAB.

  2. طراحی سیستم ارتباط بی‌سیم کوتاه‌برد با ماژول‌های RF یا بلوتوث.

  3. شبیه‌سازی مدولاسیون و دمدولاسیون AM/FM در MATLAB.

  4. طراحی آنتن ساده برای Wi-Fi یا بلوتوث و اندازه‌گیری پارامترهای آن.

  5. پیاده‌سازی فیلتر دیجیتال برای سیگنال‌های صوتی یا تصویری.

جزئیات کامل:

ردیف پروژه دسته‌بندی ابزار و سخت‌افزار نرم‌افزار سختی مدت زمان تقریبی
1 شبیه‌سازی شبکه توزیع برق شهری قدرت و انرژی MATLAB / ETAP متوسط 2–3 هفته
2 سیستم خورشیدی کوچک قدرت و انرژی پنل خورشیدی، باتری، لامپ آسان 1–2 هفته
3 بهینه‌سازی مصرف انرژی ساختمان قدرت و انرژی سنسور جریان و ولتاژ، میکروکنترلر Excel / MATLAB متوسط 2–3 هفته
4 طراحی توربین بادی کوچک قدرت و انرژی پره‌های کوچک، ژنراتور DC متوسط 2 هفته
5 کنترل توان راکتیو در شبکه قدرت و انرژی MATLAB / ETAP سخت 3–4 هفته
6 تقویت‌کننده صوتی ساده الکترونیک ترانزیستور / Op-amp، مقاومت و خازن Multisim آسان 1–2 هفته
7 مدار سنسور دما و رطوبت الکترونیک Arduino، سنسور دما/رطوبت، LCD Arduino IDE آسان 1–2 هفته
8 مدار چشمک‌زن LED الکترونیک Arduino، LED، مقاومت Arduino IDE خیلی آسان 1 هفته
9 طراحی فیلتر پایین‌گذر/بالاگذر الکترونیک مقاومت، خازن، Op-amp Multisim متوسط 1–2 هفته
10 رگولاتور ولتاژ ساده الکترونیک IC 7805/LM317، مقاومت، خازن Multisim متوسط 1 هفته
11 کنترل موتور DC با PID کنترل و اتوماسیون موتور DC، سنسور دور، Arduino Arduino IDE / MATLAB متوسط 2–3 هفته
12 ربات خط‌ران کنترل و اتوماسیون سنسور نور، موتور، برد Arduino Arduino IDE متوسط 2–3 هفته
13 سیستم درب اتوماتیک کنترل و اتوماسیون سنسور حرکت، موتور، Arduino Arduino IDE آسان 1–2 هفته
14 کنترل دما در کوره کنترل و اتوماسیون ترموکوپل، هیتر، کنترلر MATLAB/Simulink متوسط 2 هفته
15 کنترل سطح آب مخزن کنترل و اتوماسیون سنسور سطح، پمپ، Arduino Arduino IDE آسان 1–2 هفته
16 پردازش سیگنال صوتی مخابرات و DSP MATLAB متوسط 1–2 هفته
17 سیستم ارتباط بی‌سیم کوتاه‌برد مخابرات ماژول RF / بلوتوث، میکروکنترلر Arduino IDE متوسط 2–3 هفته
18 شبیه‌سازی مدولاسیون AM/FM مخابرات MATLAB / Simulink متوسط 2 هفته
19 طراحی آنتن ساده مخابرات سیم، PCB متوسط 2 هفته
20 فیلتر دیجیتال برای صدا/تصویر مخابرات MATLAB متوسط 1–2 هفته

 

پروژه نمونه: ربات خط‌ران با Arduino پروژه مهندسی برق

دسته‌بندی پروژه مهندسی برق:

کنترل و اتوماسیون

هدف پروژه پروژه مهندسی برق:

ربات بتواند مسیر خط سیاه روی زمین را دنبال کند و بدون برخورد با موانع حرکت کند.


ابزار و سخت‌افزار مورد نیاز:

  • برد Arduino Uno

  • موتور DC با گیربکس (2 عدد)

  • چرخ و شاسی ربات

  • سنسور مادون قرمز (IR) یا سنسور خط (2–3 عدد)

  • باتری 6–9 ولت

  • مقاومت و سیم اتصال


نرم‌افزار مورد نیاز:

  • Arduino IDE برای مشاوره و آپلود برنامه

  • Optional: Fritzing برای طراحی شماتیک


مراحل مشاوره پروژه:

  1. مونتاژ شاسی ربات

    • چرخ‌ها را به موتور متصل کن و موتور را روی شاسی محکم کن.

  2. اتصال سنسورها و موتور به Arduino

    • سنسورهای IR را جلوی ربات قرار بده تا خط را تشخیص دهند.

    • موتور‌ها را به پایه‌های PWM وصل کن تا بتوانی سرعت آن‌ها را کنترل کنی.

  3. مشاوره کد ربات خط‌ران

    • ابتدا سنسورها را بخوان و بررسی کن که روی خط هستند یا خیر.

    • اگر سنسور وسط روی خط است → حرکت مستقیم

    • اگر سنسور سمت چپ خط را تشخیص داد → پیچیدن به چپ

    • اگر سنسور سمت راست خط را تشخیص داد → پیچیدن به راست

  4. آزمایش و تنظیم سرعت

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

  5. بهینه‌سازی الگوریتم

    • می‌توانی الگوریتم PID ساده اضافه کنی تا ربات دقیق‌تر مسیر را دنبال کند.

پروژه نمونه: پردازش سیگنال صوتی با MATLAB

دسته‌بندی:

مخابرات و پردازش سیگنال (DSP)

هدف پروژه:

پردازش یک فایل صوتی برای حذف نویز و تقویت صدا و تحلیل ویژگی‌های آن.


ابزار و سخت‌افزار مورد نیاز:

  • کامپیوتر شخصی

  • هدفون یا اسپیکر برای شنیدن نتیجه

  • فایل صوتی نمونه (WAV یا MP3)


نرم‌افزار مورد نیاز:

  • MATLAB (با Toolbox پردازش سیگنال)


مراحل مشاوره پروژه:

  1. ورود فایل صوتی به MATLAB

[y, Fs] = audioread('sample.wav'); % y: سیگنال صوتی، Fs: نرخ نمونه‌برداری
sound(y, Fs); % پخش صدای اصلی
  1. نمایش سیگنال در حوزه زمان و فرکانس

t = (0:length(y)-1)/Fs;
plot(t, y);
title('سیگنال صوتی در حوزه زمان');
xlabel('زمان (ثانیه)');
ylabel('دامنه');

Y = fft(y);
f = (0:length(Y)-1)*Fs/length(Y);
plot(f, abs(Y));
title('سیگنال صوتی در حوزه فرکانس');
xlabel('فرکانس (Hz)');
ylabel('دامنه');

  1. اعمال فیلتر حذف نویز در پروژه مهندسی برق

  • استفاده از فیلتر پایین‌گذر برای حذف نویز فرکانس بالا:

fc = 3000; % فرکانس قطع 3kHz
[b, a] = butter(6, fc/(Fs/2)); % فیلتر باترورث 6 درجه
y_filtered = filter(b, a, y);
sound(y_filtered, Fs); % پخش صدای فیلتر شده
  1.  تقویت سیگنال صوتی پروژه مهندسی برق

gain = 1.5; % ضریب تقویت
y_amplified = y_filtered * gain;
sound(y_amplified, Fs); % پخش صدای تقویت شده
  1. آنالیز نتایج پروژه مهندسی برق

  • مقایسه نمودارهای دامنه قبل و بعد از پردازش پروژه مهندسی برق

  • شنیدن کیفیت صدای خروجی پروژه مهندسی برق


خروجی و نتیجه در پروژه مهندسی برق:

  • سیگنال صوتی نویزدار → حذف نویز و تقویت شده پروژه مهندسی برق

  • توانایی تحلیل دامنه و فرکانس سیگنال

  • پایه‌ای برای پروژه‌های پیشرفته‌تر DSP مثل تشخیص گفتار


هم سخت‌افزار و نرم‌افزار مشخص است و هم قابل اجرا هستند:

ردیف پروژه دسته‌بندی ابزار و سخت‌افزار نرم‌افزار توضیح مرحله به مرحله مدت زمان تقریبی
1 ربات خط‌ران با Arduino کنترل و اتوماسیون Arduino Uno، موتور DC، چرخ، سنسور IR، باتری Arduino IDE مونتاژ ربات، اتصال سنسورها و موتور، مشاوره کد برای دنبال کردن خط، تست و بهینه‌سازی PID 2–3 هفته
2 پردازش سیگنال صوتی مخابرات و DSP کامپیوتر، فایل صوتی، هدفون MATLAB ورود فایل صوتی، نمایش نمودار زمان و فرکانس، فیلتر نویز، تقویت سیگنال، آنالیز نتایج 1–2 هفته
3 سیستم خورشیدی کوچک قدرت و انرژی پنل خورشیدی، باتری، لامپ LED، مقاومت اتصال پنل به باتری، اتصال لامپ، اندازه‌گیری ولتاژ و جریان، محاسبه بازده 1–2 هفته
4 کنترل موتور DC با PID کنترل و اتوماسیون موتور DC، سنسور دور، Arduino، باتری Arduino IDE / MATLAB اتصال موتور و سنسور، مشاوره الگوریتم PID، تست پاسخ سیستم به تغییر ولتاژ، تنظیم پارامترها 2–3 هفته
5 مدار سنسور دما و رطوبت الکترونیک Arduino، سنسور دما/رطوبت، LCD، مقاومت و سیم Arduino IDE اتصال سنسور و LCD به Arduino، مشاوره کد خواندن داده و نمایش روی LCD، تست و بهینه‌سازی 1–2 هفته
6 طراحی آنتن ساده مخابرات سیم، PCB طراحی و ساخت آنتن، اندازه‌گیری پارامترها، مقایسه با مقادیر تئوری 2 هفته

مزیت این جدول نهایی:

  • مشخص می‌کنی کدام پروژه عملی‌تر است و سختی آن چقدر است.

  • هم سخت‌افزار هم نرم‌افزار هر پروژه مشخص شده، بنابراین راحت می‌توانی شروع کنی.

  • شامل پروژه‌های قدرت، الکترونیک، کنترل و مخابرات است و برای همه شاخه‌های مهندسی برق کاربرد دارد.

۱. ربات خط‌ران با Arduino

پروژه مهندسی برق

شماتیک اتصال:

  • سنسورهای IR جلوی ربات (چپ، وسط، راست) → پایه‌های دیجیتال Arduino

  • موتور DC → پایه‌های PWM Arduino

  • باتری 6–9 ولت → Vin و GND Arduino

کد نمونه Arduino پروژه مهندسی برق:

int leftSensor = 2;
int middleSensor = 3;
int rightSensor = 4;
int leftMotor = 5;
int rightMotor = 6;

void setup() {
pinMode(leftSensor, INPUT);
pinMode(middleSensor, INPUT);
pinMode(rightSensor, INPUT);
pinMode(leftMotor, OUTPUT);
pinMode(rightMotor, OUTPUT);
}

void loop() {
int left = digitalRead(leftSensor);
int middle = digitalRead(middleSensor);
int right = digitalRead(rightSensor);

if(middle == HIGH) { // حرکت مستقیم
analogWrite(leftMotor, 150);
analogWrite(rightMotor, 150);
}
else if(left == HIGH) { // پیچیدن به چپ
analogWrite(leftMotor, 100);
analogWrite(rightMotor, 150);
}
else if(right == HIGH) { // پیچیدن به راست
analogWrite(leftMotor, 150);
analogWrite(rightMotor, 100);
}
else { // توقف
analogWrite(leftMotor, 0);
analogWrite(rightMotor, 0);
}
}

نکات مهم:

  • سرعت موتورها را بسته به مسیر تنظیم کن.

  • برای مسیرهای پیچیده می‌توانی الگوریتم PID اضافه کنی.


۲. پردازش سیگنال صوتی با MATLAB

مراحل و کد نمونه:

[y, Fs] = audioread('sample.wav'); % بارگذاری فایل
sound(y, Fs); % پخش صدا

% نمایش سیگنال در حوزه زمان
t = (0:length(y)-1)/Fs;
plot(t, y);
title('سیگنال صوتی');
xlabel('زمان');
ylabel('دامنه');

% فیلتر پایین‌گذر برای حذف نویز
fc = 3000; % فرکانس قطع
[b, a] = butter(6, fc/(Fs/2));
y_filtered = filter(b, a, y);
sound(y_filtered, Fs); % پخش صدای فیلتر شده

% تقویت سیگنال
gain = 1.5;
y_amplified = y_filtered * gain;
sound(y_amplified, Fs); % پخش صدای تقویت شده

نکات مهم:

  • می‌توانی فیلتر بالاگذر یا باندپاس هم اضافه کنی.

  • برای پروژه پیشرفته‌تر می‌توانی تشخیص گفتار یا حذف نویز پیشرفته پیاده‌سازی کنی.


۳. سیستم خورشیدی کوچک

مراحل:

  1. اتصال پنل خورشیدی به باتری (با دیود برای جلوگیری از برگشت جریان).

  2. اتصال لامپ LED به باتری و اندازه‌گیری ولتاژ و جریان.

  3. محاسبه بازده:

    Efficiency=PoutPin×100\text{Efficiency} = \frac{P_{out}}{P_{in}} \times 100

    که Pout=V×IP_{out} = V \times I و PinP_{in} توان ورودی پنل است.

نکات مهم:

  • پنل را در نور مستقیم خورشید قرار بده.

  • ولتاژ و جریان را با مولتی‌متر اندازه‌گیری کن.

۴. کنترل موتور DC با PID

هدف پروژه:

کنترل سرعت یک موتور DC با الگوریتم PID برای رسیدن به سرعت مطلوب.

ابزار و سخت‌افزار در پروژه مهندسی برق:

  • موتور DC پروژه مهندسی برق

  • سنسور دور (Encoder) پروژه مهندسی برق

  • Arduino Uno پروژه مهندسی برق

  • منبع تغذیه پروژه مهندسی برق

نرم‌افزار در پروژه مهندسی برق:

  • Arduino IDE پروژه مهندسی برق

  • (اختیاری) MATLAB برای شبیه‌سازی PID پروژه مهندسی برق

مراحل و کد نمونه Arduino پروژه مهندسی برق:

int motorPin = 5;
int encoderPin = 2;
int setSpeed = 150; // سرعت مطلوب
int currentSpeed = 0;
double Kp = 1.2, Ki = 0.01, Kd = 0.01;
double error, integral = 0, derivative, previousError = 0;

void setup() {
pinMode(motorPin, OUTPUT);
pinMode(encoderPin, INPUT);
}

void loop() {
currentSpeed = pulseIn(encoderPin, HIGH); // خواندن سرعت از سنسور
error = setSpeed - currentSpeed;
integral += error;
derivative = error - previousError;
int output = Kp*error + Ki*integral + Kd*derivative;
analogWrite(motorPin, output);
previousError = error;
delay(10);
}

نکات مهم:

  • پارامترهای Kp, Ki, Kd را با تست دستی تنظیم کن.

  • می‌توان از MATLAB برای شبیه‌سازی پاسخ PID قبل از پیاده‌سازی استفاده کرد.


۵. مدار سنسور دما و رطوبت با Arduino

هدف پروژه:

خواندن دما و رطوبت محیط و نمایش روی LCD.

ابزار و سخت‌افزار:

  • Arduino Uno

  • سنسور دما و رطوبت (مثلاً DHT11)

  • LCD 16×2

  • مقاومت و سیم

نرم‌افزار:

  • Arduino IDE

مراحل و کد نمونه:

#include <DHT.h>
#include <LiquidCrystal.h>

#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(7,8,9,10,11,12);

void setup() {
dht.begin();
lcd.begin(16,2);
}

void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
lcd.setCursor(0,0);
lcd.print("Temp: "); lcd.print(t); lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Hum: "); lcd.print(h); lcd.print("%");
delay(2000);
}

نکات مهم در پروژه مهندسی برق:

  • اطمینان از اتصال صحیح پایه‌ها به Arduino.

  • فاصله سنسور از منابع گرما یا رطوبت مصنوعی رعایت شود.


۶. طراحی آنتن ساده در پروژه مهندسی برق

هدف پروژه پروژه مهندسی برق:

ساخت یک آنتن ساده برای Wi-Fi یا بلوتوث و بررسی پارامترهای آن.

ابزار و سخت‌افزار پروژه مهندسی برق:

  • سیم مسی در پروژه مهندسی برق

  • PCB کوچک در پروژه مهندسی برق

  • مولتی‌متر و ابزار اندازه‌گیری امپدانس در پروژه مهندسی برق

مراحل در پروژه مهندسی برق:

  1. محاسبه طول سیم بر اساس فرکانس مورد نظر:

L=c4f(آنتن λ/4)L = \frac{c}{4f} \quad (\text{آنتن λ/4})

  1. پیچیدن سیم روی PCB به شکل مناسب.

  2. اتصال به ماژول فرستنده/گیرنده و اندازه‌گیری S-parameters با شبکه تحلیلگر (اختیاری).

  3. مقایسه با مقادیر تئوری و اصلاح طراحی.

نکات مهم:

  • دقت در طول سیم و زاویه‌ها اهمیت دارد.

  • امکان اضافه کردن پد آنتن یا Ground Plane برای بهبود بازده وجود دارد.

محتویات PDF راهنمای پروژه‌های مهندسی برق:

پروژه مهندسی برق

  1. معرفی پروژه‌ها و دسته‌بندی‌ها

    • قدرت و انرژی

    • الکترونیک

    • کنترل و اتوماسیون

    • مخابرات و پردازش سیگنال

  2. جزئیات هر پروژه شامل:

    • هدف پروژه

    • ابزار و سخت‌افزار لازم

    • نرم‌افزارهای مورد نیاز

    • مراحل مشاوره پروژه مرحله به مرحله

    • کدهای نمونه (Arduino و MATLAB)

    • شماتیک‌های اتصال و نمودارهای مهم

    • نکات مهم و توصیه‌ها

    • مدت زمان تقریبی مشاوره پروژه

  3. جدول مقایسه پروژه‌ها

    • سطح سختی

    • مدت زمان

    • ابزار مورد نیاز

  4. نکات تکمیلی برای موفقیت در مشاوره پروژه‌ها در پروژه مهندسی برق

    • تست و عیب‌یابی مدارها در پروژه مهندسی برق

    • تنظیم پارامترها در کدها

    • نکات ایمنی در کار با برق و سخت‌افزار

ویژگی‌های PDF:

  • ۶ پروژه عملی آماده: ربات خط‌ران، پردازش صوتی، سیستم خورشیدی، کنترل موتور PID، مدار سنسور دما، طراحی آنتن

  • کدها و شماتیک‌ها: Arduino و MATLAB

  • مراحل گام‌به‌گام مشاوره پروژه با نکات مهم و توصیه‌ها

  • جدول مقایسه پروژه‌ها از نظر سختی، مدت زمان و ابزار لازم

  • نکات تکمیلی: تست، عیب‌یابی و ایمنی

پروژه: ربات خط‌ران با Arduino

هدف پروژه:

ساخت رباتی که بتواند یک مسیر خط سیاه روی زمین را دنبال کند و بدون برخورد حرکت کند.


ابزار و سخت‌افزار مورد نیاز:

  • برد Arduino Uno

  • موتور DC با گیربکس (۲ عدد)

  • چرخ و شاسی ربات

  • سنسور مادون قرمز (IR) یا سنسور خط (۲–۳ عدد)

  • باتری ۶–۹ ولت

  • مقاومت و سیم‌های اتصال


نرم‌افزار مورد نیاز:

  • Arduino IDE برای مشاوره و آپلود برنامه


شماتیک اتصال:

  • سنسورهای IR: جلوی ربات (چپ، وسط، راست) → پایه‌های دیجیتال Arduino

  • موتور‌ها → پایه‌های PWM Arduino

  • باتری → Vin و GND Arduino


مراحل مشاوره پروژه:

  1. مونتاژ ربات:

    • چرخ‌ها را به موتور متصل و موتور‌ها را روی شاسی محکم کنید.

  2. اتصال سنسورها و موتور به Arduino:

    • سنسورهای IR جلوی ربات نصب شوند تا خط را تشخیص دهند.

    • موتور‌ها به پایه‌های PWM وصل شوند تا بتوان سرعت آنها را کنترل کرد.

  3. مشاوره کد Arduino:

int leftSensor = 2;
int middleSensor = 3;
int rightSensor = 4;
int leftMotor = 5;
int rightMotor = 6;

void setup() {
pinMode(leftSensor, INPUT);
pinMode(middleSensor, INPUT);
pinMode(rightSensor, INPUT);
pinMode(leftMotor, OUTPUT);
pinMode(rightMotor, OUTPUT);
}

void loop() {
int left = digitalRead(leftSensor);
int middle = digitalRead(middleSensor);
int right = digitalRead(rightSensor);

if(middle == HIGH) { // حرکت مستقیم
analogWrite(leftMotor, 150);
analogWrite(rightMotor, 150);
}
else if(left == HIGH) { // پیچیدن به چپ
analogWrite(leftMotor, 100);
analogWrite(rightMotor, 150);
}
else if(right == HIGH) { // پیچیدن به راست
analogWrite(leftMotor, 150);
analogWrite(rightMotor, 100);
}
else { // توقف
analogWrite(leftMotor, 0);
analogWrite(rightMotor, 0);
}
}

  1. آزمایش و تنظیم سرعت:

    • ربات را روی مسیر آزمایشی قرار دهید و سرعت موتور‌ها را تنظیم کنید تا حرکت صاف و بدون لرزش باشد.

  2. بهینه‌سازی الگوریتم:

    • می‌توان الگوریتم PID ساده اضافه کرد تا ربات دقیق‌تر مسیر را دنبال کند.


نکات مهم:

  • سرعت موتور‌ها را بسته به مسیر و طول خط تنظیم کنید.

  • سنسورها باید دقیقا روی خط قرار گیرند تا ربات به درستی حرکت کند.

  • برای مسیرهای پیچیده و سرعت بیشتر، الگوریتم PID پیشنهاد می‌شود.

ربات خط‌ران پیشرفته با PID

هدف پروژه:

ربات با الگوریتم PID (Proportional-Integral-Derivative) حرکت کند و خط را با دقت و سرعت مناسب دنبال کند.


ابزار و سخت‌افزار مورد نیاز:

  • Arduino Uno

  • موتور DC با گیربکس (۲ عدد)

  • چرخ و شاسی ربات

  • سنسور خط IR (چپ، وسط، راست)

  • باتری ۶–۹ ولت

  • مقاومت، سیم و برد اتصال


نرم‌افزار:

  • Arduino IDE


شماتیک اتصال:

  • سنسور IR → پایه‌های دیجیتال Arduino

  • موتور‌ها → پایه‌های PWM Arduino

  • باتری → Vin و GND Arduino


کد نمونه با PID:

// تعریف پایه‌ها
int leftSensor = 2;
int middleSensor = 3;
int rightSensor = 4;
int leftMotor = 5;
int rightMotor = 6;

// پارامترهای PID
double Kp = 1.5;
double Ki = 0.01;
double Kd = 0.1;

double previousError = 0;
double integral = 0;

void setup() {
pinMode(leftSensor, INPUT);
pinMode(middleSensor, INPUT);
pinMode(rightSensor, INPUT);
pinMode(leftMotor, OUTPUT);
pinMode(rightMotor, OUTPUT);
}

void loop() {
// خواندن سنسورها
int left = digitalRead(leftSensor);
int middle = digitalRead(middleSensor);
int right = digitalRead(rightSensor);

// محاسبه خطا
double error = 0;
if(left == HIGH) error = -1;
if(middle == HIGH) error = 0;
if(right == HIGH) error = 1;

// محاسبه PID
integral += error;
double derivative = error - previousError;
double output = Kp*error + Ki*integral + Kd*derivative;

// تنظیم سرعت موتور‌ها
int baseSpeed = 150;
int leftSpeed = baseSpeed - output;
int rightSpeed = baseSpeed + output;

// محدود کردن سرعت‌ها بین 0 و 255
leftSpeed = constrain(leftSpeed, 0, 255);
rightSpeed = constrain(rightSpeed, 0, 255);

analogWrite(leftMotor, leftSpeed);
analogWrite(rightMotor, rightSpeed);

previousError = error;
delay(10);
}


نکات مهم:

  • مقادیر Kp, Ki, Kd را باید با تست دستی تنظیم کنید تا ربات حرکت صاف داشته باشد.

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

  • برای مسیرهای پیچیده، سرعت پایه (baseSpeed) را با دقت انتخاب کنید تا ربات کنترل‌پذیر باشد.


مزیت نسخه PID:

  • ربات به جای “حرکت ساده چپ و راست”، مسیر را با دقت و نرمی بیشتر دنبال می‌کند.

  • مناسب برای پروژه‌های حرفه‌ای و دانشگاهی است.

پست های مرتبط