Matlab Arduino İle Resim Çizen Robot Kol Yapımı
Matlab resim işleme ile fotoğrafımızı matlaba kaydederek arduino üzerinden robot kol tarafından resmimizi çizdireceğiz.Resim Çizen Robot yapımına başlayabiliriz.
Malzemeler:
- Arduino uno
- 3 Adet 7 kg tork servo motor
- Mekaniği için lego kullanabilirsiniz
- 2 Adet sarhoş tekerlek
- Lipo pil
Bunun için öncelikle matlab arduino haberleşmesini yapmamız gerekiyor.Arduino ve matlab yazılımın aşağıdaki linkten indirelim.
Matlab’den arduinoya bağlanmak için öncelikle adioes.ino dosyasını arduinoya atın daha sonra arduino.m adındaki matlab dosyasını çalıştırın ve arduinoya bağlanmasını bekleyin.Bağlandıktan sonra finaldraw.m dosyasını açın burada fotağrafı çizilecek olan resmin adının yazılı olduğu satır var.Siz fotoğrafınızın adını oradaki satırda yazılan adla değiştirin.Fotoğrafınızı da matlab kodunun bulunduğu konuma atın.
Matlab’a resim gönderme ve koda resim tanımlama aşağıdaki şekillerde gösterildi.
Elektronik devre şeması :
Mekanik Kısım:
Robot kolun gövdeye kadar uzunluğu 20 cm ve gövdeden kalame kadar olan uzunluğu da 20 cm dir.Bu durumda ikinci eklemin ve kalemle servo arası mesafe fark etmez.İsteğiniz şekilde yapabilirsiniz.Önemli olan iki ana uzunluklardır.
Kolun ilk başlama açıları 90 derecedir.Gövdeye sabit servo ve ortadaki servo 90 derecede başlıyor.Ayrıca ilk başlama konumunda birinci kol kağıda paralel ikinci kol ise birinci kola dik olacak şekilde kağıt üstünde başlamalıdır.
Kalemi tutan servo motor ise 92 ve 85 derecelerinde kalemi indirip kaldırmaktadır.
Merhaba kod için bıraktığınız indirme kodları güncel değil sanırım çalışmıyor güncelleme gibi bir şansınız var mı?
Merhaba abi ben bunun fiyatı öğrenmek istiyorum kaç para
kaç lira?
Undefined function ‘rgb2gray’ for input arguments of type ‘uint8’.
Error in finaldraw (line 2)
i=rgb2gray(u);
bu hatayı veriyor matlab sürümü 2013
Undefined function ‘rgb2gray’ for input arguments of type ‘uint8’.
Error in finaldraw (line 2)
i=rgb2gray(u);
Arkadaşlarımla ilgi alanımız olduğu için projenizi gerçekleştirmek istedik. Ancak daha hiçbirimiz üniversitede bölümde değiliz bu nedenle daha geniş açıklamalı yapım aşaması varsa özellikle mekanik kısım için bizimle paylaşabilirseniz çok memnun oluruz.
Merhaba Sezgin bey. Rica etsem kodlama kısmının flowchart ını paylaşırmısınız.
Hocam dosya hazırlıyorum da. Bu robotumuzun kazanımları yada üstün yönleri nelerdir
selamun aleykum kardeşim. çalışmanı paylaştığın için çok teşekkür ederim. projen hakkında bi soru sorcaktım. projehocam siitesinde de paylaştığını gördüm. fakat orda servo.h kodu olan bı kısım var. ama bu sıtede göremedim. projenin içinde varmı yok mu.
cevaplarsan cok sevinirim. teşekkürler tekrardan
adioes in içerisindeymiş görememiştik. 🙂 projeye arkadasımla basladık. sık sık rahatsız edecem gibi duruyor. inşallah çok fazla rahatsız etmeyiz.
2015 matlap bağlantı kuruluyor hareket alıp duruyor neden hata veriyor
Merhaba benim bir sorum olacaktı Sezgin Bey, biz yapmış oluduğunuz sistemi tasarlamaya çalıştığmızda dediklerinizi yapıyoruz fakat Sinem Hanımın aldığı getintnum hatasının gideremedik eski sürümlerde denememize rağmen olmadı fakat matlab da resmimizin beyaz kısımları siyah, siyah kısımları beyaz oldu onda sorun yok sizden ricam biraz detay verebilirmisiniz. Bu kodu çözümlemeye çalışmalımıyız anlayamadık kodun sahibi olmadığımızdan bunu yapmakta zor olacaktır malumunuz. desteklerinizi bekliyor.
hataya dair resim linktedir:
link: i.hizliresim.com/g2y323.jpg
Resimde gördüğüm kadarıyla matlab programı çalışırken arduino kodunu atmaya çalıştınız anlamadım ? Önce arduino kodunu arduinoya yükleyin. Daha sonra matlab kodu olan finaldraw dosyasını açıp resim adını ve com numarasını girerek çalıştırın. Yine hata alırsan facebook dan mesaj at teamviewer ile bakayım.
arduino nun hangi çesidi bu elektronikçiden satın alcamda
Robotu çalıştırdım bir nıoktada sadece hata aldım değinen olmamış ama belki sizde yaşarsanız diye finaldraw.m dosyasını açtıktan sonra com3 yazan yerde arduino hangi comda ise onu seçin yoksa hata veriyor… Teşekkürler sezgin hocam yine on numarasınız paylaşımlarınız güzel açık ve hepsi de çalışan ALLAH sizden razı olsun birde alev söndüren robot paylaşırsanız seviniriz:)
Rica ederim. Alev söndüren robot projesi mevcut fakat biraz açıklayıcı olmadı düzenleme yapacağım buradan bakabilirsin http://www.robimek.com/yangin-sonduren-robot-yapimi-fire-extinguishing-robot/ İyi çalışmalar..
S.a kardeşim bende bu projeyi yapmaya çalışıyorum dediklerini yaptım calıştırmaya çalıştım servolar cok yavas hareket ediyor bide biraz zaman geçince
Error in finaldraw (line 36)
I=draw(a,I,p,t);
hatasını veriyor nedenini söyleyebilir misin
Resim boyutu büyük olduğundan kaynaklanabilir. Ayrıca uygun akım ve gerilim vermemişseniz belli bir süreden sonra enerji yetersizliğinden kısa devreye yol açabilir. Uygun enerji 5v 2A dir.
servoyu maliyeti daha uygun diye MG995 aldım güç olarak 6v 4A lik akü kullandım bundan sıkıntı çıkar mı ?
Akımı çok yüksek servoları yakabilirsin. 2 A e indirmeni öneririm. Gerilim 6v da sıkıntı olmaz.
draw dosyası ne işe yarıyor onu da çalıştırmak istedim a, I, m, n bunları istedi bi yerde eksik var yardımcı olur musun :\
O dosya ana dosyadan gelen verileri işleyip tekrar ana dosyaya gönderiyor. Sen finaldraw olan dosyayı çalıştıracaksın.
Cevabınız için teşekkür ler ama 3 tane servo varrr 11 v üçüne yeter miii anlayamadım yani üçüne toplam 5 v mu verecez ? 🙂
Servoların hepsi paralel bağlanıyor. Yani paralel bağlantıda toplam gerilim bölünmez. Bu nedenle üçüne toplamda 5v vereceksiniz. Yukarıdaki devre şemasında da görünüyor. Fakat paralel bağlantıda toplam akım bölünür. Bu nedenle de tek servo motor ne kadar akımla çalışıyor ise toplam akım da 3 servo kullanıldığı için 3 ile çarpılarak bulunur. Örneğin tek servo 500 mah akım çekiyor ise sizin güç kaynağınızın akımı 3*500 = 1500 mah olmalıdır. Sonuçta kullanacağınız güç kaynağı 5v 1500 mah olması gerekiyor.
Allah sizden razı olsun ne diyeyimmm tm o zaman lipopil i değiştirelimmm 🙁
Amin Cümlemizden. Lipo pil yerine adaptör almanızı öneririm. Çünkü adaptör stabil gerilim ve akım sağlar bu sayede servolar en sağlıklı şekilde çalışır.
biz servo tork olarak ne kullanacağımıza karar veremedik 7 kg den daha düşük motor kullanabilirmiyiz
Çalışma hızı: 0.20 sn/60°(4.8V), 0.16sn/60° (6.0V) bu değerde olan veya buna yakın tork yapan servo motorları kullanmanızı öneririm.
‘getIntNum’ was not declared in this scope kodları ardinoya yüklediğimde bu hatayı aldım sizce neden olabilir
arduino ide sürümünüz uyumsuz ya da eklediğiniz başka kütüphaneler ile fonksiyon çakışmasından kaynaklı olabilir. Öncelikle ide sürümünüzü değiştirin. Güncel ise eski sürümlerde deneyin
Hangi sürümü kullanayım çok teşekkür ederim 🙂
1.6.12 Sürümünde sorunsuz derliyor.
Çok sağol ya çok teşekkür ederim gerçekten sen de olmasan etrafımızda yardımcı olacak kimse yokk allah razı olsun senden
‘getIntNum’ was not declared in this scope
adioes:388: error: ‘isrPinAEn0’ was not declared in this scope
adioes:389: error: ‘isrPinBEn0’ was not declared in this scope
adioes:392: error: ‘isrPinAEn1’ was not declared in this scope
adioes:393: error: ‘isrPinBEn1’ was not declared in this scope
dediğiniz sürümde çalıştırdım bakın bu hatayı veriyor donanım kısmı arduino karta bağlı olmadığı için olabilir mi?
adioes:396: error: ‘isrPinAEn2’ was not declared in this scope
adioes:397: error: ‘isrPinBEn2’ was not declared in this scope
adioes:414: error: ‘getIntNum’ was not declared in this scope
exit status 1
‘getIntNum’ was not declared in this scope
yükleme tamalandı ve altta bunu gösterdiii :(sizce arduinoya sorunsuz bi şekilde yüklenmişmidir
Çalışmanız programın 6.698 bayt (20 %) saklama alanını kullandı. Maksimum 32.256 bayt.
Global değişkenler belleğin 492 byte kadarını (24%) kullanıyor. Yerel değişkenler için 1.556 byte yer kalıyor. En fazla 2.048 byte kullanılabilir.
evet yükleme sorunsuz tamamlanmış. O yazan şey arduino belleğinde ne kadar yer kapladığı hakkında bilgi veriyor.
matlb 2013 sürümünde finaldraw dosyasını çalıştırdım şu mesajı aldım:
Attempting connection ………….
Analog & Digital I/O + Encoders + Servos (adioes.pde) sketch detected !
Arduino successfully connected !
ardino.m i çalıştırmadan ardino ya direk bağlandı mı sizce ?
yapabildiniz mi projeyi
birde ekrana fotonun siyah çizgileri beyaz hali geldi 🙂 bi pencere açıldı
Arduino ya bağlanmış ve çizime başlayacaktır demektir. Eğer enerjiyi kesmemiş isen çizim yaptığını görmüşsündür. Arduino.m dosyasını çalıştırmana gerek yok. Ekrana çıkan siyah beyaz resim, orjinal resmin kenarlarının taranıp işlenmiş halidir. Yani o siyah beyaz resmin aynısını kağıda aktaracak. Sisteminiz doğru çalışmış. Tebrikler 🙂
çok teşekkür ediyoruz sana her sorumuzu mütevazi bir şekilde cevabladığın için 🙂
Kafama takılan bişey daha var bizim servo motorların torku 4.0 6.8 lipopilimiz 11.1V enerji çok fazla gelir mi yani servolar yanabilir mi 🙁
Rica ederim 🙂 11v Kesinlikle zarar verir. servoların çalışma gerilimi 4.8 ile 6v arasıdır. Tork faktörü servolarda gerilim ile değişir. Servo motorun ürün kataloğuna bakarsanız eğer orada 4.8 v ve 6 v ‘ da tork değerlerinin farklı olduğunu görürsünüz. Bu proje için 5v ideal gerilimdir. Sistem çok zorlanmayacağı için yeterlidir. Ayrıca uygun akımı da vermeniz gerekiyor.
Sizi tekrardan rahatsiz ediyorum kusura bakmayınn şimdi biz 5v 1500 ma adaptör alırsak bunu nasıl bağlayacağız donanım kısmına ?:(
Power Giriş Konnektörü Şase Tipi olanından alın. Onu kurduğunuz devrenin güç girişine bağlayın. Yani servoların artılarını bir ve eksilerini bir bağlayıp bunları da konnektörün artı ve eksi uçlarına bağlarsınız. Aldığınız adaptörü de konnektöre direk takarak çalıştırabilirsiniz. Alacağınız konnektörün çapı, adaptör ucunun çapı ile aynı olmalı. Aksi halde birbirine takılamaz.
Buradaki konnektör gibi tipinden alın >> direnc.net/power-giris-konnektoru-sase-tip–25mm
Yine çok yardımcı oldunuz sağolun varolun cevabınız için teşekkürler servoları yapıştırdınız mı legoların üstüne resimden anlayamadım ?
Servonun tabanları yapıştırıldı kanatları ise vidalandı. Lego bulamazsanız pleksi levha ile yapabilir veya cad programı ile kendiniz bir tasarım çizip 3d yazıcı ile çıktısını alabilirsiniz.
Çok teşekkür ederim sağolun varolun 🙂
Sezgin beyy bi sorum daha olacak donanım kısmında servoların üzerindeki siyah tekerlekleri nerden bulabiliriz yada yaptırabiliriz çünkü bizim aldığımız servonun aparatlarının içinde yok 🙁
Hobi elektronik malzeme satan yerlerde bulabilirsiniz. İlla da onu kullanmanıza gerek yok. Kendi kanatlarından birini de kullanabilirsiniz.
Sizi tekrardan rahatsız ediyorum kusuruma bakmayın sarhoş tekerlekleri bağlama şeklimiz mekaniği etkiler mii :(biz çapraz değilde düz bağlamayı düşünüyoruz?
Bir sorunumuz daha var şimdi sarhoş tekerleklerimiz büyük olduğu için üstüne monte ettiğimiz legolar birbirine uzak duruyor bu yüzden motor boşta kalıyor yapıştırma imkanımız olmuyor motorları sizin yapıştırdığınız yönde mi yapıştırmamız gerekiyor yoksa yan şekilde yapıştırsak olur mu :((
Sarhoş tekerlekler destek amaçlıdır.İstediğiniz gibi bağlayabilirsiniz. Sistemin esnemesini ve dengesini korusun yeterlidir. Servoların kanatları şekildeki gibi üstte oluyorsa sorun yok. Enine çevirip monte edebilirsiniz.
Çok teşekkür ederim mütevaziliğiniz için çekinmeden soru sorabiliyoruz size çok yardımcı oldunuz tekrardan allah razı olsun sağolun
Bi sorum daha olacaktı şimdi motorlar plastik olduğu için motorları metale yapıştırmak yapıştırmak biraz sıkıntıı siz nasıl bir yapıştırıcı kullandınız ?
plastik metal yapıştırıcılar kırtasiyelerde bulabilirsiniz.
Sezgin beyyy biz donanım kısmını hallettik adaptörü taktık çalışmıyor sorun ne olabilir :((( devreleri falan kurduk finaldraw dosyasını açtık çalıştırdık düzenek oynamıyor :((( bi fikir verebilir misiniz
Adaptör direk servo motorların artı ve eksi ucuna bağlanmalı ve servo motorların gnd uçları da ayrıyeten arduinonun gnd sine bağlanmalıdır. Bu şekilde yapmamış iseniz ondan kaynaklıdır.
Bizim motorlar 360 derece tam tur dönebiliyor dediğinizi yaptık motorlar çalışıyor ama haraketleri çok farklı :(( mesela kalem tutan motor 360 derece dönüyor öle yapmaması lazım sadece kalem indirip kaldırmalı :(( az bir açıyla ama tam tur dönüyor bazen yarım dönüyor bekliyor 🙁 haraketlerinin böle olmasının nedeni ne olabilir
Ardino ya yazılımı sorunsuz yükledik motorların haraketleri çok tuhaf özellikle kalem tutan 360 derece dönüyor arada anlayamadık :(((
motorları 180 derece dönenlerden almanız gerekiyordu. 360 derece dönenlerde durum farklıdır. Değiştirmeniz gerekiyor.
servo motor olarak ne tercih edeceğimizi anlayamadık ?7 kg mı olacak ?daha küçük bir motorla olur mu ?
burada servo motor olarak ne kullanmamz gerekiyor ?çok kararsız kaldık ?
Hocam ben proje olarak arduno ile istediğimiz yazıyı yazan robot aldım bu ilemi bu robot yaparmı yoksa bildiğiniz başka robot varsa sevinirim
Hocam proje ödevi olarak ardıino ile yazı yazan robot yapmamız istendi bunla istdiğimiz yazıyı yazdırabilirmiyiz yada başka bildiğiniz proje varsa yardımcı olursanız sevinirim
programda sorun oluşuyor. görüntüyü noktasal forma çevirip arduıno yı çalıştırdım ancak sadece 9 nolu pine bağlı olan motor çıkış verdi diğerleri çalışmadı.koblo bağlantı ve motorları kontrol ettim sorun yok. sorun nerede yardım edebilirmisiniz.
Sorun iki nedenden dolayı olabilir.
1- Yeterli enerji vermediğiniz diğer motorlar dönmüyor ve kısa devre yaparak portu kapattığından kaynaklı.
2- Matlab sürümünden kaynaklı olabilir. 2013 sürümünde deneyin sorunsuz çalışıyor.
Merhaba , 7kg servo motor alabileceğimiz sitenin linkini atabalir misiniz
merhaba sezgin bey bahsettiğiniz adımları teker teker yaptım matlabde görüntüyü almayı başardım.ancak bundan sonraki izlemem gereken yol nedir ben bu görüntünün kodlarına nasıl ulaşırım ve arduino uygulamasına nasıl aktarırım
Sezgin bey ingilizce olduğu için anlayamadık bulamadık karışık bir site son bir günümüz kaldı projeyi teslim etmeye ve donanımsal herşey hazır fakat kodları çalıştıramıyoruz siz yardımcı olabilir misiniz lütfen
mail adresinize indirme linki gönderdim.
Sezgin bey ingilizce olduğu için anlayamadık bulamadık karışık bir site son bir günümüz kaldı projeyi teslim etmeye ve donanımsal herşey hazır fakat kodları çalıştıramıyoruz sizin atabileceğiniz bi link yok mu yardımcı olun lütfen
merhaba R2016a da şu hataların sebebi nedir yardımcı olurmusunuz
Trial>> finaldraw
edge is not included in your installed products. These products offer ‘edge’:
Image Processing Toolbox
Error in finaldraw (line 3)
w=edge(i,’canny’,[.05,.20]);
Toolbox da alınan hatalarda sürümden kaynaklı fonksiyonun yazım standartları vardır. 2016 ya göre yazımına bakın. Ya da 2013 sürümünde sorunsuz çalışıyor onu indirin.
Biz MATLAP kullanmiyoruz bu yuzden hatalari cozemiyoruz okulumuzun sitesinde yok
matlab kendi sitesinden öğrenci sürümü indirin.
Sezgin bey biz MATLAP 2013 un lisansını bulamıyoruz lisansta hata veriyo sizin yoruma attiginiz linke de baktık olmadı tekrar hata aldık başka bi onerinz var mı ?
okulunuzun sitesinde muhakkak vardır. lisanslı sürüm
merhaba sezgin bey donanım parçalarım hazır matlapte sizin açıkladığınız gibi kodları çalıştırdım fakat bana 3 hata verdi yardımcı olabilir misiniz aceba ?
>>finaldraw
Error using rgb2gray>parse_inputs(line81)
MAP must be a m x 3 array.
Error in rgb2gray(line35)
X= parse_inputs(varargin{:});
Error in finaldraw(line2)
i=rgb2gray(u);
matlab arduino pinlerini tanıması için arduino.m dosyasını çalıştırın. matlab 2013 sürümünde sorunsuz çalışmaktadır. Hata aldığınız fonksiyon renk konstant değerlerini tanımamasından kaynaklı. muhtemelen sürümler ilgili bir durum.
Her farklı resim yüklediğimiz de finaldrawdaki kodları değiştirmemiz mi gerekiyor?
hayır. resimlerin adı ve uzantısı aynı olduğu sürece değişiklik yapmadan çalıştırabilirsiniz.
iyi günler. 7kg tork servo motor u türkiye de nasıl bulabiliriz ?
Robotsepeti veya robotistanda bulabilirsiniz.
sayfada link aşağıda diyor ama ben bulamadım lütfen bi bakarmısınız
Projede kullanılan matlab kodu http://www.robimek.com/wp-content/uploads/resim-%C3%A7izen-robot-kol.rar
matlap programını indirebileceğim bir link atarmısınız
Vallaha helal olsun 🙂 basarilar abi