Çizgi İzleyen Robot Nasıl Yapılır ?

Robot pistte ve başında bir insan var

MALZEME LİSTESİ

  • 1 adet PIC16F628A
  • 1 adet L293D
  • 1 adet 18’li Entegre Soketi
  • 1 adet 16’lı Entegre Soketi
  • 4 adet 10K direnç
  • 2 adet 100nF kondansatör
  • 3 adet CN70
  • 2 adet22pF
  • 1 adet anahtar
  • 1 adet buton
  • 1 adet 330 R Direnç
  • 3 adet 100R Direnç
  • 3 adet 82R Direnç
  • 2 adet motor ve teker,
  • 1 adet 4’lü kalem pil yuvası
  • 1 adet 9V pil başlığı
  • 1 adet 74hc14
  • 4 adet led
  • 1 adet 40’lı dişi ve erkek header
  • 1 adet 5’li kablo
  • Uygun ölçülerde plexy
  • 2 adet 1n4148
ŞEKİL-1 SENSÖR KARTI DEVRESİ  (ISIS)
ŞEKİL-2 SENSÖR KARTI DEVRESİ    (ARES)
ŞEKİL-3 ANA DEVRE ŞEMASI              (ISIS)
ŞEKİL-4 ANA DEVRE ŞEMASI        (ARES)
ŞEKİL-5 ANA DEVRE ARES ÜSTTEN GÖRÜNÜŞÜ
ŞEKİL-7 SENSÖR DEVRESİ ARES ÜSTTEN GÖRÜNÜŞÜ

YAPIM AŞAMASI

El işi kağıdına birebir çıktı alındıktan sonra belirlenen ölçülere göre bakır plaket kesilip temizledik. Temizleme işlemi bakır yüzeye biraz Cif yada Vim dökülüp  bulaşık süngeri ya da bulaşık teli ile iyice ovaladık. El işi kâğıdında ki tonerlerin bakır yüzeye geçmesi için sıcak bir yüzeyle temas ettirilip bakıra geçişi sağladık. İşlemlerin kullanılmayan bez üzerinde yaptık.Ütülendikten sonra su dolu bir kabın içerisinde bakır plaket soğuyunca kadar beklettik.
Ardından el işi kâğıdı itina ile çıkartılıp asite atılmak için bekledik. Daha sonra bakır plaket yollarının haricinde kalan yerleri eritmek için kullandığımız çözelti Hidrojen Peroksit (Perhidrolun daha yoğunu), Hidroklorik Asit (Tuzruhunun saf hali). Bu karışım 3 ölçek tuzruhu, 1 ölçek perhidrol kullanılarak yaptık. Biz saf maddelerini kullandığımızdan içine tahmini 2 ölçekte su ilave ettik. İşlem sırasında kesinlikle maske ve eldiven  taktık. Erime işlemi tamamlanınca plaket çözeltiden çıkartılır ve bol suyla yıkanır.
Eritme işleminden hemen sonra Cif ile siyah yolları yani tonerleri çıkardık. El Matkabı ile 0.8mm uç ile eleman deliklerini deliyoruz. Yukarıdaki plaketler öncelikle atlamarın ve dirençlerin delikleri 0.6mm ile deldik. Ardından soketler ve transistörlerin delikleri ise 0.8mm ile deldik.

CCS C Kodu

//Flame sensörleri alev görmedikleri zaman 5V, gördükleri zaman 0V çıkış veriyor

#include <16F628A.h>
#device ADC=16
#fuses WDT,PROTECT,NOLVP,MCLR,NOPUT,CPD,BROWNOUT,XT
#use delay(crystall=4Mhz)
#define MotorA_in1
PIN_B0
#define MotorA_in2
PIN_B1
#define MotorB_in1
PIN_B2
#define MotorB_in2
PIN_B3
#define SagCN
PIN_B4
#define OrtaCN
PIN_B5
#define SolCN
PIN_B6
#define flameSensor1 PIN_B7
#define flameSensor2 PIN_A1
#define fanMotor1
PIN_A0
#define fanMotor2
PIN_A3
void ileri()
{
output_high(MotorA_in1);
output_low(MotorA_in2);
output_high(MotorB_in1);
output_low(MotorB_in2);
}
void geri()
{
output_low(MotorA_in1);
output_high(MotorA_in2);
output_low(MotorB_in1);
output_high(MotorB_in2);
}
void saga()
{
output_high(MotorA_in1);
output_low(MotorA_in2);
output_low(MotorB_in1);
output_low(MotorB_in2);
}
void sola()
{
output_low(MotorA_in1);
output_low(MotorA_in2);
output_high(MotorB_in1);
output_low(MotorB_in2);
}
void dur()
{
output_low(MotorA_in1);
output_low(MotorA_in2);
output_low(MotorB_in1);
output_low(MotorB_in2);
}

ANA PROGRAM FONKSİYONU


void main ()
{
output_a(0x00);      //TrisA
Latchı temizlendi.
output_b(0x00);      //TrisB
Latchı temizlendi.
while(1){
if(input(SagCN)) saga(); //Sag CN70 siyah çizgiyi gördüyse
if(input(OrtaCN)) ileri(); //Orta CN70 siyah çizgiyi gördüyse
if(input(SolCN)) sola();   //Sol
CN70 siyah çizgiyi gördüyse
}
}

Yazı gezinmesi