Spisu treści:
- Kieszonkowe dzieci:
- Krok 1: Rama robota
- Krok 2: Czujnik Ir + fotorezystor
- Krok 3: Sterownik silnika
- Krok 4: Programowanie Arduino
- Krok 5: Testowanie
Witaj!
Zbudowałem robota linefollower, który można wykorzystać na wiele różnych sposobów, i podsumowałem mój projekt w kilku krokach.
Na początek potrzebne są tylko następujące części:
Lista części
-Robot ramki
-Dwa koła
- Dwa silniki prądu stałego
-Miniak do chleba
-Dwa diody LED
-Dwa fotorezystory
-Dwie 56k rezystorów
- Dwa 330 rezystorów
-Niektóre druty
-Diodes (jeśli nie są jeszcze dołączone do sterownika silnika)
- Sterownik silnika (użyłem L298)
-Duża deska do krojenia chleba
-Trzy akumulator 1,5V
-Arduino UNO
Kieszonkowe dzieci:
Krok 1: Rama robota
Lista części:
-Robot ramki
-Dwa koła
- Dwa silniki prądu stałego
Jak:
Użyłem starej ramy robota z dwoma kołami sterowanymi przez dwa silniki prądu stałego, ale można również użyć równoważnego rozwiązania.
Krok 2: Czujnik Ir + fotorezystor
Lista części:
-Miniak do chleba
-Dwa diody LED
-Dwa fotorezystory
-Dwie 56k rezystorów
- Dwa 330 rezystorów
-Niektóre druty
Jak:
Oblicz odległość między dwiema parami diod i fotorezystorów w oparciu o szerokość taśmy.
Ustaw fotorezystory i diody led jak na zdjęciach.
Podłącz diody do dwóch rezystorów 330 omów i umieść wokół nich nieprzezroczystą taśmę, aby zapobiec zakłóceniom fotorezystorów
Umieść mini deskę do krojenia chleba w dolnej części ramy.
Krok 3: Sterownik silnika
Lista części:
-Niektóre druty
-Diodes (jeśli nie są jeszcze dołączone do sterownika silnika)
- Sterownik silnika
-Duża deska do krojenia chleba
-Trzy baterie 1,5 v
Montaż czujników:
Podłącz piny wejściowe mostka A na stykach 11 i 12 Arduino.
Podłącz piny wejściowe mostka B na stykach 6 i 5 Arduino.
Połącz z niektórymi diodami styki wyjściowe każdego mostka do silników, jeśli to konieczne.
Podłącz logiczne napięcie zasilania (Vss) do 5 V Arduino i podłącz masę sterownika silnika do GND arduino.
Podłącz napięcie zasilania (Vs) do 3 baterii AA.
Krok 4: Programowanie Arduino
Lista części:
-Arduino UNO
-Niektóre druty
Użyj tego kodu:
int PinSens_A = A5;
int PinSens_B = A4;
int ValSens_A = 0;
int ValSens_B = 0;
int Ris;
int PinMotorA_1 = 10;
int PinMotorA_2 = 11;
int PinMotorB_1 = 5;
int PinMotorB_2 = 6;
int SpeedMotor_A;
int SpeedMotor_B;
int różnica = 0;
int RoL (int A, int B)
{
jeśli (A> B)
powrót 1;
jeśli (B> A)
return 2;
jeśli (A = B)
powrót 0;
}
void Follow (int val, int speedMax)
{
if (val == 2)
{
SpeedMotor_A = speedMax;
SpeedMotor_B = 0;
}
if (val == 1)
{
SpeedMotor_A = 0;
SpeedMotor_B = speedMax;
}
}
int Move (int dir)
{
if (katalog == 0)
{
analogWrite (PinMotorA_1, SpeedMotor_A);
analogWrite (PinMotorB_1, SpeedMotor_B);
}
if (katalog == 1)
{
analogWrite (PinMotorA_2, SpeedMotor_A);
analogWrite (PinMotorB_2, SpeedMotor_B);
}
}
int calcDiff ()
{
ValSens_A = analogRead (PinSens_A);
ValSens_B = analogRead (PinSens_B);
if (ValSens_A> ValSens_B)
{
int diff = ValSens_A - ValSens_B;
zwróć diff;
}
if (ValSens_A <ValSens_B)
{
int diff = ValSens_B - ValSens_A;
zwróć diff;
}
}
void Debug ()
{
Serial.print (Ris);
Serial.print ("");
Serial.print (ValSens_A);
Serial.print ("");
Serial.print (ValSens_B);
Serial.println ("");
}
void setup ()
{
Serial.begin (9600);
pinMode (PinMotorA_1, OUTPUT);
pinMode (PinMotorA_2, OUTPUT);
pinMode (PinMotorB_1, OUTPUT);
pinMode (PinMotorB_2, OUTPUT);
pinMode (PinSens_A, INPUT);
pinMode (PinSens_B, INPUT);
}
void loop ()
{
jeśli (różnica == 0)
{
różnica = 1;
}
ValSens_A = analogRead (PinSens_A);
ValSens_B = analogRead (PinSens_B) +150; // użyj numeru zmiennej do zrównoważenia czujników
Ris = RoL (ValSens_A, ValSens_B);
Follow (Ris, 100);
Przenieś (0);
Odpluskwić();
};