ROBOT KOLLARININ MODERNİZASYONU VE KONTROLÜ
|
|
- Erol Çimen
- 8 yıl önce
- İzleme sayısı:
Transkript
1 ROBOT KOLLARININ MODERNİZASYONU VE KONTROLÜ MUSTAFA SERKAN BOZKURT MEHMET FİDAN MEHMET KARADENİZ
2 İÇİNDEKİLER 1) GİRİŞ 2)GELİŞME 3)SONUÇ 4)KAYNAKÇA 5)EKLER
3 GİRİŞ Bu projede 5 eklemli robot kolu incelendi ve geliştirildi. Topel robotumuz 4 step ve 1 DC motordan oluşmaktadır. Bu motorların özellikleri şekil 1de gösterilmektedir. Bu motorlar 2 sürücü kartıyla sürülmektedir. Bu sürücü kartlarından biri 4 step motoru, diğeri de 5. step motoru ve DC motoru sürüyor. Bu kartların devre şemaları şekil 2 ve 3 gösterilmektedir. DC motor robot elinin açılıp kapanmasında kullanılıyor. Robot eli içte ve dışta olmak üzere 2 anahtara sahip. İçteki anahtar el kapandıktan sonra motoru durduruyor. Dıştaki anahtar da el açıldıktan sonra motoru durduruyor. Bu anahtarlar sayesinde PC den DC motoru durdurmak için ayrıca bilgi gönderilmesi gerekmiyor. Bu anahtarların bağlantı şemaları şekil 4 te gösterilmektedir. Motorlardan step motor olan 4 tanesi robot kolun alt tarafında toplanmakta ve 1 step ve 1DC motor robotun uç tarafında toplanmaktadır. Altaki 4 step motor hareketlerini eklemlere kayışlar aracılığıyla iletmektedir. Uçtaki step ve DC motorlar hareketlerini güneş dişli sistemiyle iletmektedir. Uçtaki ve kayışların bağlı olduğu dişli sistemleri elektrik kesildiği anda eklemlerin bulunduğu konumda sabit kalmasını sağlamaktadır. 24 giriş-çıkış imkanı sağlayan ve 8255 programlanabilir arayüz çipinin 0 modunu kullanan bir PIO kartı kullanılmıştır. Bu 50 pin uyumlu I/O kartıyla PC den transistör ve optokuplerlerden oluşan devreye oradan da motorlara bilgi gönderilmektedir. Önceden de söylediğimiz gibi 2 tane sürücü kartı kullanılmıştır. Yani sadece 1 bilgisayar kullanılarak 2 tane bilgi yolu gerekmektedir. Bu yüzden, sürücü kartlarıyla PC arasında bir kart dizayn edilmiştir. Motorları sürmek için 28 bitlik bilgi gerekmesine rağmen tasarlanan I/O kartında 24 bitlik çıkış bulunmaktadır. Bu bir sorun oluşturmaktadır. Başka bir sorun ise PCL 724 PIO kartının A4 ve C4 pinlerinin çalışmamasıdır. Şekil 5te gösterilen 74HC04N inverterinin kullanıldığı bir devreyle sorun halledilmiştir. Yapılan bütün bağlantılar şekil 1de gösterilmektedir. GELİŞME Robot kol kinematiğinde verilen eklem açılarına göre pozisyon bulunur. Ters kinematikte ise girilen pozisyona ulaşabilmek için gerekli eklem açıları bulunur. Bu ters kinematik denklemlerinde birden fazla çözüm vardır. Bu çözümlerin sayısı robot koldaki eklem sayısına bağlı olmakla birlikte bundan başka bağlantı parametrelerine ve bunların ulaşabileceği alana da bağlıdır. Girilen nokta çalışma uzayı içindeyse en mantıklı olanı en yakın çözümü almaktır. Fakat yazılımda ters kinematiğin geometrik çözümü kullanılarak belli bir hata payı içerisine girildiğindeki ilk eklem açı değerleri alınmaktadır. Çözümler yapılırken Hakan Korul un yüksek lisans tezindeki denklemler kullanılmıştır. TOPEL robotunu çalıştıracak C programı yazılmıştır. Program ilk önce robot kolun bulunduğu başlangıç pozisyonunun eklemlerdeki açısal değerini referans fonksiyonunda istemektedir. Daha sonra gidilecek pozisyonun X, Y, Z koordinatlarını cm. cinsinden koordinat fonksiyonunda istenilmektedir. X, Y, Z olarak girilen pozisyonun kolun gidebileceği bir noktada olup olmadığını sınırla fonksiyonunda kontrol edilmektedir. Kontrol sonucu girilen pozisyon eğer çalışma uzayı dışarısındaysa program yeni konum girilmesini istemektedir. Eğer çalışma uzayı içerisindeyse döngü fonksiyonlarında gidilecek noktanın eklemlerdeki açısal değerleri hesaplanmaktadır. Bu hesaplanan açılar hesapla fonksiyonlarında motorlara gönderilecek sinyal sayılarına çevrilmektedir. TOPEL robotumuz kayışlarla hareket ettirildiğinden bir eklemin hareketi diğer eklemleri de etkilemektedir. Bunun sonucunda ortaya çıkan diğer eklemlerdeki düzeltme gereksinimi düzeltme fonksiyonlarında hesaplanıp motorlara gönderilecek sinyal sayılarına eklenmektedir.
4 Programda motorlara gönderilecek sinyal sayıları başla fonksiyonunda büyükten küçüğe sıralanmaktadır. Bu sıralamaya göre sinyal sayısı en küçük olan motorun hareketinin ilk önce, büyük olan motorun hareketinin de en sonda tamamlanacak şekilde sinyaller düzenlenmektedir. Düzenlenen bu sinyaller sinyal fonksiyonu kullanılarak motorları aynı anda çalıştıracak şekilde motorlara gönderilmektedir. Gidilecek noktaya gelindikten sonra yani eklemlerin hareketi durduktan sonra el eklemi bir nesneyi tutmak üzere kapanmaktadır. Nesne tutulduktan sonra devam et fonksiyonu kullanılarak ya nesnenin götürüleceği yeni koordinatların girilmesi istenilmekte ya da başlangıç noktasına dönülmektedir. Yeni konum girilirse nesne o konuma götürülüp bırakılmakta eğer başlangıç noktasına dönülürse nesne başlangıç noktasına bırakılıp programdan çıkılmaktadır. Programın akış şeması ekler bölümünde verilmiştir. SONUÇ TOPEL robot kolu yazılan C diliyle ister eklemlerin her birinin ayrı ayrı gideceği açılar verilerek ister kolun gideceği noktanın cm. cinsinden X, Y, Z konumları verilerek hareket ettirilmiştir. Ancak dişlilerdeki boşluklar yüzünden bazı eklemlerde sapmalar görülmüştür. Bu sapmalar girilen konumlara tam varılmasını engellemektedir. Yine de bu sapmalar önceden hesaba katılarak istenilen konumlara varılabilir. Eğer motorlar eklemler üzerine konulacak şekilde donanım tasarımı yapılırsa, eklemler birbirinden bağımsız hareket ettirilebilir ve yazılımdaki düzeltme fonksiyonlarının yazılmasına gerek kalmayacaktır. Böylelikle istenilen noktaya gitmek daha sağlıklı olacaktır. Aynı zamanda böyle bir donanım tasarımı sonucunda robotun çalışma uzayı da genişleyecektir. KAYNAKÇA KORUL, Hakan. Robot Kollarının Video Kameradan Alınan Derinlik Bilgisi Geri Besleme ile Kontrolu, bitirme tezi, 1995 TÜRKAN, Mehmet Beş Eklemli Robot Kolu Kontrolu, rapor, 2003 PIO-724 Arayüz kartı manuali
5 EKLER Programın Akış Şeması BAŞLA Başlangıç pozisyonunun açılarını gir hedef noktasını gir H çalışma uzayı içinde mi? E Açıları hesapla Sayıları hesapla Düzeltmeleri hesapla Motor datalarını bul Motorlara sinyalleri gönder el eklemini çalıştır devam edilecek mi? E H Başlangıç noktasına dön DUR ve ÇIK
6 MOTOR ÖZELLİKLER MOTOR GİRİŞİ Stepper 5 - Stepper 4 Stepper 3 Stepper 2 Stepper 1 Step Syn Stepping Motor Type I 03G I IBM PN 94X5937 INSUL. CLASS B DC 4.1V 1.1A 1.8 DEG / STEP LOT NO - SANYO DENKI CO..LTD. SANYO Step Syn Stepping Motor Type I I DC 4.5V 1.4A 2 DEG / STEP IBM P/N LOT NO - SANYO CO..LTD. SANYO Step Syn Stepping Motor Type I I IBM P/N LOT NO - DC 4.5V 1.4A 2 DEG / STEP DENKI SANYO CO..LTD SANYO Step Syn Stepping Motor Type I I IBM P/N LOT NO - DC 4.5V 1.4A 2 DEG / STEP DENKI Beyaz Mavi Sarı Kırmızı Mavi Kırmızı KırmBeyaz MaviBeyaz Siyah Beyaz Mavi Kımızı KırmBeyaz MaviBeyaz Siyah Beyaz Mavi Kırmızı KırmBeyaz MaviBeyaz Siyah Beyaz Mavi Kımızı KırmBeyaz MaviBeyaz Siyah Beyaz BAĞLANAN KABLO Kahverengi Blue Sarı Yeşil Mavi Turuncu Kahverengi Yeşil Gümüş Gümüş Mavi Turuncu Kahverengi Yeşil Gümüş Gümüş Mavi Turuncu Kaverengi Yeşil Gümüş Gümüş Mavi Orange Kahverengi Sarı Gümüş Gümüş SANYO DENKI CO..LTD şekil 1. (a) step motorlarının özellikleri ve bağlantıları KART ÇIKIŞI 1STEP+DC SÜRÜCÜ Kahverengi pin.7 Mavi pin.2 yellow pin.6 green pin.1 4XSTEP SÜRÜCÜ Beyaz pin.13 Turuncu pin.15 Yeşil pin.16 Mavi pin XSTEP SÜRÜCÜ Siyah pin.12 Yeşil pin.10 Turuncu pin.9 Beyaz pin XSTEP SÜRÜCÜ İşaretli Beyaz pin.5 Beyaz pin.7 İşaretli Gri pin.8 Gri pin XSTEP SÜRÜCÜ Kırmızı pin.4 Mavi pin.2 Siyah pin.1 Yeşil pin.3 - -
7 MOTOR End-effector* ( DC motor ) ÖZELLİKLER MOTOR GİRİŞİ BAĞLANAN KABLO KART ÇIKIŞI 1STEP+DC SÜRÜCÜ - Siyah Dış switch (II) - Beyaz Pembe Sarı pin.3 şekil 1. (b) DC motorun özellikleri ve bağlantıları Şekil-2 1x4 Step Motor Sürücü Kartı Şekil-3 1 step+dc Motor Sürücü Kartı Şekil-4 Anahtar Bağlantı Şeması Şekil-5 74HC04N Devre Şeması
8 Şekil-6 Yeni Robot Eli Şekil-7 Yeni Robot Elinin Step motora Bağlantısı Şekil-8 Elin DC motor-çark Bağlantısı Şekil-9 Elin Parmak Bağlantısı Şekil-10 Eli Kapatırken Durduracak Anahtar
9 Şekil-10 Topel Robot Eli Şekil-11 İç Anahtar Şekil-12 Dış Anahtar Şekil-13 PIO 82C55 Arayüz Kartı Şekil-14 82C55 Çıkış Terminali
10 ROBOTTEST.CPP /* Topel robotunun eklemlerini tek tek hareket ettiren program */ #include <time.h> #include <stdio.h> #include <dos.h> #include <conio.h> int Base=0x2c0; int d=5; void motor1_left(int step); void motor1_right(int step); void motor2_up(int step); void motor2_down(int step); void motor3_up(int step); void motor3_down(int step); void motor4_up(int step); void motor4_down(int step); void motor5_left(int step); void motor5_right(int step); void hand_open(); void hand_close(); int main(void) /*Base=0x378 - Control Register=Base+2 - Data Register=Base+0*/ int count; int i; int Vo; char a; /*Initialize*/ outportb(base+3,0x80); /*Set Port A as IN and Port B as OUT*/ outportb(base+0,0x00); outportb(base+1,0x00); outportb(base+2,0x00); while(!kbhit()) hand_close(); /* motor5_left(50);*/ void motor1_right(int step)
11 int i; for(i=0;i<step;i++) outportb(base+0,0x06); outportb(base+0,0x0a); outportb(base+0,0x09); outportb(base+0,0x05); void motor1_left(int step) int i; for(i=0;i<step;i++) outportb(base+0,0x05); outportb(base+0,0x09); outportb(base+0,0x0a); outportb(base+0,0x06); void motor2_up(int step) int i; for(i=0;i<step;i++) outportb(base+0,0x60); outportb(base+0,0xa0); outportb(base+0,0x90); outportb(base+0,0x50); void motor2_down(int step) int i;
12 for(i=0;i<step;i++) outportb(base+0,0x50); outportb(base+0,0x90); outportb(base+0,0xa0); outportb(base+0,0x60); void motor3_up(int step) int i; for(i=0;i<step;i++) outportb(base+1,0x06); outportb(base+1,0x0a); outportb(base+1,0x09); outportb(base+1,0x05); void motor3_down(int step) int i; for(i=0;i<step;i++) outportb(base+1,0x05); outportb(base+1,0x09); outportb(base+1,0x0a); outportb(base+1,0x06); void motor4_up(int step) int i; for(i=0;i<step;i++)
13 outportb(base+1,0x60); outportb(base+1,0xa0); outportb(base+1,0x90); outportb(base+1,0x50); void motor4_down(int step) int i; for(i=0;i<step;i++) outportb(base+1,0x50); outportb(base+1,0x90); outportb(base+1,0xa0); outportb(base+1,0x60); void motor5_left(int step) int i; for(i=0;i<step;i++) outportb(base+2,0x06); outportb(base+2,0x0a); outportb(base+2,0x09); outportb(base+2,0x05); void motor5_right(int step) int i; for(i=0;i<step;i++) outportb(base+2,0x05);
14 outportb(base+2,0x09); outportb(base+2,0x0a); outportb(base+2,0x06); void hand_open() outportb(base+2,0xa0); void hand_close() outportb(base+2,0x50); BASIC_C.CPP /*Topel robotu koordinatlar verilerek hareket ettiren program*/ #include <time.h> #include <process.h> #include <stdlib.h> #include <stdio.h> #include <dos.h> #include <conio.h> #include <iostream.h> #include <math.h> int sign[6],bul[6],devir[6],bul1[6],bul2[6],bul3[6],bul4[6],bul5[6],i,j,k,l,m,t,min; int porta[6],portb[6],portc[6]; void sinyal(int c[6]); int minimum(int b[6]); int basla1(); int basla(); /*60*/ int devamet(); /* aras*/ void donuyor(); /* aras*/ void koordinat(); /* aras*/ void sinirla(); /* aras*/ void disarda(); /* aras*/ void dongu1(); /* aras*/ void dongu2(); /* aras*/ void dongu3(); /* aras*/ void dongu4(); /* aras*/ void dongu5(); /* aras*/ void hesapla(); /* aras*/ void referans();
15 void hesapla4(); /* arasi*/ void duzeltme();/* arasi*/ void duzeltme1();/* arasi*/ void duzeltme2();/* arasi*/ void duzeltme3();/* arasi*/ void duzeltme4();/* arasi*/ void duzeltme5();/* arasi*/ void duzeltme6();/* arasi*/ void duzeltme7();/* arasi*/ void duzeltme8();/* arasi*/ void duzeltme9();/* arasi*/ void sayac(); int yuvarla(float r); char harf; float Q22,Q32,Q42,Q1,Q11,Q21,Q31,Q41,Q51,Q52,Q3,Q2,Q4,Q5,X1,X2,Y,Y1,Z,Z1,G1,G2,G3; float T1,T2,T3,T4,T5,R1,R2,R3,R4,R5; float pi=(m_pi/180); float a[6],a1[6]; int d32a,d42a,d43a,d32y,d42y,d43y; int count,s[6]; int cevap; int main() outportb(0x2c3,0x80); outportb(0x2c0,0x00); outportb(0x2c0,0x00); cout<<"basla"<<endl; count=1; while(count>=1) basla1(); if((count%2)==1) outportb(0x2c2,0x50); delay(7000); ; if((count%2)==0) outportb(0x2c2,0xa0); delay(7000);; if (cevap==2) break; count++;; return 0; int basla() if (count>1) devamet(); else referans(); return(0); int devamet() cout<<"yeni konum girmek i in 1e "<<endl; cout<<"baÿlang noktasna d np programdan kmak i in 2ye basnz:"; cin>>cevap;
16 Q11=T1; Q21=T2; Q31=T3; Q41=T4; Q51=T5; switch(cevap) case 1: cout<<"yeni koordinatlar giriniz:"; cin>>x2>>y>>z; sinirla(); break; case 2: cout<<"baÿlang noktasna d nyorum."<<endl; Q1=R1; Q22=R2; Q32=R3; Q42=R4; Q52=R5; hesapla(); break; ; return(0); void referans() cout<<"baÿlang noktasn Q11,Q21,Q31,Q41,Q51 olarak giriniz:" ; cin>>q11>>q21>>q31>>q41>>q51; R1=Q11; R2=Q21; R3=Q31; R4=Q41; R5=Q51; koordinat(); void koordinat() cout<<"koordinatlari X,Y,Z sirasiyla giriniz:"; cin>>x2>>y>>z; cout<<"kartezyen koordinatlari girildi"<<endl; cout<<" aliÿma uzayi i inde olup olmadi i kontrol ediliyor."<<endl; sinirla(); void sinirla() if (Z<3 Z>102.7 Y>65) disarda(); else if ((X2>=60 && Z>40) (X2>60 && Z>=40)) disarda(); else if (X2>=57 && Z>=52) disarda(); else if (X2>=71 && Z>=25) disarda(); else if (((X2*X2)+(Z*Z))<850) disarda(); else if (((((Z-30.7)*(Z-30.7))+(X2*X2))*(0.707))>(65*65)) disarda(); else if (abs(y)>abs(x2)) disarda(); dongu1();
17 void disarda() cout<<"koordinatlar calsma uzaynn dsnda"<<endl; cout<<"yeni koordinatlar giriniz"<<endl; koordinat(); cout<<"polar koordinatlar hesaplanmaya baÿland"<<endl; dongu1(); void dongu1() float Q2C,xa,za,t,Q2F,Q3F,Q4F; if (Z>65) Q2C=45; else Q2C=0; for(q2=(90-q2c);q2>=(50-q2c);q2=(q2-5)) for(q3=0;q3<=35;q3=(q3+5)) for(q4=0;q4<=35;q4=(q4+5)) G1=90-Q2; G2=Q2+Q3; G3=G2+Q4; xa= *cos(G1*pi)+28.6*sin(G2*pi)+16.0*sin(G3*pi); X1=abs(X2)-xa; za=(30.5+(28.0*sin(g1*pi))+(28.6*cos(g2*pi))+(16.0*cos(g3*pi))); Z1=Z-za; t=(x1*x1)+(z1*z1); /* delay(1000); */ if(((x1*x1)+(z1*z1))<10) break; if(((x1*x1)+(z1*z1))<10) break; if(((x1*x1)+(z1*z1))<10) break; cout<<"xa= "<<xa<<"za= "<<za<<endl; cout<<"q2="<<q2<<" Q3="<<Q3<<" Q4="<<Q4<<endl; cout<<"x1="<<x1<<" Z1="<<Z1<<endl; if(q2==0) Q2F=0; else Q2F=2.5; if(q3==0) Q3F=0; else Q3F=2.5; if(q4==0) Q4F=0; else Q4F=2.5; cout<<q2f<<" "<<Q3F<<" "<<Q4F<<" "<<endl; for(q22=(q2-q2f);q22<=(q2+2.5);q22=(q22+0.5)) for(q32=(q3-q3f);q32<=(q3+2.5);q32=(q32+0.5)) for(q42=(q4-q4f);q42<=(q4+2.5);q42=(q42+0.5)) G1=90-Q22; G2=Q22+Q32; G3=G2+Q42; X1=abs(X2)-3-(28.0*cos(G1*pi))-(28.6*sin(G2*pi))-(16.0*sin(G3*pi)); Z1=Z-(30.5+(28.0*sin(G1*pi))+(28.6*cos(G2*pi))+(16.0*cos(G3*pi)));
18 t=(x1*x1+z1*z1); /* cout<<"t= "<<t<<endl; delay(1000);*/ if(((x1*x1)+(z1*z1))<3) break; if(((x1*x1)+(z1*z1))<3) break; if(((x1*x1)+(z1*z1))<3) break; /*Q22=Q2; Q32=Q3; Q42=Q4;*/ cout<<"q22="<<q22<<" Q32="<<Q32<<" Q42="<<Q42<<endl; cout<<"x1="<<x1<<" Z1="<<Z1<<endl; Q22=Q2; Q32=Q3; Q42=Q4; for (Q1=0;Q1<=90;Q1=(Q1+2)) Y1=abs(Y)-abs(X2)*tan(Q1*pi); if ((Y1*Y1)<1) break; if ((X2<0)&&(Y<0)) Q1=180-Q1; else if ((X2<0)&&(Y>0)) Q1=180+Q1; else if ((X2>0)&&(Y>0)) Q1=360-Q1; cout<<"q1="<<q1<<" "<<"Q22="<<Q22<<" "<<"Q32="<<Q32<<" "<<"Q42="<<Q42<<endl; T1=Q1; T2=Q22; T3=Q32; T4=Q42; T5=Q51; Q52=Q51; cout<<"x1="<<x1<<" "<<"Y1="<<Y1<<" "<<"Z1="<<Z1<<endl; cout<<"polar koordinatlar hesaplandi"<<endl; cout<<"sinyal sayilari hesaplaniyor."<<endl; hesapla(); void hesapla() a[1]=q1-q11; while(a[1]>360.0) a[1]=a[1]-360.0; while(a[1]<-360.0)a[1]=a[1]+360.0; if (a[1]<=360.0&&a[1]>=0.0) if (a[1]>180.0) a[1]=a[1]-360.0; if (a[1]<=180.0) a[1]=a[1]; ; if(a[1]>=-360.0&&a[1]<0.0) if (a[1]>=-180.0) a[1]=a[1]; if (a[1]<-180.0) a[1]=360.0+a[1]; hesapla4(); int yuvarla(float r) int b; b=r; if ((r-b)>=0.5) b++; return b; void hesapla4()
19 int vi,i,j; s[1]=abs( yuvarla((a[1]*4960.0)/360.0) ) ; bul[1]=s[1]; a[2]=q22-q21; s[2]=abs( yuvarla((a[2]*1800.0)/90.0) ) ; bul[2]=s[2]; a[3]=q32-q31; s[3]=abs( yuvarla((a[3]*4150.0)/90.0) ) ; bul[3]=s[3]; a[4]=q42-q41; s[4]=abs( yuvarla((a[4]*1350.0)/45.0) ) ; bul[4]=s[4]; if (count==1) a[5]=0-q51; else a[5]=q52-q51; s[5]=abs( yuvarla((a[5]*148.0)/180.0) ) ; bul[5]=s[5]; vi=0; cout<<"bul1="<<bul[1]<<" Bul2="<<bul[2]<<" Bul3="<<bul[3]<<" Bul4="<<bul[4]<<" Bul5="<<bul[5]<<endl; for (i=1;i<=4;i++) for(j=(i+1);j<=5;j++) if (bul[i]==bul[j]) vi++; if (vi==10) cout<<"zaten baÿlangictayiz."<<endl; cout<<"baslangcta degilsek bu noktaya ulaÿmak i in yeni aci degerlerini giriniz."<<endl; duzeltme(); void duzeltme() cout<<"sinyal saylar hesapland."<<endl; cout<<"sinyal saylar zerinde gerekli dzeltmeler yaplyor."<<endl; if (a[5]<0) bul[5]=-1*bul[5]; cout<<"bul[5]="<<bul[5]<<endl; cout<<"a[2]="<<a[2]<<"a[3]="<<a[3]<<"a[4]="<<a[4]<<endl; if(a[2]>=0&&a[3]>=0&&a[4]>=0) duzeltme1(); else duzeltme2(); void duzeltme1() cout<<"dzeltme 1deyim"<<endl; d32a=yuvarla(a[2]*1420.0/90.0); cout<<"d32a="<<d32a<<endl; bul[3]=bul[3]+bul[2]+d32a; cout<<"bul[3]="<<bul[3]<<endl; d42a=yuvarla(a[2]*280.0/90.0); cout<<"d42a="<<d42a<<endl; bul[4]=bul[4]+bul[3]-d42a; cout<<"bul[4]="<<bul[4]<<endl; d43a=yuvarla(a[3]*1244.0/120.0); cout<<"d43a="<<d43a<<endl; bul[4]=bul[4]-d43a; cout<<"bul[4]="<<bul[4]<<endl; a[2]=1;
20 a[3]=1; a[4]=1; // sayac(); void duzeltme2() cout<<"dzeltme 2deyim"<<endl; if (a[2]<=0&&a[3]<=0&&a[4]<=0) duzeltme3(); else duzeltme4(); void duzeltme3() cout<<"dzeltme 3deyim"<<endl; d32y=abs(yuvarla(a[2]*1420.0/90.0)); bul[3]=bul[3]+bul[2]+d32y; d42y=abs(yuvarla(a[2]*280.0/90.0)); bul[4]=bul[4]+bul[3]-d42y; cout<<"bul[4]="<<bul[4]<<endl; d43y=abs(yuvarla(a[3]*1244.0/120.0)); bul[4]=bul[4]-d43y; cout<<"d32y="<<d32y<<"bul[3]="<<bul[3]<<"d42y="<<d42y<<"bul[4]="<<bul[4]<<"d43y ="<<d43y<<endl; a[2]=-1; a[3]=-1; a[4]=-1; // sayac(); // void duzeltme4() cout<<"dzeltme 4teyim"<<endl; if (a[2]<=0&&a[3]<=0&&a[4]>=0) duzeltme5(); else duzeltme6(); void duzeltme5() cout<<"dzeltme 5deyim"<<endl; d32y=abs(yuvarla(a[2]*1420.0/90.0)); bul[3]=bul[3]+bul[2]+d32y; d42y=abs(yuvarla(a[2]*280.0/90.0)); bul[4]=abs(-bul[4]+bul[3]-d42y); cout<<"bul[4]="<<bul[4]<<endl; d43y=abs(yuvarla(a[3]*1244.0/120.0)); bul[4]=abs(bul[4]-d43y); cout<<"d32y="<<d32y<<"bul[3]="<<bul[3]<<"d42y="<<d42y<<"bul[4]="<<bul[4]<<"d43y ="<<d43y<<endl; a[2]=-1; a[3]=-1;
21 a[4]=1; // sayac(); void duzeltme6() cout<<"dzeltme 6daym"<<endl; if (a[2]<=0&&a[3]>=0&&a[4]>=0) duzeltme7(); else duzeltme8(); void duzeltme7() cout<<"dzeltme 7deyim"<<endl; d32y=abs(yuvarla(a[2]*1420.0/90.0)); bul[3]=abs(-bul[3]+bul[2]+d32y); d42y=abs(yuvarla(a[2]*280.0/90.0)); bul[4]=abs(-bul[4]+bul[3]+d42y); cout<<"bul[4]="<<bul[4]<<endl; d43a=abs(yuvarla(a[3]*1244.0/120.0)); bul[4]=abs(bul[4]-d43a); cout<<"d32y="<<d32y<<"bul[3]="<<bul[3]<<"d42y="<<d42y<<"bul[4]="<<bul[4]<<"d43a ="<<d43a<<endl; a[2]=-1; a[3]=1; a[4]=1; // sayac(); void duzeltme8() cout<<"dzeltme 8deyim"<<endl; if (a[2]<=0&&a[3]>=0&&a[4]<=0) duzeltme9(); // else sayac(); void duzeltme9() cout<<"dzeltme 9daym"<<endl; d32y=abs(yuvarla(a[2]*1420.0/90.0)); bul[3]=abs(-bul[3]+bul[2]+d32y); d42y=abs(yuvarla(a[2]*280.0/90.0)); bul[4]=abs(-bul[4]+bul[3]+d42y); cout<<"bul[4]="<<bul[4]<<endl; d43a=abs(yuvarla(a[3]*1244.0/120.0)); bul[4]=abs(bul[4]+d43a); cout<<"d32y="<<d32y<<"bul[3]="<<bul[3]<<"d42y="<<d42y<<"bul[4]="<<bul[4]<<"d43a ="<<d43a<<endl; a[2]=-1; a[3]=1; a[4]=-1; cout<<"dzeltmeler bitti."<<endl; cout<<"motorlara gidecek gerekli sinyaller oluÿturuluyor."<<endl; cout<<"sinyaller g nderiliyor ve saya kontrol ediliyor."<<endl; delay(5000); // sayac();
22 int minimum(int b[6]) int k,i; k=0; for(i=1;i<=5;i++) k=(k+b[i]); for(i=1;i<=5;i++) if((b[i]!=0)&&(k>b[i])) k=b[i]; return k; void sinyal(int c[6]) if (((c[1]*a[1])==0)&&((c[2]*a[2])==0)) for (i=1;i<=4;i++) porta[i]=0;; if (((c[1]*a[1])==0)&&((c[2]*a[2])<0)) porta[1]=0x60;porta[2]=0xa0;porta[3]=0x90;porta[4]=0x50;; if (((c[1]*a[1])>0)&&((c[2]*a[2])==0)) porta[1]=0x06;porta[2]=0x0a;porta[3]=0x09;porta[4]=0x05;; if (((c[1]*a[1])>0)&&((c[2]*a[2])<0)) porta[1]=0x66;porta[2]=0xaa;porta[3]=0x99;porta[4]=0x55;; if (((c[1]*a[1])==0)&&((c[2]*a[2])>0)) porta[1]=0x50;porta[2]=0x90;porta[3]=0xa0;porta[4]=0x60;; if (((c[1]*a[1])<0)&&((c[2]*a[2])==0)) porta[1]=0x05;porta[2]=0x09;porta[3]=0x0a;porta[4]=0x06;; if (((c[1]*a[1])<0)&&((c[2]*a[2])>0)) porta[1]=0x55;porta[2]=0x99;porta[3]=0xaa;porta[4]=0x66;; if (((c[1]*a[1])<0)&&((c[2]*a[2])<0)) porta[1]=0x65;porta[2]=0xa9;porta[3]=0x9a;porta[4]=0x56;; if (((c[1]*a[1])>0)&&((c[2]*a[2])>0)) porta[1]=0x56;porta[2]=0x9a;porta[3]=0xa9;porta[4]=0x65;; if (((c[3]*a[3])==0)&&((c[4]*a[4])==0)) for (i=1;i<=4;i++) portb[i]=0;; if (((c[3]*a[3])==0)&&((c[4]*a[4])<0)) portb[1]=0x60;portb[2]=0xa0;portb[3]=0x90;portb[4]=0x50;; if (((c[3]*a[3])<0)&&((c[4]*a[4])==0)) portb[1]=0x06;portb[2]=0x0a;portb[3]=0x09;portb[4]=0x05;; if (((c[3]*a[3])<0)&&((c[4]*a[4])<0)) portb[1]=0x66;portb[2]=0xaa;portb[3]=0x99;portb[4]=0x55;; if (((c[3]*a[3])==0)&&((c[4]*a[4])>0)) portb[1]=0x50;portb[2]=0x90;portb[3]=0xa0;portb[4]=0x60;; if (((c[3]*a[3])>0)&&((c[4]*a[4])==0)) portb[1]=0x05;portb[2]=0x09;portb[3]=0x0a;portb[4]=0x06;; if (((c[3]*a[3])>0)&&((c[4]*a[4])>0)) portb[1]=0x55;portb[2]=0x99;portb[3]=0xaa;portb[4]=0x66;; if (((c[3]*a[3])>0)&&((c[4]*a[4])<0)) portb[1]=0x65;portb[2]=0xa9;portb[3]=0x9a;portb[4]=0x56;; if (((c[3]*a[3])<0)&&((c[4]*a[4])>0)) portb[1]=0x56;portb[2]=0x9a;portb[3]=0xa9;portb[4]=0x65;; if((c[5]*a[5])>0) portc[1]=0x05;portc[2]=0x09;portc[3]=0x0a;portc[4]=0x06;;
23 if((c[5]*a[5])<0) portc[1]=0x06;portc[2]=0x0a;portc[3]=0x09;portc[4]=0x05;; if((c[5]*a[5])==0) for(i=1;i<=4;i++) portc[i]=0;; int basla1() basla(); for (i=1;i<=5;i++) bul1[i]=abs(bul[i]); if (bul[i]!=0) sign[i]=bul[i]/bul1[i]; else sign[i]=1; for (i=1;i<=5;i++)if (bul1[i]!=0) bul2[i]=bul1[i]-minimum(bul1); else bul2[i]=0;; for (i=1;i<=5;i++)if (bul1[i]!=0) bul1[i]=minimum(bul1); else bul1[i]=0;; for (i=1;i<=5;i++)if (bul2[i]!=0) bul3[i]=bul2[i]-minimum(bul2); else bul3[i]=0;; for (i=1;i<=5;i++)if (bul2[i]!=0) bul2[i]=minimum(bul2); else bul2[i]=0;; for (i=1;i<=5;i++)if (bul3[i]!=0) bul4[i]=bul3[i]-minimum(bul3); else bul4[i]=0;; for (i=1;i<=5;i++)if (bul3[i]!=0) bul3[i]=minimum(bul3); else bul3[i]=0;; for (i=1;i<=5;i++)if (bul4[i]!=0) bul5[i]=bul4[i]-minimum(bul4); else bul5[i]=0;; for (i=1;i<=5;i++)if (bul4[i]!=0) bul4[i]=minimum(bul4); else bul4[i]=0;; for (i=1;i<=5;i++)cout<<bul1[i]<<" "; for (i=1;i<=5;i++)cout<<bul2[i]<<" "; for (i=1;i<=5;i++)cout<<bul3[i]<<" "; for (i=1;i<=5;i++)cout<<bul4[i]<<" "; for (i=1;i<=5;i++)cout<<bul5[i]<<" "; devir[1]=minimum(bul1); devir[2]=minimum(bul2); devir[3]=minimum(bul3); devir[4]=minimum(bul4); devir[5]=minimum(bul5); for(i=1;i<=5;i++)cout<<devir[i]<<" "; /* delay(15000); */
24 sinyal(bul1); cout<<porta[1]<<" "<<porta[2]<<" "<<porta[3]<<" "<<porta[4]<<endl; cout<<portb[1]<<" "<<portb[2]<<" "<<portb[3]<<" "<<portb[4]<<endl; cout<<portc[1]<<" "<<portc[2]<<" "<<portc[3]<<" "<<portc[4]<<endl; cout<<a[1]<<" "<<a[2]<<" "<<a[3]<<" "<<a[4]<<" "<<a[5]<<endl; for(i=1;i<=(4*devir[1]);i++) m=i%4; if(m==0) m=4; outportb(0x2c0,porta[m]); outportb(0x2c1,portb[m]); outportb(0x2c2,portc[m]); delay(6); ; /* delay(15000); */ sinyal(bul2); cout<<porta[1]<<" "<<porta[2]<<" "<<porta[3]<<" "<<porta[4]<<endl; cout<<portb[1]<<" "<<portb[2]<<" "<<portb[3]<<" "<<portb[4]<<endl; cout<<portc[1]<<" "<<portc[2]<<" "<<portc[3]<<" "<<portc[4]<<endl; cout<<a[1]<<" "<<a[2]<<" "<<a[3]<<" "<<a[4]<<" "<<a[5]<<endl; for(i=1;i<=(4*devir[2]);i++) m=i%4; if (m==0) m=4; outportb(0x2c0,porta[m]); outportb(0x2c1,portb[m]); outportb(0x2c2,portc[m]); delay(6); ; /* delay(15000); */ sinyal(bul3); cout<<porta[1]<<" "<<porta[2]<<" "<<porta[3]<<" "<<porta[4]<<endl; cout<<portb[1]<<" "<<portb[2]<<" "<<portb[3]<<" "<<portb[4]<<endl; cout<<portc[1]<<" "<<portc[2]<<" "<<portc[3]<<" "<<portc[4]<<endl; cout<<a[1]<<" "<<a[2]<<" "<<a[3]<<" "<<a[4]<<" "<<a[5]<<endl; for(i=1;i<=(4*devir[3]);i++) m=i%4; if (m==0) m=4; outportb(0x2c0,porta[m]); outportb(0x2c1,portb[m]); outportb(0x2c2,portc[m]); delay(6); ; /* delay(15000); */ sinyal(bul4); cout<<porta[1]<<" "<<porta[2]<<" "<<porta[3]<<" "<<porta[4]<<endl; cout<<portb[1]<<" "<<portb[2]<<" "<<portb[3]<<" "<<portb[4]<<endl; cout<<portc[1]<<" "<<portc[2]<<" "<<portc[3]<<" "<<portc[4]<<endl; cout<<a[1]<<" "<<a[2]<<" "<<a[3]<<" "<<a[4]<<" "<<a[5]<<endl; for(i=1;i<=(4*devir[4]);i++) m=i%4;
25 if (m==0) m=4; outportb(0x2c0,porta[m]); outportb(0x2c1,portb[m]); outportb(0x2c2,portc[m]); delay(6); ; /* delay(15000);*/ sinyal(bul5); cout<<porta[1]<<" "<<porta[2]<<" "<<porta[3]<<" "<<porta[4]<<endl; cout<<portb[1]<<" "<<portb[2]<<" "<<portb[3]<<" "<<portb[4]<<endl; cout<<portc[1]<<" "<<portc[2]<<" "<<portc[3]<<" "<<portc[4]<<endl; cout<<a[1]<<" "<<a[2]<<" "<<a[3]<<" "<<a[4]<<" "<<a[5]<<endl; for(i=1;i<=(4*devir[5]);i++) m=i%4; if (m==0) m=4; outportb(0x2c0,porta[m]); outportb(0x2c1,portb[m]); outportb(0x2c2,portc[m]); delay(6); ; /* delay(15000);*/ return(0); TEST2.CPP /* Topel robotu eklem açıları verilerek hareket ettiren program */ #include <time.h> #include <stdio.h> #include <dos.h> #include <conio.h> #include <iostream.h> #include <math.h> int sign[6],bul[6],devir[6],bul1[6],bul2[6],bul3[6],bul4[6],bul5[6],i,j,k,l,m,t,min; int porta[6],portb[6],portc[6]; void sinyal(int c[6]); int minimum(int b[6]); void basla(); /*60*/ void devamet(); /* aras*/ void donuyor(); /* aras*/ void koordinat(); /* aras*/ void sinirla(); /* aras*/ void disarda(); /* aras*/ void dongu1(); /* aras*/ void dongu2(); /* aras*/ void dongu3(); /* aras*/ void dongu4(); /* aras*/ void dongu5(); /* aras*/ void hesapla(); /* aras*/ void hesapla2(); /* aras*/ void hesapla3(); /*910*/ void hesapla4(); /* arasi*/
26 void duzeltme();/* arasi*/ void duzeltme1();/* arasi*/ void duzeltme2();/* arasi*/ void duzeltme3();/* arasi*/ void duzeltme4();/* arasi*/ void duzeltme5();/* arasi*/ void duzeltme6();/* arasi*/ void duzeltme7();/* arasi*/ void duzeltme8();/* arasi*/ void duzeltme9();/* arasi*/ void sayac(); int yuvarla(float r); char harf; float Q22,Q32,Q42,Q1,Q11,Q21,Q31,Q41,Q51,Q3,Q2,Q4,Q5,X1,X2,Y,Y1,Z,Z1,G1,G2,G3; float pi=(m_pi/180); float R1,R2,R3,R4,R5; float a[6],a1[6]; int d32a,d42a,d43a,d32y,d42y,d43y; int count,s[6]; int cevap; int main() cout<<"q1 Q11 Q22 Q21 Q32 Q31 Q42 Q41 Q51 giriniz"<<endl; cin>>q1>>q11>>q22>>q21>>q32>>q31>>q42>>q41>>q51; R1=Q11; R2=Q21; R3=Q31; R4=Q41; R5=Q51; cout<<"q1="<<q1<<"q11="<<q11<<"q22="<<q22<<"q21="<<q21<<"q32="<<q32<<" Q31="<<Q31<<"Q42="<<Q42<<"Q41="<<Q41<<"Q51="<<Q51<<endl; count=1; basla(); while(count>=1) if ((count%2)==1) outportb(0x2c2,0x50); delay(7000); elseoutportb(0x2c2,0xa0); delay(7000); count++; cout<<"yeni konum girmek i in 1e "<<endl; cout<<"baÿlang noktasna d np programdan kmak i in 2ye basnz:"; cin>>cevap; Q11=Q1; Q21=Q22; Q31=Q32; Q41=Q42; Q51=Q51; switch(cevap) case 1: cout<<"yeni koordinatlar giriniz:"; cin>>q1>>q22>>q32>>q42>>q51; basla(); break; case 2: cout<<"baÿlang noktasna d nyorum."<<endl; Q1=R1; Q22=R2; Q32=R3; Q42=R4; Q51=R5; basla(); break;; if (cevap==2) break;;
27 return 0; void basla() a[1]=q1-q11; while(a[1]>360.0) a[1]=a[1]-360.0; while(a[1]<-360.0)a[1]=a[1]+360.0; if (a[1]<=360.0&&a[1]>=0.0) if (a[1]>180.0) a[1]=a[1]-360.0; if (a[1]<=180.0) a[1]=a[1]; ; if(a[1]>=-360.0&&a[1]<0.0) if (a[1]>=-180.0) a[1]=a[1]; else a[1]=360.0+a[1]; hesapla4(); outportb(0x2c3,0x80); outportb(0x2c0,0x00); outportb(0x2c0,0x00); for (i=1;i<=5;i++) bul1[i]=abs(bul[i]); if (bul[i]!=0) sign[i]=bul[i]/bul1[i]; else sign[i]=1; for (i=1;i<=5;i++)if (bul1[i]!=0) bul2[i]=bul1[i]-minimum(bul1); else bul2[i]=0;; for (i=1;i<=5;i++)if (bul1[i]!=0) bul1[i]=minimum(bul1); else bul1[i]=0;; for (i=1;i<=5;i++)if (bul2[i]!=0) bul3[i]=bul2[i]-minimum(bul2); else bul3[i]=0;; for (i=1;i<=5;i++)if (bul2[i]!=0) bul2[i]=minimum(bul2); else bul2[i]=0;; for (i=1;i<=5;i++)if (bul3[i]!=0) bul4[i]=bul3[i]-minimum(bul3); else bul4[i]=0;; for (i=1;i<=5;i++)if (bul3[i]!=0) bul3[i]=minimum(bul3); else bul3[i]=0;; for (i=1;i<=5;i++)if (bul4[i]!=0) bul5[i]=bul4[i]-minimum(bul4); else bul5[i]=0;; for (i=1;i<=5;i++)if (bul4[i]!=0) bul4[i]=minimum(bul4);
28 else bul4[i]=0;; for (i=1;i<=5;i++)cout<<bul1[i]<<" "; for (i=1;i<=5;i++)cout<<bul2[i]<<" "; for (i=1;i<=5;i++)cout<<bul3[i]<<" "; for (i=1;i<=5;i++)cout<<bul4[i]<<" "; for (i=1;i<=5;i++)cout<<bul5[i]<<" "; devir[1]=minimum(bul1); devir[2]=minimum(bul2); devir[3]=minimum(bul3); devir[4]=minimum(bul4); devir[5]=minimum(bul5); for(i=1;i<=5;i++)cout<<devir[i]<<" "; /* delay(15000); */ sinyal(bul1); cout<<porta[1]<<" "<<porta[2]<<" "<<porta[3]<<" "<<porta[4]<<endl; cout<<portb[1]<<" "<<portb[2]<<" "<<portb[3]<<" "<<portb[4]<<endl; cout<<portc[1]<<" "<<portc[2]<<" "<<portc[3]<<" "<<portc[4]<<endl; for(i=1;i<=(4*devir[1]);i++) m=i%4; if(m==0) m=4; outportb(0x2c0,porta[m]); outportb(0x2c1,portb[m]); outportb(0x2c2,portc[m]); delay(6); ; /* delay(15000); */ sinyal(bul2); cout<<porta[1]<<" "<<porta[2]<<" "<<porta[3]<<" "<<porta[4]<<endl; cout<<portb[1]<<" "<<portb[2]<<" "<<portb[3]<<" "<<portb[4]<<endl; cout<<portc[1]<<" "<<portc[2]<<" "<<portc[3]<<" "<<portc[4]<<endl; for(i=1;i<=(4*devir[2]);i++) m=i%4; if (m==0) m=4; outportb(0x2c0,porta[m]); outportb(0x2c1,portb[m]); outportb(0x2c2,portc[m]); delay(6); ;
29 /* delay(15000); */ sinyal(bul3); cout<<porta[1]<<" "<<porta[2]<<" "<<porta[3]<<" "<<porta[4]<<endl; cout<<portb[1]<<" "<<portb[2]<<" "<<portb[3]<<" "<<portb[4]<<endl; cout<<portc[1]<<" "<<portc[2]<<" "<<portc[3]<<" "<<portc[4]<<endl; for(i=1;i<=(4*devir[3]);i++) m=i%4; if (m==0) m=4; outportb(0x2c0,porta[m]); outportb(0x2c1,portb[m]); outportb(0x2c2,portc[m]); delay(6); ; /* delay(15000); */ sinyal(bul4); cout<<porta[1]<<" "<<porta[2]<<" "<<porta[3]<<" "<<porta[4]<<endl; cout<<portb[1]<<" "<<portb[2]<<" "<<portb[3]<<" "<<portb[4]<<endl; cout<<portc[1]<<" "<<portc[2]<<" "<<portc[3]<<" "<<portc[4]<<endl; for(i=1;i<=(4*devir[4]);i++) m=i%4; if (m==0) m=4; outportb(0x2c0,porta[m]); outportb(0x2c1,portb[m]); outportb(0x2c2,portc[m]); delay(6); ; /* delay(15000);*/ sinyal(bul5); cout<<porta[1]<<" "<<porta[2]<<" "<<porta[3]<<" "<<porta[4]<<endl; cout<<portb[1]<<" "<<portb[2]<<" "<<portb[3]<<" "<<portb[4]<<endl; cout<<portc[1]<<" "<<portc[2]<<" "<<portc[3]<<" "<<portc[4]<<endl; for(i=1;i<=(4*devir[5]);i++) m=i%4; if (m==0) m=4; outportb(0x2c0,porta[m]); outportb(0x2c1,portb[m]); outportb(0x2c2,portc[m]); delay(6); ; int yuvarla(float r) int b; b=r; if ((r-b)>=0.5) b++; return b; void hesapla4() int vi,i,j;
30 s[1]=abs( yuvarla((a[1]*4960.0)/360.0) ) ; bul[1]=s[1]; cout<<"bul[1]="<<bul[1]<<endl; a[2]=q22-q21; cout<<"a[2]="<<a[2]<<endl; s[2]=abs( yuvarla((a[2]*1800.0)/90.0) ) ; bul[2]=s[2]; cout<<"bul[2]="<<bul[2]<<endl; a[3]=q32-q31; cout<<"a[3]="<<a[3]<<endl; s[3]=abs( yuvarla((a[3]*4150.0)/90.0) ) ; bul[3]=s[3]; cout<<"bul[3]="<<bul[3]<<endl; a[4]=q42-q41; cout<<"a[4]="<<a[4]<<endl; s[4]=abs( yuvarla((a[4]*1350.0)/45.0) ) ; bul[4]=s[4]; cout<<"bul[4]="<<bul[4]<<endl; a[5]=0-q51; cout<<"a[5]="<<a[5]<<endl; s[5]=abs( yuvarla((a[5]*148.0)/180.0) ) ; bul[5]=s[5]; cout<<"bul[5]="<<bul[5]<<endl; vi=0; cout<<"bul1="<<bul[1]<<" Bul2="<<bul[2]<<" Bul3="<<bul[3]<<" Bul4="<<bul[4]<<" Bul5="<<bul[5]<<endl; for (i=1;i<=4;i++) for(j=(i+1);j<=5;j++) if (bul[i]==bul[j]) vi++; if (vi==10) cout<<"zaten baÿlangictayiz."<<endl; cout<<"baslangcta degilsek bu noktaya ulaÿmak i in yeni aci degerlerini giriniz."<<endl; duzeltme(); void duzeltme() cout<<"sinyal saylar hesapland."<<endl; cout<<"sinyal saylar zerinde gerekli dzeltmeler yaplyor."<<endl; if (a[5]<0) bul[5]=-1*bul[5]; cout<<"bul[5]="<<bul[5]<<endl; cout<<"a[2]="<<a[2]<<"a[3]="<<a[3]<<"a[4]="<<a[4]<<endl; if(a[2]>=0&&a[3]>=0&&a[4]>=0) duzeltme1(); else duzeltme2(); void duzeltme1() cout<<"dzeltme 1deyim"<<endl;
31 d32a=yuvarla(a[2]*2550.0/90.0); cout<<"d32a="<<d32a<<endl; bul[3]=bul[3]+bul[2]+d32a; cout<<"bul[3]="<<bul[3]<<endl; d42a=yuvarla(a[2]*230.0/90.0); cout<<"d42a="<<d42a<<endl; bul[4]=bul[4]+bul[3]-d42a; cout<<"bul[4]="<<bul[4]<<endl; d43a=yuvarla(a[3]*800.0/120.0); cout<<"d43a="<<d43a<<endl; bul[4]=bul[4]-d43a; cout<<"bul[4]="<<bul[4]<<endl; a[2]=1; a[3]=1; a[4]=1; // sayac(); void duzeltme2() cout<<"dzeltme 2deyim"<<endl; if (a[2]<=0&&a[3]<=0&&a[4]<=0) duzeltme3(); else duzeltme4(); void duzeltme3() cout<<"dzeltme 3deyim"<<endl; d32y=abs(yuvarla(a[2]*2550.0/90.0)); bul[3]=bul[3]+bul[2]+d32y; d42y=abs(yuvarla(a[2]*230.0/90.0)); bul[4]=bul[4]+bul[3]-d42y; cout<<"bul[4]="<<bul[4]<<endl; d43y=abs(yuvarla(a[3]*800.0/120.0)); bul[4]=bul[4]-d43y; cout<<"d32y="<<d32y<<"bul[3]="<<bul[3]<<"d42y="<<d42y<<"bul[4]="<<bul[4]<<"d43y ="<<d43y<<endl; a[2]=-1; a[3]=-1; a[4]=-1; // sayac(); // void duzeltme4() cout<<"dzeltme 4teyim"<<endl; if (a[2]<=0&&a[3]<=0&&a[4]>=0) duzeltme5(); else duzeltme6(); void duzeltme5()
32 cout<<"dzeltme 5deyim"<<endl; d32y=abs(yuvarla(a[2]*2550.0/90.0)); bul[3]=bul[3]+bul[2]+d32y; d42y=abs(yuvarla(a[2]*230.0/90.0)); bul[4]=abs(-bul[4]+bul[3]-d42y); cout<<"bul[4]="<<bul[4]<<endl; d43y=abs(yuvarla(a[3]*800.0/120.0)); bul[4]=abs(bul[4]-d43y); cout<<"d32y="<<d32y<<"bul[3]="<<bul[3]<<"d42y="<<d42y<<"bul[4]="<<bul[4]<<"d43y ="<<d43y<<endl; a[2]=-1; a[3]=-1; a[4]=1; // sayac(); void duzeltme6() cout<<"dzeltme 6daym"<<endl; if (a[2]<=0&&a[3]>=0&&a[4]>=0) duzeltme7(); else duzeltme8(); void duzeltme7() cout<<"dzeltme 7deyim"<<endl; d32y=abs(yuvarla(a[2]*2550.0/90.0)); bul[3]=abs(-bul[3]+bul[2]+d32y); d42y=abs(yuvarla(a[2]*230.0/90.0)); bul[4]=abs(-bul[4]+bul[3]+d42y); cout<<"bul[4]="<<bul[4]<<endl; d43a=abs(yuvarla(a[3]*800.0/120.0)); bul[4]=abs(bul[4]-d43a); cout<<"d32y="<<d32y<<"bul[3]="<<bul[3]<<"d42y="<<d42y<<"bul[4]="<<bul[4]<<"d43a ="<<d43a<<endl; a[2]=-1; a[3]=1; a[4]=1; // sayac(); void duzeltme8() cout<<"dzeltme 8deyim"<<endl; if (a[2]<=0&&a[3]>=0&&a[4]<=0) duzeltme9(); // else sayac(); void duzeltme9() cout<<"dzeltme 9daym"<<endl; d32y=abs(yuvarla(a[2]*2550.0/90.0)); bul[3]=abs(-bul[3]+bul[2]+d32y); d42y=abs(yuvarla(a[2]*230.0/90.0)); bul[4]=abs(-bul[4]+bul[3]+d42y);
33 cout<<"bul[4]="<<bul[4]<<endl; d43a=abs(yuvarla(a[3]*800.0/120.0)); bul[4]=abs(bul[4]+d43a); cout<<"d32y="<<d32y<<"bul[3]="<<bul[3]<<"d42y="<<d42y<<"bul[4]="<<bul[4]<<"d43a ="<<d43a<<endl; a[2]=-1; a[3]=1; a[4]=-1; cout<<"dzeltmeler bitti."<<endl; cout<<"motorlara gidecek gerekli sinyaller oluÿturuluyor."<<endl; cout<<"sinyaller g nderiliyor ve saya kontrol ediliyor."<<endl; delay(5000); // sayac(); int minimum(int b[6]) int k,i; k=0; for(i=1;i<=5;i++) k=(k+b[i]); for(i=1;i<=5;i++) if((b[i]!=0)&&(k>b[i])) k=b[i]; return k; void sinyal(int c[6]) if (((c[1]*a[1])==0)&&((c[2]*a[2])==0)) for (i=1;i<=4;i++) porta[i]=0;; if (((c[1]*a[1])==0)&&((c[2]*a[2])<0)) porta[1]=0x60;porta[2]=0xa0;porta[3]=0x90;porta[4]=0x50;; if (((c[1]*a[1])>0)&&((c[2]*a[2])==0)) porta[1]=0x06;porta[2]=0x0a;porta[3]=0x09;porta[4]=0x05;; if (((c[1]*a[1])>0)&&((c[2]*a[2])<0)) porta[1]=0x66;porta[2]=0xaa;porta[3]=0x99;porta[4]=0x55;; if (((c[1]*a[1])==0)&&((c[2]*a[2])>0)) porta[1]=0x50;porta[2]=0x90;porta[3]=0xa0;porta[4]=0x60;; if (((c[1]*a[1])<0)&&((c[2]*a[2])==0)) porta[1]=0x05;porta[2]=0x09;porta[3]=0x0a;porta[4]=0x06;; if (((c[1]*a[1])<0)&&((c[2]*a[2])>0)) porta[1]=0x55;porta[2]=0x99;porta[3]=0xaa;porta[4]=0x66;; if (((c[1]*a[1])<0)&&((c[2]*a[2])<0)) porta[1]=0x65;porta[2]=0xa9;porta[3]=0x9a;porta[4]=0x56;; if (((c[1]*a[1])>0)&&((c[2]*a[2])>0)) porta[1]=0x56;porta[2]=0x9a;porta[3]=0xa9;porta[4]=0x65;; if (((c[3]*a[3])==0)&&((c[4]*a[4])==0)) for (i=1;i<=4;i++) portb[i]=0;; if (((c[3]*a[3])==0)&&((c[4]*a[4])<0)) portb[1]=0x60;portb[2]=0xa0;portb[3]=0x90;portb[4]=0x50;; if (((c[3]*a[3])<0)&&((c[4]*a[4])==0)) portb[1]=0x06;portb[2]=0x0a;portb[3]=0x09;portb[4]=0x05;; if (((c[3]*a[3])<0)&&((c[4]*a[4])<0))
34 portb[1]=0x66;portb[2]=0xaa;portb[3]=0x99;portb[4]=0x55;; if (((c[3]*a[3])==0)&&((c[4]*a[4])>0)) portb[1]=0x50;portb[2]=0x90;portb[3]=0xa0;portb[4]=0x60;; if (((c[3]*a[3])>0)&&((c[4]*a[4])==0)) portb[1]=0x05;portb[2]=0x09;portb[3]=0x0a;portb[4]=0x06;; if (((c[3]*a[3])>0)&&((c[4]*a[4])>0)) portb[1]=0x55;portb[2]=0x99;portb[3]=0xaa;portb[4]=0x66;; if (((c[3]*a[3])>0)&&((c[4]*a[4])<0)) portb[1]=0x65;portb[2]=0xa9;portb[3]=0x9a;portb[4]=0x56;; if (((c[3]*a[3])<0)&&((c[4]*a[4])>0)) portb[1]=0x56;portb[2]=0x9a;portb[3]=0xa9;portb[4]=0x65;; if((c[5]*a[5])>0) portc[1]=0x05;portc[2]=0x09;portc[3]=0x0a;portc[4]=0x06;; if((c[5]*a[5])<0) portc[1]=0x06;portc[2]=0x0a;portc[3]=0x09;portc[4]=0x05;; if((c[5]*a[5])==0) for(i=1;i<=4;i++) portc[i]=0;;
FIVE JOINT ROBOT ARM By Mustafa Serkan Bozkurt Mehmet Fidan. A Graduation Project Report Electrical-Electronics Engineering Department
FIVE JOINT ROBOT ARM By Mustafa Serkan Bozkurt Mehmet Fidan A Graduation Project Report Electrical-Electronics Engineering Department Haziran 2004 2 FIVE JOINT ROBOT ARM by 151219992014 Mustafa Serkan
DetaylıKarakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır
stringh floath Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır 32 Sorgulama İfadesi - if Deyimi (5 Hafta) Bu deyim sorgulamanın tek basamakta yapılacağı yerlerde
DetaylıEastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ
Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ DÖNEM SONU SINAVI GÜZ 2009-2010 13 Ocak 2010, Sınav Süresi: 120 dakika. İsim
DetaylıStruct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -
BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri 1-14. hafta - Araş. Gör. Nesibe YALÇIN
DetaylıİNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ
İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 1 hafta Ödev No : 5 1. Aşağıdaki programların çıktısı
Detaylımikroc Dili ile Mikrodenetleyici Programlama Ders Notları / Dr. Serkan DİŞLİTAŞ
12. Motor Kontrolü Motorlar, elektrik enerjisini hareket enerjisine çeviren elektromekanik sistemlerdir. Motorlar temel olarak 2 kısımdan oluşur: Stator: Hareketsiz dış gövde kısmı Rotor: Stator içerisinde
DetaylıAHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ
AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ TBIL-303-01 Veri Yapıları ve Algoritmalar İki Yönlü Bağlantılı Liste Uygulaması HAZIRLAYAN
DetaylıHızlı Kurulum Kılavuzu MODELLER P4320, P4520 UYARI!
Fisheye IP Kamera Hızlı Kurulum Kılavuzu MODELLER P4320, P4520 UYARI! Kurulum işlemine geçmeden önce kurulum kılavuzunu dikkatlice okuyunuz. Bu kılavuzunun içeriği, fonksiyonlardaki değişiklikler önceden
DetaylıROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU
ROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU İSMAİL KAHRAMAN-ŞEYMA ÖZTÜRK 200713151027 200513152008 Robot Kol Mekanizması: Şekildeki robot-insan benzetmesinden yola çıkarak, bel kısmı tekerlekli ve sağa-sola-ileri-geri
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;
Detaylı3D Yazıcı Kablolama Kılavuzu
3D Yazıcı Kablolama Kılavuzu Robit Teknoloji İçindekiler 1.1. Gerekli Parçalar... 2 1.2 Hazırlık... 6 1.2.1 Step Motor Sürücü Çiplerine Soğutucu Ekleme... 6 1.2.2 Jumperların Takılması... 8 1.3 Ana Kart
DetaylıAlgoritma ve Programlama: Karar Yapıları ve Döngüler
Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan
DetaylıC++ Dersi: Nesne Tabanlı Programlama
C++ Dersi: Nesne Tabanlı Programlama Bölüm 7: Yapılar Diziler İçerik Yapıların Tanımı Yapılara İlk Değer Atama Yapı Elemanlarına Erişim İç içe Yapılar Yapılar ve Fonksiyonlar 2 Yapılar (structures) içinde
Detaylı10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI
10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI İkincil bellekte tanımlanmış bölgelere dosya denir. Her dosyanın bir ismi vardır. Ancak dosyaların isimlendirme kuralları sistemden sisteme göre değişebilmektedir. Dosya
Detaylı7. Port Programlama. mikroc Dili ile Mikrodenetleyici Programlama Ders Notları -42- Şekil 2.1. Atmega16 mikrodenetleyici pin şeması
7. Port Programlama Şekil 2.1. Atmega16 mikrodenetleyici pin şeması A, B, C ve D portları için Register yapıları benzer şekildedir. -42- 7.1. Port Yönlendirme Mikrodenetleyicinin A, B, C, D ve varsa diğer
Detaylı/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.
Selçuk Üniversitesi Mühendislik-Mimarlık Fakültesi Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :26.11.2012, 60 dak. Dikkat!!! Soru kitapçığında
DetaylıSınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0
Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 14.04.2015 Süre : 60 dak. 1. Tür dönüşümleri... olmak üzere iki
DetaylıSınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0
Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden
DetaylıArasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika
Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 1105- Algoritma ve Programlama I Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika Derse Kayıtlı Olduğunuz Grubun Öğretim Üyesini (X) ile
DetaylıDöngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları
Döngüler Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut for Komutu do-while Komutu İçiçe Döngüler break ve continue Komutları while Komutu Döngü komutları komutların bir çok kez yeniden yürülmesini
Detaylı5.41. UYDU ANTENİ YÖNLENDİRME OTOMASYON PROJESİ
5.41. UYDU ANTENİ YÖNLİRME OTOMASYON PROJESİ Prof. Dr. Asaf VAROL avarol@firat.edu.tr GİRİŞ 1960 lı yıllardan sonra ABD ve Rusya arasında yaşanan aya adım atma yarışı uzay teknolojisinin süratle gelişmesine
DetaylıİÇİNDEKİLER ASD-B2 Serisi Sürücü Konnektör ve Terminal Bağlantıları
İÇİNDEKİLER 1- ASD-A2 Serisi Sürücüler ve Motorlar 1.1-Temel Bağlantılar 1.1.1- ASD-A2 Serisi Motor Sürücü Bağlantısı 1.1.2- ASD-A2 Serisi Encoder Sürücü Bağlantısı 1.2-Ayrıntılı Bağlantılar 1.2-1. Çevre
DetaylıBİLG Dr. Mustafa T. Babagil 1
BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)
Detaylıİstanbul Teknik Üniversitesi IEEE Öğrenci Kolu
Step Motor Step motor fırçasız elektrik motorlarıdır. Step motorlar ile tam bir tur dönmeyi yüksek sayıda adımlara bölebilmek mümkündür (200 adım). Step motorları sürmek için, sürekli gerilim uygulamak
DetaylıDELTA PLC EĞİTİM SETİ KİTAPÇIĞI
DELTA PLC EĞİTİM SETİ KİTAPÇIĞI Beti Delta PLC Eğitim Seti üzerinde kullanılan donanımlar Delta marka DVP20SX211T Model PLC DVP16SP11T Genişleme yuvası DOP-B07S411 7 Operatör Paneli PLC CPU sunu üzerindeki
DetaylıObject-Oriented Programming Lab Shape, TwoDShape, ThreeDShape, Disk, Square, Sphere, Cube class hiyerarşisi.
25.08.2017 Object-Oriented Programming Lab 7 1. Shape, TwoDShape, ThreeDShape, Disk, Square, Sphere, Cube class hiyerarşisi. Disk, kare, küre ve küp şekilleriyle çalışmak için abstract class larla birlikte
DetaylıDeney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri
Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri 7.0. Amaç Ve Kapsam Deneyde C dilinde kullanılan fonksiyon tanımlama ve parametre aktarım yöntemleri hakkında bilgi verilecektir. 7.1. Deneyden
Detaylı1. 100 elemanlı bir dizide bir sinyalin 1 er saniye aralıklarla ölçülen gerilim değerleri tutulmaktadır. Bu sinyalin tepeden tepeye genliğini,
1. 100 elemanlı bir dizide bir sinyalin 1 er saniye aralıklarla ölçülen gerilim değerleri tutulmaktadır. Bu sinyalin tepeden tepeye genliğini, pozitif tepe genliğini, negatif tepe genliğini ve ortalamasını
DetaylıTemel Bilgisayar Bilimleri Ders Notu #4-1. kısım
Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-1. kısım Referans: Bugün: 1. Ders Notları. Ders #3 Tekrar Do while ve for döngüleri 1. Tekrar Geçen ders while döngüsü ve seçme kontrol teknikleri
DetaylıAdım Adım C. Dr. Hidayet Takcı
Adım Adım C Dr. Hidayet Takcı İlk C Programı #include #include main() printf("merhaba Dünya"); getch(); Program hakkında İlk program C de ekrana nasıl yazı yazdıracağınızı göstermektedir.
DetaylıParalel ve Seri İletişim. Asenkron/Senkron İletişim. Şekil 2: İletişim Modları
Paralel ve Seri İletişim Şekil1a: Paralel İletişim Şekil1b. Seri iletişim Şekil 2: İletişim Modları Asenkron/Senkron İletişim PROTEUS/ISIS SANAL SERİ PORT ile C# USART HABERLEŞMESİ Seri iletişimde, saniyedeki
DetaylıLCD (Liquid Crystal Display)
LCD (Liquid Crystal Display) LCD ekranlar bize birçok harfi, sayıları, sembolleri hatta Güney Asya ülkelerin kullandıkları Kana alfabesindeki karakterleri de görüntüleme imkanını verirler. LCD lerde hane
DetaylıPROGRAMLAMAYA GİRİŞ DERS 2
PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı
DetaylıLCD (Liquid Crystal Display )
LCD (Liquid Crystal Display ) Hafif olmaları,az yer kaplamaları gibi avantajları yüzünden günlük hayatta birçok cihazda tercih edilen Standart LCD paneller +5 V ile çalışır ve genellikle 14 konnektor lü
DetaylıDiziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU
Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip
Detaylı5.27. ŞİFRELİ OTOMATİK KAPI KONTROL PROJESİ
5.27. ŞİFRELİ OTOMATİK KAPI KONTROL PROJESİ Prof. Dr. Asaf Varol avarol@firat.edu.tr Yoğun bir insan trafiğine maruz kalan havaalanı, uluslararası ve şehirlerarası otogar veya garlarda, giriş çıkışı sağlayan
Detaylımod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:
Dosyalama Çoğu programda, bazı verilerin disk üzerinde saklanmasına gerek duyulur. C programlama dilinde, disk dosyasına erişme (okuma ve yazma için) iki farklı yöntemle yapılır. Bunlar üst düzey ve alt
DetaylıArduino nedir? Arduino donanım ve yazılımın kolayca kullanılmasına dayalı bir açık kaynak elektronik platformdur.
Arduino nedir? Arduino donanım ve yazılımın kolayca kullanılmasına dayalı bir açık kaynak elektronik platformdur. Açık kaynak nedir? Açık kaynak, bir bilgisayar yazılımının makina diline dönüştürülüp kullanımından
DetaylıDöngü blokunda tek bir deyim varsa {} yazılmayabilir.
Do-while döngüsü do { döngü bloku while (Expression); Örnek: #include int main(){ int num,i=0; do{ printf("giriş için: 1\n"); printf("çıkış için 2"); scanf("%d",&num); ++i; switch(num){ case
DetaylıKOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ
KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ Nesneye Yönelik Programlama C++ ile Beaglebone Black de Bluetooth Haberleşmesi Danışman: Yrd. Doç. Dr. Mehmet YAKUT Sinan
DetaylıProgramlama Dilleri Laboratuvarı
2014 2015 Programlama Dilleri Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. İsmail KURNAZ Laboratuvar Sorumluları: İÇİNDEKİLER Deney 1: Bilgisayar Kavramları, Algoritma Geliştirme ve Çözümü, Programlamaya
DetaylıC++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur.
C++ Statements En küçük çalışabilir birime statement (ifade) denir. Statements semicolon (;) ile sonlandırılır. Yalnız başına ; null statement ifade eder Örnek: while (*str++ = *inbuf++) ; { ve } arasında
DetaylıKOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)
KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr) 1. Kendisine gönderilen iki karakter dizisini birleştirip geriye tek bir dizi döndüren ve
DetaylıİÇİNDEKİLER 1. KLAVYE... 11 2. KLAVYE RB0... 19 3. KLAVYE RBHIGH... 27 4. 4 DİSPLAY... 31
İÇİNDEKİLER 1. KLAVYE... 11 Satır ve Sütunlar...11 Devre Şeması...14 Program...15 PIC 16F84 ile 4x4 klavye tasarımını gösterir. PORTA ya bağlı 4 adet LED ile tuş bilgisi gözlenir. Kendiniz Uygulayınız...18
Detaylı1 PROGRAMLAMAYA GİRİŞ
İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)
DetaylıSİSTEM BİRİMİ VE EKRAN KOMUTLARI
BÖLÜM 6 SİSTEM BİRİMİ VE EKRAN KOMUTLARI Ekran komutları ekrandaki görüntü tasarımı için kullanılan komutlardır. Bu komutların program içinde kullanılabilmesi için, program başlığı satırından sonra USES
DetaylıART S602W Standalone Kart Okuyucu
ART S602W Standalone Kart Okuyucu ART S602W Standalone kart okuyucuya ait genel bilgiler, montaj, kablolama, programlama bilgileri ve teknik özellikleri hakkında detaylı açıklama. www.artelektronik.com
DetaylıDers 6: Karşılaştırma Deyimleri
Ders 6: Karşılaştırma Deyimleri Giriş Program içerisinde bazen iki veya daha fazla değerin karşılaştırılması gerekebilir Bunun için, bütün programlama dillerinde karşılaştırma deyimleri mevcuttur C dili,
DetaylıC ile Uygulamalar 2 - Cevaplar
C ile Uygulamalar 2 - Cevaplar Cevap-1: //Soru 1 void degistir(int *,int *); //Fonksiyonun prototipi tanımlanmaktadır. int a=1,b=2; printf("a=%d ve b=%d",a,b); degistir(&a,&b); //a ve b'nin adresleri üzerinden
Detaylı1. PROGRAMLAMA. PDF created with pdffactory Pro trial version www.pdffactory.com
. PROGRAMLAMA UTR-VC Windows altında çalışan konfigürasyon yazılımı aracılığıyla programlanır. Programlama temel olarak kalibrasyon, test ve giriş/çıkış aralıklarının seçilmesi amacıyla kullanılır. Ancak
DetaylıDENEY 9-A : PIC 16F877 ve LM-35 ile SICAKLIK ÖLÇÜM UYGULAMASI
AMAÇ: DENEY 9-A : PIC 16F877 ve LM-35 ile SICAKLIK ÖLÇÜM UYGULAMASI 1- Mikrodenetleyici kullanarak sıcaklık ölçümünü öğrenmek EasyPIC7 setinde LM-35 kullanılarak analog giriş yaptırılması Sıcaklığın LCD
DetaylıGiris {\} /\ Suhap SAHIN Onur GÖK
Giris 0 \ /\ Suhap SAHIN Onur GÖK Fonksiyon C: Ana Fonksiyon(main) main() main() C: Ana Fonksiyon(main) main() main() C: Ana Fonksiyon(main) Giris? main() Çıkıs main() C: Ana Fonksiyon(main) void main()
DetaylıWIRELESS TECHNOLOGIES Uygulama Notu. ARX-34 ve ATX-34 KULLANARAKDATA GÖNDERMEK VE ALMAK ÇN GEREKL YAZILIM ve DONANIM
ARX-34 ve ATX-34 KULLANARAKDATA GÖNDERMEK VE ALMAK ÇN GEREKL YAZILIM ve DONANIM PSF-UN-0805 1 EYLÜL 2005 VERC DEVRES Yazılım aaıda verilmitir.yazılım PIC16F876 veya PIC16F876A için yazılmıtır. Baud rate
Detaylıfor döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }
for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) ifadeler; Başlangıç değeri; koşul içinde tanımladığımız değişkene ilk değerin atanmasını sağlar. Koşul: Döngünün
DetaylıBÖLÜM 2 C PROGRAMLAMADA AKIŞ KONTROLÜ. GOTO: C programında programın herhangi bir yerinden bir yerine şartsız olarak atlanmasını sağlayan komuttur.
BÖLÜM 2 C PROGRAMLAMADA AKIŞ KONTROLÜ GOTO: C programında programın herhangi bir yerinden bir yerine şartsız olarak atlanmasını sağlayan komuttur. #include main () { int a=5 ; dal1: printf (
DetaylıSistem Programlama Deney 1
Sistem Programlama Deney 1 Deney başlamadan önce deney grubu listenizi aşağıdaki dokümana yazınız: https://docs.google.com/spreadsheets/d/1gxplmgkkfwlutcvn9_its7tt rcwuzkqfnwhlpfdodhw/edit?usp=sharing
DetaylıAHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ
AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ TBIL-303-01 Veri Yapıları ve Algoritmalar LABİRENT HAZIRLAYAN 122132151 Fahri DÖNMEZ DANIŞMAN
DetaylıATC-3200 ZigBee to RS232/422/485 Çevirici Kullanıcı Kılavuzu
ATC-3200 ZigBee to RS232/422/485 Çevirici Kullanıcı Kılavuzu 1.0 Giriş AC-3200 cihazı, maliyet odaklı tasarlanmış yüksek entegreli Seri den ZigBee ye kablosuz çevirici adaptördür. Dahili ZigBee teknolojisi
Detaylı2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/
GENEL TEKRAR 1) /*Kullanıcının belirlediği sayı kadar dikdörtgenin kenar bilgilerini kullanıcıdan alan, dikdörtgenlerin alan ve çevresini alt fonksiyon yardımı ile hesaplayan ve sonuçları ekrana yazan
DetaylıBÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.
BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir. TC programı çalıştırıldığında C++ çalışma ortamı açılır. C++ çalışma ortamında istenirse yeni bir
DetaylıC++ Dersi: Nesne Tabanlı Programlama
C++ Dersi: Nesne Tabanlı Programlama Bölüm 10: Yapıcı ve Yıkıcı Fonksiyonlar Yapıcı Fonksiyonlar İçerik Yapıcı Fonksiyon Tanımı Üyelere İlk Atama Yapıcı Fonksiyonu Yükleme Yapıcı Fonksiyon Çağırımı Kopya
DetaylıF3SG-RA/RE ve G9SB Serilerinin Bağlantı Şekilleri
F3SG-RA/RE ve G9SB Serilerinin Bağlantı Şekilleri İÇİNDEKİLER Giriş G9SB Güvenlik Rölesi G9SB Güvenlik Rölesi Bağlantı Şekilleri F3SG-RE Güvenlik Bariyeri ve G9SB Güvenlik Rölesi ile Bağlantı Şekli F3SG-RA
DetaylıKullanım Uygulamaları Ön Görünüş. Dijital Ekran Mode Butonu Programlama Tuşu Sıcaklık Değiştirme tuşu ( - ) Sıcaklık Değiştirme tuşu ( +)
Kullanım Uygulamaları Ön Görünüş Dijital Ekran Mode Butonu Programlama Tuşu Sıcaklık Değiştirme tuşu ( - ) Sıcaklık Değiştirme tuşu ( +) Dijital Ekran Üzerindeki Bilgiler 1.Manuel Çalışma 2.Çalışma Fonksiyonları
DetaylıKarşılaştırma Komutları (Switch ve? Operatörü)
MAK 1005 Bilgisayar Programlamaya Giriş Karşılaştırma Komutları (Switch ve? Operatörü) Prof. Dr. Necmettin Kaya KARŞILAŞTIRMA KOMUTLARI - SWITCH SWITCH: Program akışı bir çok seçenekten birine yönlendirilir.
DetaylıBilgi Müşterinin yerinde kurulum proje danışmanlığı: Ürün numarası seçimi sitesinden <HAR>
Avrupa kablo tipi sertifika H05V-K, HAR, elektrik ve kontrol kablosu, PVC, 300/500V, cihazların ve kontrol dolaplarının kablo tesisatı için, alev geciktirici, Sınıf 5/ince tel, sabit tesisat, halka/bobin
DetaylıBİL1001 Bilgisayar Bilimlerine Giriş 1
DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Tekrarlı Yapılar Algoritmanın belirli bir kısmının, belirli kere ya da belirli durumlar
DetaylıMatris İşlemleri Uygulaması
Matris İşlemleri Uygulaması Uygulama Konusu Uygulama 3x3 boyutlu matrislerle toplama, çıkarma ve çarpma işlemleri üzerinedir. Toplama İşlemi AA = aa iiii mmmmmm ve BB = bb iiii mmmmmm aynı tipte iki matris
Detaylı5. BÖLÜM (10ncu ve 11nci hafta)
5. BÖLÜM (10ncu ve 11nci hafta) 5.1 Fonksiyon Alt Programları Bilgisayar programları, komutları, satırları kolayca takip edilebilir, sade ve anlaşılır olabilmeleri için eklemeli (modüler) bir yapıya sahip
DetaylıTUŞ TAKIMI (KEYPAD) UYGULAMALARI
12. Bölüm TUŞ TAKIMI (KEYPAD) UYGULAMALARI Tuş Takımı (Keypad) Hakkında Bilgi Tuş Takımı Uygulaması-1 74C922 Tuş Takımı Enkoder Entegresi Tuş Takımı Uygulaması-2 (74C922 İle) Bu bölümde tuş takımı diğer
DetaylıC PROGRAMLAMA D İ L İ
C PROGRAMLAMA DİLİ Karşılaştırma Deyimleri if, if-else Yapısı switch -case Yapısı Program içerisinde bazen iki veya daha fazla değerin karşılaştırılması gerekebilir. Bunun için, bütün programlama dillerinde
DetaylıBİLG214. 20.10.2009 Dr. Mustafa T. Babagil 1
BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)
DetaylıFonksiyonlar -Genel Test- A
1 Fonksiyonlar -Genel Test- A 1. C dilinde fonksiyon bildirimi için hangisi gereklidir? (a) Fonksiyonun döndüreceği veri tipi (b) Fonksionun adı (c) Fonksiyon parantezi ( ) (d) Hepsi 2. C dilinde fonksion
DetaylıYrd. Doç.Dr. C. Harmanşah PARALEL PORT
1 PARALEL PORT Bilgisayar sistemlerinde data transferi paralel ve seri olmak üzere iki şekilde gerçekleştirilmektedir. [EEE 410 Microprocessors I Spring 04/05 Lecture Notes # 19] İki farklı birim veya
Detaylışeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;
Dosya İşlemleri Nedir? Programlarınızı girdi (input) olarak aldığı verileri bir text dosyasında yada word dosyasında vb. saklamasıdır. Artık C programınızın yaratıp içine veriler koyacağı text dosyasını
DetaylıDiziler (Arrays) Çok Boyutlu Diziler
Diziler (Arrays) Çok Boyutlu Diziler ÇOK BOYUTLU DİZİLER Birden fazla indis numarası ile elemanlarına ulaşılan dizilere çok boyutlu diziler denir. Bunlardan en sık kullanılanı çift boyutlu dizilerdir.
DetaylıCasio Exilim EX-Z70 LCD Ekran Yedek
Casio Exilim EX-Z70 LCD Ekran Yedek Bu kılavuz o kırık olan durumda cihazın LCD ekran yerine gerekli gerekli adımları gidecek, çalışmayı durdurdu, ya da başka bir şekilde arızalandı. Yazan: Paul Fallon
DetaylıDOSYA İŞLEMLERİ Programlama dilleri hafta -
BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DOSYA İŞLEMLERİ Programlama dilleri 1-10. hafta - Araş. Gör. Nesibe YALÇIN Dosya İşlemleri Programın çalışma esnasında
DetaylıBÖLÜM 7: DÖNGÜ KONTROL YAPILARI
I. for DÖNGÜSÜ BÖLÜM 7: DÖNGÜ KONTROL YAPILARI for döngüsü, diğer programlama dillerinde olduğu gibi C programlama dilinde de yaygın bir şekilde kullanılır. Bir veya bir grup işlemin belirli bir sayıda
DetaylıC++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié
Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama
DetaylıArduino Uno ile Hc-Sr04 ve Lcd Ekran Kullanarak Mesafe Ölçmek
Arduino Uno ile Hc-Sr04 ve Lcd Ekran Kullanarak Mesafe Ölçmek 1 Adet Arduino Uno 1 Adet Hc-Sr04 Ultrasonik mesafe sensörü 1 Adet 16 2 Lcd Ekran 1 Adet Breadbord 1 Adet Potansiyometre 2 Ader led Yeteri
DetaylıSEESAW 24V DC BARİYER KONTROL KARTI KULLANIM KİTABI V 2.0
SEESAW 24V DC BARİYER KONTROL KARTI KULLANIM KİTABI V 2.0 EKİM, 2010 KONTAL ELEKTRONİK :: SEESAW BARİYER KONTROL KARTI KULLANIM KİTABI V2.0 0 SEESAW 24V DC BARİYER KONTROL KARTI KARTI VE KULLANIMI Seesaw
DetaylıAyakkabı numaralarımız 36-40 arasıdır.
1 700 Fuşya-Beyaz 700 -Beyaz 700 Turkuaz-Beyaz 700 Beyaz- 700 Pembe-Beyaz 700 Gri-Beyaz 700 Beyaz-Mor 700 -Beyaz 700 Kırmızı-Beyaz 2 705 Gri-Pembe 705 Kırmızı-Beyaz 705 -Kırmızı 705 Mor-Pembe 705 -Beyaz
DetaylıBÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI
BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI C programlama dilinde, diğer programlama dillerinde olduğu gibi, işlemler, ilk satırdan başlamak üzere sırayla çalışır. Program kontrol yapıları ise, programın
DetaylıMelih Hilmi ULUDAĞ. Yazılım Mühendisi Mekatronik Mühendisi. a aittir.
Melih Hilmi ULUDAĞ Yazılım Mühendisi Mekatronik Mühendisi www.melihhilmiuludag.com a aittir. ÖZET Teknolojiyi kısaca bilimsel bilgiden yararlanarak yeni bir ürün geliştirmek, üretmek ve hizmet desteği
DetaylıDÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()
(LOOPS) while(), do-while(), for(), foreach() Döngüler (loops) while do-while for foreach while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; foreach ( tip
DetaylıDERSİN WEB SİTESİ:
BİLGİSAYAR PROGRAMLAMA II C++ Programlamaya Giriş http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié THEORY AND PROBLEMS of PROGRAMMING WITH C++ Second Edition JOHN R. HUBBARD, Ph.D. Professor
DetaylıATC-105. RS232 RS422/RS485 Data Çevirici KULLANMA KILAVUZU
ATC-105 RS232 RS422/RS485 Data Çevirici KULLANMA KILAVUZU Açıklama: ATC-105 izoleli arabrim çeviric RS232C, RS422, RS485 standartlarındadır ve RS232 sinyalini RS422 veya RS485 dengeli sinyallere çevirir.
DetaylıAdı Soyadı : Öğrenci No :
Adı Soyadı : Öğrenci No : Soru 1 2 3 4 Toplam Not F.Ü TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖL. YMT111 VİZE SINAVI 2013 2014 Güz (03 Aralık 2013) SORULAR Toplam 4 soru 110 Puan, cevaplarınızı soru
DetaylıLPC2104 Mikro Denetleyicisini KEIL İle Programlamak
LPC2104 Mikro Denetleyicisini KEIL İle Programlamak Program yazabilmek için öncelikle komutları tanımamız ve ne işe yaradıklarını bilmemiz gerekir. Komutlar yeri geldikçe çalışma içerisinde anlatılacaktır.
DetaylıAdı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.
Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :13.04.2017 60 dak. Dikkat!!! Soru kitapçığında ve cevap
DetaylıÖrnek1: #include <iostream> #include <string> using namespace std;
BTEP243 Ders 5 Nesne İşaretçileri İşaretçiler, bildiğiniz gibi bir değişkenin bellekte tutuldukları yerin adresini tutarlar. Nesne işareçtileri konusundaki işaretçiler, nesnelerin bellek üzerinde bulundukları
DetaylıMifare Kart Yazıcı/Okuyucu Modül (MFM-200)
2012 Mifare Kart Yazıcı/Okuyucu Modül (MFM-200) İstanbul Yazılım ve Elektronik Teknolojileri 01.01.2012 MFM-200 Mifare Kart Yazıcı/Okuyucu Modül Genel Özellikler Ürün Kodu MFM-200 Protokol ISO14443A, ISO15693
DetaylıİNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ
İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 2 hafta Ödev No : 7 ****(ilk 3 soru çıktı üzerinde el
DetaylıART S603W Standalone Kart Okuyucu
ART S603W Standalone Kart Okuyucu ART S603W Standalone kart okuyucuya ait genel bilgiler, montaj, kablolama, programlama bilgileri ve teknik özellikleri hakkında detaylı açıklama. www.artelektronik.com
DetaylıKASA SEÇENEKLERİ. VG7-W RGB (3x 120 mm Adreslenebilir RGB LED Fanlar) VG7-W Blue (3x 120 mm LED Fanlar) VG7-W Red (3x 120 mm LED Fanlar)
KASA SEÇENEKLERİ VG7-W (3x 120 mm Adreslenebilir LED Fanlar) VG7-W Blue (3x 120 mm LED Fanlar) VG7-W Red (3x 120 mm LED Fanlar) VG7-W Green (3x 120 mm LED Fanlar) KOMPAKT KASA TASARIMI VG7-W ATX Midi Tower
DetaylıOTONOM ÇĐM BĐÇME MAKĐNESĐ GELĐŞTĐRĐLMESĐ DEVELOPING OF AUTONOMOUS LAWN MOVER. Danışman: Prof.Dr. Koray TUNÇALP, Marmara Üniversitesi Đstanbul
OTONOM ÇĐM BĐÇME MAKĐNESĐ GELĐŞTĐRĐLMESĐ DEVELOPING OF AUTONOMOUS LAWN MOVER Danışman: Prof.Dr. Koray TUNÇALP, Marmara Üniversitesi Đstanbul Cihan ÇATALTEPE, Marmara Üniversitesi-Mekatronik Öğrt.4.Sınıf
DetaylıFall Object-Oriented Programming Laboratory 03
2017-2018 Fall Object-Oriented Programming Laboratory 03 17.10.2017 1. Çok Dosyalı Proje. Aşağıda, katilimci structure ı için oluşturulmuş bir programın kaynak kodu verilmiştir. Kaynak kodu okuyun ve programın
DetaylıRobotik AKTUATÖRLER Motorlar: Çalışma prensibi
Robotik AKTUATÖRLER Motorlar: Çalışma prensibi 1 Motorlar: Çalışma prensibi Motorlar: Çalışma prensibi 2 Motorlar: Çalışma prensibi AC sinyal kutupları ters çevirir + - AC Motor AC motorun hızı üç değişkene
Detaylı#ifndef COMPLEX_H #define COMPLEX_H
16.10.2018 2018-2019 Güz Object-Oriented Programming Lab 03 Ön Çalışma - Bir kompleks sayının genliğini ve açısını hesaplamak için gerekli C/C++ fonksiyonları bulun, kütüphanelerini ve prototiplerini yazın,
DetaylıİLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı
İLERI MIKRODENETLEYICILER Ege Üniversitesi Ege MYO Mekatronik Programı BÖLÜM 1 Embedded C, C51 Temel Veri Tipleri Veri tipi (Data Type) Bit Bayt Değer bit 1 0, 1 char 8 1-128, +127 unsigned char 8 1 0,
Detaylı