[LinuxFocus-icon]
<--  | Ana Sayfa  | Eri�imd�zeni  | ��indekiler  | Arama

Duyumlar | Belgelikler | Ba�lant�lar | LF Nedir
Bu makalenin farkl� dillerde bulundu�u adresler: English  Castellano  Deutsch  Francais  Turkce  

[Photo of the Authors]
Katja and Guido Socher
<katja/at/linuxfocus.org, guido/at/linuxfocus.org>

About the authors:

Katja LinuxFocus'un Alman edit�r�d�r. Kendisi Tux, Bilgisayar Tabanl� �izim, film ve foto�raf��l�k ve denizi sever. Ana sayfasina buradan ula�abilirsiniz.

Guido �ok uzun zamandan beri Linux severdir ve Linux'un kedisine se�im �ans� ve �zg�rl�k verdi�ini d���n�yor. Linux ile gereksinimlerinize g�re ��z�mler �retip geli�tirebilirsiniz.



T�rk�e'ye �eviri:
M. Muti G�zel <gozelm/at/be.itu.edu.tr>

��erik:

 

Otomatik ���k izleyici robot yapmak

[Illustration]

�zet:

Bu yaz�da bir mikro kontrol birimi ile en parlak noktaya y�nelerek ilerleyen otomatik bir robotun nas�l yap�laca��n� anlataca��z.

_________________ _________________ _________________

 

Giri�

�ki y�l �nce LinuxFocus'da Linux-kontroll� y�r�yen robot'u anlatt�k. �ki aya�� �zerinde y�r�yebilmesi ve al���lagelmi� motorlar�n�n bulunmamas� a��s�ndan tasar�mda �ok �zel bir yap�ya sahipti. Bu, bu robotun �ok ilgin� olan bir yan�yd�; bununla birlikte robot �ok yava�t�, �ok fazla ak�ma gereksinim duyuyordu ve yap�m� i�in �ok fazla �zel par�a ve h�ner gerektiriyordu.

Yeni robotumuzun tasar�m� son derece farkl�. Ucuz ve her yerde bulabilece�imiz t�rden par�alarla yapabileceksiniz. Bir AVR mikro kontrol birimi ile kontrol edilebilen bir otomatik robottur. Otomatik bir �ekilde (ki�i kontrol� olmadan) odadaki en ayd�nl�k tarafa y�nelerek ilerleyecek �ekilde programlad�k.  

Mekanik K�s�m


[conrad motor]
Conrad'tan k���k �arkl� bir motor.
[servo motor]
Motor olarak �al��mas� i�in d�zenlenmi� bir Servo. Bu belki en iyi ��z�md�r ama bu fikir robotumuzu bitirdikten sonra akl�m�za geldi.
Robotun iki ba��ms�z motor taraf�ndan y�r�t�len iki tekerle�i var. ���nc� tekerlek ise bir pinpon topudur. Bu, robotun parlak noktada d�nmesini sa�layacakt�r. Tekerlek i�in oyuncaktan s�kt���m�z lastik tekerlekler kulland�k ama siz buna mecbur de�ilsiniz. Etraf�na bir lastik bant sar�lm�� bir re�el kavanozunun kapa�� da iyi bir tekerlek olabilir.

Otomatik bir robotun pillerle �al��mas� olduk�a �nemlidir. Mikro kontrol birimi 4.5V ile �al��t���ndan motorlar da 3-4.5V ile �al��mal�d�r. Daha fazla ak�ma gerek olmamal�d�r, aksi durumda piller ve kontrol devresi a��r� b�y�k ve a��r olacakt�r. Bu tasar�m i�in 1293d olarak adland�r�lan bir entegre motor s�r�� �ipi kulland�k. 1293d motor s�r�� �ipi 0.5A'e kadar olan y�kleri ta��yabilir. Bu nedenle motorlar, en k�t� ko�ullarda, 0.5A'in alt�nda �al��mal�d�r.

Conrad'dan (www.conrad.de, part number: 242802) elde etti�imiz �anz�man kutulu 2 k���k motor kulland�k ama siz ba�ka bir t�r �anz�man kutulu motor da kullanabilirsiniz. Asl�nda simdi, k���k botlar�n, arabalar�n ve u�aklar�n uzaktan kumandas�nda kullan�lan Servo Motorlar�n kullanmam�z�n en iyi ��z�m olaca��n� d���n�yoruz. Normalde bu Servo Motorlar sadece bir y�nde d�nerler ama siz �anz�man kutusunu a�abilir, durdurucuyu alabilir, potansiyometreyi ve elektronik birimi ��karabilirisiniz. Kolay bulunabilir ufak ve g��l� motorlard�r.

[motor on wooden board 1]

Robotu yapmak i�in motorlar� bir tahtan�n (12cm x 9cm) alt taraf�na, y�k�n b�y�k k�sm� iki dingil �zerinde ta��nacak �ekilde, ortaya yak�n yerle�tiriniz. ���nc� tekerlek olan pinpon topu, yuvas�nda rahat bir �ekilde d�nebilmesinin sa�lanmas� i�in, y�k�n k���k bir k�sm�n� ta��mal�d�r.

[motor on wooden board 1]

Pinpon topunun yuvas� do�ru b�y�kl��e sahip k���k bir plastik �ise kapa�� olabilir.
[pill box]


Robotun hareketi i�in 3 tane AAA pil kulland�k. Pil tutucular�n� a�a��da g�sterildi�i gibi yerle�tiriniz. Piller olduk�a a��rd�r bu y�zden yerle�tirilmelerinde y�k�n �o�unun tekerlekler �zerine ve yaln�zca az�n�n pinpon topuna gelmesine dikkat edilmelidir. Bir a�-kapa d��mesini kenarda istedi�iniz yere yerle�tirebilirsiniz.

[position of the batteries]

 

Alg�lay�c�lar

Robotumuza iki tip alg�lay�c� verdik: Dokunma alg�lay�c�lar� �elik tellerden yap�lm�� basit a�k�lard�r. �elik telleri a�a��da g�sterildi�i gibi e�dik:
[steel wire]


Tahta plakan�n her kenar�nda bir vida ile tutturulmu� b�yle 4 alg�lay�c� vard�r.

Robot bir cisme dokundu�unda �elik tel (2, sekle bak�n�z) tahta plaka (3) �zerindeki ikinci tele dokunur ve bu �elik tel ile tahta �zerinde bulunan tel aras�ndaki elektrik ba�lant�s�n� kapat�r.

Pinpon topu yuvas�ndan ��kt���nda �elik telin e�ilmemesi i�in tahta plaka alt�na bir tahta par�as� (1) ekledik. Bu par�a pinpon topu yuvas�nda iken yerden 5mm y�ksekte olmal�d�r.
�elik telin ucu yerden 5-7mm y�ksekte olmal�.
[touch sensors]

I��k alg�lay�c�lar� 3 foto diren�ten olu�uyor. Ka��t par�alar�n� foto diren�lerin aras�na a�a��da �ekilde g�r�ld��� gibi yerle�tirdik. Bu ka��t par�alar� ���k yandan vurdu�unda g�lge olu�turacakt�r. Sadece ���k tamamen tepeden vurdu�unda, 3 alg�lay�c�n�n hepsi �zerinde e�it miktarda ���k sa�layacakt�r. Robot 3 alg�lay�c� �zerindeki de�erleri kar��la�t�rarak hangi do�rultuda gidece�ine karar verebilecektir.

Bu 3 foto direnci k���k bir deney tahtas� (�zerinde �ok say�da delik bulunan plakalar) �zerine yap��t�r�p sonra hepsini bir tek vida ile robota ekleyebilirsiniz.
[photo sensors] [position of the photo sensors]

Alg�lay�c�lar�n ve motorlar�n bask�l� devre plakas� �zerine mikro kontrol birimi ile nas�l bile�tirilece�i a�a��da daha ayr�nt�l� olarak anlat�lacakt�r. Mekanik par�alar� olu�turdu�umuza g�re, simdi robotun beynini inceleyelim.  

Devre

Robotumuzda beyin olarak bir AT90S4433 mikro kontrol birimi kulland�k fakat beyin motorlar� d�nd�recek kadar enerjiyi do�rudan aktaramaz. ��te bu noktada L293D motor s�r�� birimi devre girer. Bu �ip 4 y�kselticili dijital ��k�� kap�s�na ve motorun sar�mlar�ndan kaynaklanabilecek y�ksek ak�ma kar�� korumak i�in ekstra korumal� diyotlara sahiptir. Bu ��k�� kap�lar�n�n ikisi bir motoru s�rmek i�in kullan�labilir. B�ylelikle motorun sa�a ve sola d�nmesi sa�lanabilir.
l293d

Bir motoru 1. ve 2. di�erini de 3. ve 4. ��k�� kap�lar�n�n aras�na ba�lad�k. Bu, �ipin sa�lay�c� ayaklar�na de�i�ik s�reli etkiler g�nderdi�imizde, �ipin ayaklar�n�n motorlar�n h�z�n� kontrol etmek i�in kullan�lmas�n� sa�lar.

Devrenin geri kalan taraf� �ok basittir: Atmel AT90S4422 mikro kontrol birimini tekrar kullan�r�z. Daha �nceki LinuxFocus makalelerinden bu mikro kontrol birimini biliyorsunuz. Analog giri�leri foto diren�ler �zerindeki ����� �l�mek i�in kullan�labilir ve dokunma alg�lay�c�lar�, a�a��daki �ekilde g�sterildi�i gibi, do�rudan dijital giri�lere ba�lanabilir.

Mikro kontrol birimi hakk�nda daha fazla bilgiyi Guido'nun Mart 2002 yaz�: GCC ile AVR Mikro Kontrol Biriminin Programlanmas� makalesinde bulabilirsiniz.

circuit

Devre 4.5V ile �al���r. �� AAA pili bu nedenle robotu �al��t�rmak i�in yeterlidir.

Otomatik robotumuzun devresi art�k haz�r olacakt�r. Bununla birlikte yaz�l�mda bir �eyler do�ru gitmez ve robot beklendi�i gibi �al��maz ise ne yapacaks�n�z? Hi� bir �ey g�remezsiniz. Foto diren�lerin de�erini bilmezsiniz, robot yaz�l�m�n�n hangi secimi yapt��� hakk�nda bir fikir sahibi olmazs�n�z. Bize gereken �ey robotun ne yapt���n� g�sterecek herhangi bir ekrand�r. RS232 seri ba�lant�s� bu is i�in uygunudur. De�i�kenlerin de�erini okuyabilir ve hatta robotla ileti�im kurabiliriz. Ba�lant�y� s�rekli yapmak istemiyoruz ama robotun hatalar�n� ay�klamak i�in gerek duyuyoruz. Bu nedenle max232'yi ve RS232 ba�lant�s� i�in gerekli olan di�er par�alar� ba�ka bir plaka �st�ne eklemek ve gerekti�inde ba�lay�p ��karmak daha ak�ll�ca olacakt�r:
rs232adapter

Tam Eagle devresi diyagramlar�, plakadaki yerle�im ve robot i�in gerekli yaz�l�m bu makalenin sonundaki b�l�mden indirilebilir. Burada plakadaki yerle�imi anlatmayaca��z. Devre plakas� piller aras�na yerle�ecek kadar k���kt�r.

a�a��da robotun hangi taraf�ndaki dokunma alg�lay�c�s�n�n devre diyagram�n�n hangi aya��na ba�lanaca��n� g�rebilece�iniz bir �ekil var. �ekil ayn� zamanda motorlar�n nas�l ba�lanaca�� da g�stermektedir. Motorlar, +3V hatt� "+" aya��na ba�lan�p toprak hatt� "-" aya��na ba�lan�rsa robot ileriye do�ru (ok y�n�nde) hareket edecek �ekilde kutuplanmal�d�r. 1293d'nin ayaklar� 1y den 4y'ye kadar adland�r�lm��t�r.

[]

 

Yaz�l�m

Burada fazla detaya girmek istemiyoruz. Ana program linuxrobot.c dosyas�nda g�r�lebilir (makalenin sonundan indirin). Program, bir C programc�s� taraf�ndan rahatl�kla anla��labilecek a��klamalar� i�eriyor. Ana d�ng� ilk �nce Mikro kontrol biriminin analog-dijital �eviricisini bir anda �evirme modunda 3 kez �al��t�rarak foto diren�lerin analog bilgilerini elde eder. Bundan sonra dokunma alg�lay�c�lar�na bakar. E�er dokunma alg�lay�c�lardan herhangi biri bas�lm��sa ���k alg�lay�c�lar�ndan daha �nemli hale gelecekler ��nk� bu durumda robotun hareketini engelleyen bir �ey yoluna ��km�� olabilir. Robot, motoru, bas�lm�� durumdaki dokunma alg�lay�c�s�n�n tersi y�nde birka� milisaniye d�nd�recektir. E�er dokunma alg�lay�c�lar�na bas�lmam��sa ���k alg�lay�c�lar� aras�nda bir kar��la�t�rma yap�lacak. Bu kar��la�t�rma compare_with_tol() fonksiyonun ile yap�l�yor. Bu fonksiyon bir de�eri di�er iki tanesinin ortalama de�eriyle kars�la�t�rmaktad�r. G�r�lt�y� ortadan kald�rmak i�in, de�erler aras�ndaki fark y�zde 5 in alt�nda ise iki de�eri e�it al�yoruz.

Hangi motorun d�nece�ini foto alg�lay�c�lar�n kars�la�t�rmas� sonucunda sapt�yoruz. 2 tekerle�imiz oldu�una g�re robotu d�nd�rmek i�in tekerleklerin birini di�erinden daha h�zl� yada ters y�nlerde hareket ettirebiliriz. Mikro kontrol birimi �l��mleri �ok h�zl�, saniyede �ok kez, tekrarlad���ndan robotun hareketi, motoru biraz sa�a yada sola d�nd�rmek i�in motorun birini saniyenin bir kesri kadar durdursak bile, s�rekli g�r�n�r.  

Bir araya getirmek

Elektroni�i bir araya getirirken testleri a�amal� yapmak her zaman iyi bir fikirdir. Bu yolla olas� hatalar� en aza indirebilirsiniz.

Linuxrobot yaz�l�m paketinde 3 farkl� test program� vard�r. Ledtest program� 2 LED'in yan�p s�nmesi sa�lar. Bunu "make ledtestload" komutu ile y�kleyebilirsiniz. Bu program�n derlenmesini ve Mikro kontrol birimine y�klenmesinin sa�lar. 2 LED, program y�klenir y�klenmez yan�p s�nmeye ba�lamal�. Bu test ba�ar�l� oldu�unda mikro kontrol biriminin, osilat�r�n ve yaz�l�m� y�klemek i�in PC ile kurulan ba�lant�n�n �al��t���ndan emin olabilirsiniz.

Sonraki ad�m, motor test program�d�r. Bu test program� "elektronik lastik top" i�erir. Bunu "make motortestload" komutu ile y�kleyebilirsiniz. Motor test program� dokunma alg�lay�c�lar�n� s�rekli yoklar ve biri dokunuldu�unda robot dokunulan alg�lay�c�dan uzakla�mak i�in hareket eder. E�er robota parma��n�zla bir taraftan dokunursan�z robot ters y�nde sekecektir. Di�er elinizi robotun arkas�na koyarsan�z robot iki elinizin aras�nda lastik bir top gibi s�rekli sekecektir. Robot bu testi ge�erse ���k alg�lay�c�lar� ile RS232 ba�lant�s� d���nda her �ey test edilmi�tir.

Son test program� adctes olarak adland�r�l�r ("make adctestload" ile derleyip y�kleyin). Program, robotun hatalar�n� ay�klamak i�in konmu� bulunan RS232 ba�lant�s�n� ve 3 foto alg�lay�c� i�in analog-dijital �eviriciyi (ADC - analog to dgital converter) test eder. Program� mikro kontrol birimine y�kleyin ve PC'nize RS232'yi ba�lay�n�z. Bundan sonra a�a��daki 3 komutu kabukta �al��t�r�n:
make ttydevinit
./ttydevinit /dev/ttyS0
cat /dev/ttyS0
Robot periyodik olarak foto alg�lay�c�lar taraf�ndan �l��len ���k �iddetinin miktar�n� ekrana yazacakt�r.

T�m testler ba�ar� ile tamamland���nda son program� robota "make load" ile y�kleyebilirsiniz. �lk test i�in en uygun yer ortas�nda tek lamba olan bir odad�r. Robot direkt lambaya do�ru gitmeli ve orda durmal�.

Arka taraf� ���k kayna��na gelecek �ekilde yerle�tirdi�inizde nas�l d�nd���n� veya g�lgeleri nas�l yok etti�ini g�rmek olduk�a e�lencelidir.  

Problemler ve �yile�tirmeler:

Bu robotu k���k bir deney olarak ba�latt�k. Kendi kendine karar veren ve PC ile data ba�lant�s�na gerek duymadan ilerleyen bir robot yapmak e�lenceliydi. Makalenin ilerleyen k�s�mlar�ndan indirebilece�iniz linuxrobot paketindeki program olduk�a k���k ve basit olmas�na ra�men istedi�imizi yap�yor: Robot en ayd�nl�k yere do�ru ilerler.

�lerideki geli�tirmeler i�in ba�lang�� noktalar� kullan�labilecek baz� noktalardan bahsetmek istiyoruz: Su anda Linuxrobot program� olduk�a k���k ve basittir, bu y�zden kolayl�kla anlayabilir ve geli�tirebilirsiniz. Bir 4433 Mikro kontrol biriminin haf�zas�n�n yaln�zca %50'sine ihtiya� duyar b�ylece daha pek �ok �ey ekleyebilirsiniz.

Bu robot ile ilgili iyi �ey donan�m�n su yada bu �ekilde geli�tirilebilir olmas�d�r: Temel olarak 2 motor ve mikro kontrol birimine ba�l� birka� alg�lay�c�dan ibarettir. T�m mant�k yaz�l�m�n i�indedir. Bu, yaz�l�m� de�i�tirmekle hemen hemen istedi�iniz her �eyi de�i�tirebilmeniz anlam�na gelir.

Test durumundaki robotun bir resmi vard�r. Etrafa ka�mas�n diye alt�na birka� post-it blo�u yerle�tirdik. RS232 ba�lant�s� hata ay�klamak amac� ile yap�lm��t�r:


... son olarak ����� arayan robot ...:

 

Referanslar

 

Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz

Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
 talkback page 

<--, Bu say�n�n ana sayfas�na gider

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Katja and Guido Socher, FDL
LinuxFocus.org
�eviri bilgisi:
en --> -- : Katja and Guido Socher <katja/at/linuxfocus.org, guido/at/linuxfocus.org>
en --> tr: M. Muti G�zel <gozelm/at/be.itu.edu.tr>

2003-11-07, generated by lfparser version 2.43