Bitirme projem "Puzzle Çözen Robot". Kisaca anlatmam gerekirse, 6'sida farkli renkten olusan kare kartonlardan olusan bir puzzle'i cozdurecegiz. Ilk olarak webcam yardimi fotografini alacagiz. Puzzle'i bozduktan sonra, MATLAB ile robot kolunun aldigi parcanin rengini ve puzzle'daki dogru koordinatini belirleyecek. PIC ile de servo motor kontrollu robot kolu yerlestirme islemini yapacak.
Su an mekanik kismini hallettik. Robotu manuel olarak kontrol edip, sorunsuz olarak istedigimiz sekilde hareket ettiriyoruz. Programlari da yazabilecek durumdayiz. FAKAT, MATLAB ve PIC arasindaki baglantiyi kuramiyoruz.
Bu konuda bize yardimci olabilir misiniz? MATLAB'den PIC'i nasil cagirabiliriz? Olmaz diyorsaniz da alternatif bir yolu var midir bildiginiz? Simdiden cok tesekkurler..
MATLAP mühendislerin kullandığı analiz programıdır bunu pic in içine gömemezsiniz, gerçel zamanlı bir yazılım programıdır. PIC i kontrol edebilmeniz için PIC Basic, PIC C yada PIC Assembly dillerinden birini bilmeniz gerekiyor. yazılımınızı bu dillerden birinde yapıp compiler yardımı ile derleyip pic in içine gömmelisiniz.
bilmiyorum kesin düşünmüşsünüzdür ama; seri port dan haberlesin picdede karşılayıcı kod olsun sen bilgisayardan ne cevrimleri yapıcağını söyle
Oncelikle cevaplariniz icin tesekkur ederim.
Matlab'i pic'e degil ama, pic'i matlab'e gommek mumkun zannediyorduk bizde baslamadan once, matlab'den baya program cagrilabildiginden. Dediginiz gibi, gomemiyoruz, o yuzden alternatif bir yol ariyoruz fakat bulamadik. Programi JAL ile yazdik. JALEDIT ile hex dosyasi olarak derledik. Bunda bir sikintimiz yok. Matlab'i de yazacagiz. Ama iste sikinti bundan sonra. Renk ve konum analizi yapmak icin kullandigimiz Matlab'den parcanin yerlestirilecegi pozisyonun bilgi sinyalini gonderemiyoruz pic'e. Yani dedigim gibi, baglantiyi kuramiyoruz arada.
quote:
Orijinalden alıntı: the_zippoer
Oncelikle cevaplariniz icin tesekkur ederim.
Matlab'i pic'e degil ama, pic'i matlab'e gommek mumkun zannediyorduk bizde baslamadan once, matlab'den baya program cagrilabildiginden. Dediginiz gibi, gomemiyoruz, o yuzden alternatif bir yol ariyoruz fakat bulamadik. Programi JAL ile yazdik. JALEDIT ile hex dosyasi olarak derledik. Bunda bir sikintimiz yok. Matlab'i de yazacagiz. Ama iste sikinti bundan sonra. Renk ve konum analizi yapmak icin kullandigimiz Matlab'den parcanin yerlestirilecegi pozisyonun bilgi sinyalini gonderemiyoruz pic'e. Yani dedigim gibi, baglantiyi kuramiyoruz arada.
Böyle amatör bir projede haberleşme en kolay RS232 üzerinden seri haberleşme ile yapılır. Bilgisayar ile PIC microcontroller arasında bir kablo olacak ve bu haberleşmeyi sağlayacak.
PIC i Matlabda derlemek yada Matlabı pic e gömmek çok saçma şeyler.
------------------------------------------------------- Adım adım anlatmam gerekirse: 2 farklı programınız olacak: 1- Matlabda analiz programı. Sanıyorum ki webcam bilgisayara direk bağlı olacak. Matlabta webcamden fotoğraf karesi alacaksınız. Bunu işleyip, fotoğraf karesinden çeşitli bilgiler çıkaracaksınız. Daha sonra kolun yapması gereken hareketleri belirleyip, bu hareketleri sırayla mikrodenetleyiciye göndereceksiniz.
2- PIC üzerinde çok çok basit bir program olacak. RS232 den sadece komut alacaksınız. Mesela: kolu yukarı kaldır, sola 15 derece döndür. Kolu indir vs. PIC üzerindeki program sadece seri porttan gelen hareketleri yapacak.
Burada önemli olan PIC yada MATLAB kodu yazmak değil. O programların nasıl çalışacağını, fotoğraf karelerinin ne zaman alınacağını, haberleşmenin ne şekilde olacağını, görüntü işleme algoritmalarını vs. planlamak.
Plan yapmadan direk kod yazmaya kalkarsanız, bu işi bitiremeyeceğinizi garanti ederim. İlk önce kağıt üstünde en az 3-5 gün sistemin nasıl çalışacağı planlanmalı. Daha sonra uygulamaya geçilmeli diye düşünüyorum.
Bitirme projesi falan demişsin de, okulların kapanmasına çok az bir zaman kaldı. Daha proje hakkında fikriniz yok gibi duruyor. Karamsarlık yaratmak istemiyorum da 1-2 hafta içinde bitirilebilecek bir proje değil bu.
Kaç kişilik ekibiniz var? Görüntü işlemeyi biliyor musunuz ?
Bir de projeyi biraz daha açık ifade etsen, daha görsel olarak anlatsan belki daha çok yardımcı olabiliriz.
quote:
Orijinalden alıntı: HITM@N
quote:
Orijinalden alıntı: the_zippoer
Oncelikle cevaplariniz icin tesekkur ederim.
Matlab'i pic'e degil ama, pic'i matlab'e gommek mumkun zannediyorduk bizde baslamadan once, matlab'den baya program cagrilabildiginden. Dediginiz gibi, gomemiyoruz, o yuzden alternatif bir yol ariyoruz fakat bulamadik. Programi JAL ile yazdik. JALEDIT ile hex dosyasi olarak derledik. Bunda bir sikintimiz yok. Matlab'i de yazacagiz. Ama iste sikinti bundan sonra. Renk ve konum analizi yapmak icin kullandigimiz Matlab'den parcanin yerlestirilecegi pozisyonun bilgi sinyalini gonderemiyoruz pic'e. Yani dedigim gibi, baglantiyi kuramiyoruz arada.
Böyle amatör bir projede haberleşme en kolay RS232 üzerinden seri haberleşme ile yapılır. Bilgisayar ile PIC microcontroller arasında bir kablo olacak ve bu haberleşmeyi sağlayacak.
PIC i Matlabda derlemek yada Matlabı pic e gömmek çok saçma şeyler.
------------------------------------------------------- Adım adım anlatmam gerekirse: 2 farklı programınız olacak: 1- Matlabda analiz programı. Sanıyorum ki webcam bilgisayara direk bağlı olacak. Matlabta webcamden fotoğraf karesi alacaksınız. Bunu işleyip, fotoğraf karesinden çeşitli bilgiler çıkaracaksınız. Daha sonra kolun yapması gereken hareketleri belirleyip, bu hareketleri sırayla mikrodenetleyiciye göndereceksiniz.
2- PIC üzerinde çok çok basit bir program olacak. RS232 den sadece komut alacaksınız. Mesela: kolu yukarı kaldır, sola 15 derece döndür. Kolu indir vs. PIC üzerindeki program sadece seri porttan gelen hareketleri yapacak.
haberlesmeyi aynen yazdigin sekilde yapiyoruz. servo motor surucusu ile laptop arasinda seri port kullaniyoruz haberlesme icin.
gommekten kastim bir sekilde matlab ile pic arasinda iletisim kurmak. matlab ile parcalarin konum analizi yapildiktan sonra, robotun istenilen konuma yonlenmesi icin matlab ile pic arasindaki iletisimi kurmam lazim. gomme veya baska birsey.. bir sekilde etkilesimi olusturmam lazim.
Matlab'i pic'e degil ama, pic'i matlab'e gommek mumkun zannediyorduk bizde baslamadan once, matlab'den baya program cagrilabildiginden. Dediginiz gibi, gomemiyoruz, o yuzden alternatif bir yol ariyoruz fakat bulamadik. Programi JAL ile yazdik. JALEDIT ile hex dosyasi olarak derledik. Bunda bir sikintimiz yok. Matlab'i de yazacagiz. Ama iste sikinti bundan sonra. Renk ve konum analizi yapmak icin kullandigimiz Matlab'den parcanin yerlestirilecegi pozisyonun bilgi sinyalini gonderemiyoruz pic'e. Yani dedigim gibi, baglantiyi kuramiyoruz arada.
Böyle amatör bir projede haberleşme en kolay RS232 üzerinden seri haberleşme ile yapılır. Bilgisayar ile PIC microcontroller arasında bir kablo olacak ve bu haberleşmeyi sağlayacak.
PIC i Matlabda derlemek yada Matlabı pic e gömmek çok saçma şeyler.
------------------------------------------------------- Adım adım anlatmam gerekirse: 2 farklı programınız olacak: 1- Matlabda analiz programı. Sanıyorum ki webcam bilgisayara direk bağlı olacak. Matlabta webcamden fotoğraf karesi alacaksınız. Bunu işleyip, fotoğraf karesinden çeşitli bilgiler çıkaracaksınız. Daha sonra kolun yapması gereken hareketleri belirleyip, bu hareketleri sırayla mikrodenetleyiciye göndereceksiniz.
2- PIC üzerinde çok çok basit bir program olacak. RS232 den sadece komut alacaksınız. Mesela: kolu yukarı kaldır, sola 15 derece döndür. Kolu indir vs. PIC üzerindeki program sadece seri porttan gelen hareketleri yapacak.
haberlesmeyi aynen yazdigin sekilde yapiyoruz. servo motor surucusu ile laptop arasinda seri port kullaniyoruz haberlesme icin.
gommekten kastim bir sekilde matlab ile pic arasinda iletisim kurmak. matlab ile parcalarin konum analizi yapildiktan sonra, robotun istenilen konuma yonlenmesi icin matlab ile pic arasindaki iletisimi kurmam lazim. gomme veya baska birsey.. bir sekilde etkilesimi olusturmam lazim.
Projeyi biraz daha detaylı anlatabilir misin?
Bir de projeyi kaç kişi yapıyorsunuz ? Ne kadar süreniz var ?
quote:
Orijinalden alıntı: HITM@N
Burada önemli olan PIC yada MATLAB kodu yazmak değil. O programların nasıl çalışacağını, fotoğraf karelerinin ne zaman alınacağını, haberleşmenin ne şekilde olacağını, görüntü işleme algoritmalarını vs. planlamak.
Plan yapmadan direk kod yazmaya kalkarsanız, bu işi bitiremeyeceğinizi garanti ederim. İlk önce kağıt üstünde en az 3-5 gün sistemin nasıl çalışacağı planlanmalı. Daha sonra uygulamaya geçilmeli diye düşünüyorum.
Bitirme projesi falan demişsin de, okulların kapanmasına çok az bir zaman kaldı. Daha proje hakkında fikriniz yok gibi duruyor. Karamsarlık yaratmak istemiyorum da 1-2 hafta içinde bitirilebilecek bir proje değil bu.
Kaç kişilik ekibiniz var? Görüntü işlemeyi biliyor musunuz ?
Bir de projeyi biraz daha açık ifade etsen, daha görsel olarak anlatsan belki daha çok yardımcı olabiliriz.
3 kisiyiz, 16 haziran son gunumuz. matlab'den renk analizi yapmayi biliyoruz. ama bu konuda sikinti yasasak bize yardimci olabilir misiniz?
o kadar karamsar olmayin hocam. dedigim gibi, mekanik kismi falan bitti. biz zaten su an manuel olarak puzzle cozuyoruz robot ile. komutlari konumlari falan ayarladik gibi. algoritma belli. sadece matlab programini yazip, matlab sinyalini pic'e gondermeyi halledemedik. 1. sini halledicez ama 2. si sikinti. biraz daha aciklamaya calisayim:
webcam puzzle'in resmini ceker. matlab, resimdeki 6 rengin ayrimini yapar ve konumlarini belirler. cozmeye gecersek; parcalar tek tek verilmeye baslanir. her seferinde matlab parcanin rengini tanir. puzzle bozulmadan onceki konumuna ve pic'e sinyal gonderir. (sikintili noktamiz) mesela sari rengi almistir ve puzzle'daki yeri 4 numarali pozisyondur. bu durumda pic'e "4" sinyali gider. (puzzle'daki 6 konumun hepsinin koordinatlari pic'e yazildi. mesela matlab'den 4 sinyali geldiginde, servo motor 1 20 derece saga, servo 2 30 derece saga, servo 4 25 derece sola, ... dondugunde 4 numarali pozisyona ulasmis olacak robot kolu. ) bu islemi 6 sefer tekrar edecek robot.
puzzle bozulmadan onceki konumuna "GORE" pic'e sinyal gonderir
Ben projeyi anladığım şekliyle anlatıyım, yanlış varsa düzelt. Projeyi anlarsam biraz daha kolay yardımcı olabiliri. İlk okuduğumda biraz daha zor bir proje gibi gelmişti ama düzenekte kartlar vs. sabit olursa iş kolaylaşıyor.
1 - Puzzle dediğin şey sanırım 6 tane iskambil kağıdının yanyana dizilmesi gibi birşey. Her kağıdın rengi farklı. Bu kağıtlar en başta rastgele yanyana dizilmiş 6 kağıt. Atıyorum (sarı kırmızı mavi yeşil turuncu lacivert) yada (yeşil sarı kırmızı turuncu lacivert mavi ) benzeri kombinasyonlarda ilk başta diziyorsunuz.
2- Bu rastgele karıştırılmış yanyana dizili 6 farklı rengi kağıdın 1 fotoğrafını çekip matlaba atıyorsunuz.
3- Matlabta bu kağıtların konumlarını belirliyorsunuz. 1 - mavi , 2- sari vs. gibi
4- Robot kola bir kartı siz elinizle koyuyorsunuz. Webcamden bir fotoğraf karesi alıyorsunuz. Rengi tespit edip, rengin konumuna göre kartı ilk karışık görünümdeki yerine koyuyorsunuz. Bu işlemi 6 defa tekrarlıyorsunuz.
Burada anlamadığım yer robot kola kartları el ile mi yüklüyorsunuz ? Webcam başta kartları görecek konumda. Bu konumdayken robot kolu da görüyor mu? Yoksa ilk puzzle fotoğrafını çektikten sonra webcami robot kola el ile mi çeviriyorsunuz ?
quote:
Orijinalden alıntı: HITM@N
Ben projeyi anladığım şekliyle anlatıyım, yanlış varsa düzelt. Projeyi anlarsam biraz daha kolay yardımcı olabiliri. İlk okuduğumda biraz daha zor bir proje gibi gelmişti ama düzenekte kartlar vs. sabit olursa iş kolaylaşıyor.
1 - Puzzle dediğin şey sanırım 6 tane iskambil kağıdının yanyana dizilmesi gibi birşey. Her kağıdın rengi farklı. Bu kağıtlar en başta rastgele yanyana dizilmiş 6 kağıt. Atıyorum (sarı kırmızı mavi yeşil turuncu lacivert) yada (yeşil sarı kırmızı turuncu lacivert mavi ) benzeri kombinasyonlarda ilk başta diziyorsunuz.
2- Bu rastgele karıştırılmış yanyana dizili 6 farklı rengi kağıdın 1 fotoğrafını çekip matlaba atıyorsunuz.
3- Matlabta bu kağıtların konumlarını belirliyorsunuz. 1 - mavi , 2- sari vs. gibi
4- Robot kola bir kartı siz elinizle koyuyorsunuz. Webcamden bir fotoğraf karesi alıyorsunuz. Rengi tespit edip, rengin konumuna göre kartı ilk karışık görünümdeki yerine koyuyorsunuz. Bu işlemi 6 defa tekrarlıyorsunuz.
Burada anlamadığım yer robot kola kartları el ile mi yüklüyorsunuz ? Webcam başta kartları görecek konumda. Bu konumdayken robot kolu da görüyor mu? Yoksa ilk puzzle fotoğrafını çektikten sonra webcami robot kola el ile mi çeviriyorsunuz ?
ilk 3 aynen dogru hocam yazdiklarinizin. iskambil kagidi yerine 3cm*3cm olarak kare seklinde kesilmis 6 farkli renkte ayri kagit dusunun.
4. basamak itibaren soyle devam edeyim: robotun kagiti alacagi yer sabit. o yerden parcayi almasi icin gerekli servo hareketleri pic'e yazili-bu hareket 6 sefer icinde fix. el ile yaptigimiz tek sey, webcam'e her seferinde kagidin rengini gostermek. robot kolumuz 5 eksenli 6 sevo motorlu, alma islemini yapmasi icin uc kismi kiskacli. robot kolunun 2 hareketi var, birincisi "al" ikincisi "birak". robot kolunun bir reset konumu var. her seferinde "al" icin tanimlanmis, az once bahsettigim, fix servo hareketini yapacak. ayrim sadece birak kisminda olacak. (1'den 6 ya kadar olan pozisyonlara gore)
webcam-fotograf konunsunda robot kolu kafanizi karistirmasin hocam. fotograflama tamamen ayri bir unite. robot kolunun kartlari gormesine gerek yok. sadece 3,4 veya 5 neyse, matlab sinyalini pic'e iletmek yeterli. pic'de o sinyale gore yapilacak servo hareketleri belli dedigim sekilde.
robotumuzun resmi bilgisayar ile arasinda seri port ile iletisim var.
HITM@N, senin buraya yazdigin yazilar vardi, onlar neden gorunmyor sayfada acaba? 4-5 gundur internetim yoktu. donemedim sayfaya, simdide yazilarina ulasamiyorum.
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme