3 Eksenli Robot Nokta Öğretme Algoritması (Fikir)

Başlatan Elektronikprojem, 11 Nisan 2018, 17:25:41

Elektronikprojem

Merhabalar, ilgili herkesi beyin fırtınasına davet ediyorum. :)

Şimdi elimde 3 eksen kontrol edilebilen bir robot var. robot şu;
https://www.google.com.tr/search?rlz=1C1SFXN_enTR697TR697&biw=1366&bih=637&tbm=isch&sa=1&ei=-xHOWsHpMcLYwQL8g6moCw&q=janome+jr500&oq=janome+jr500&gs_l=psy-ab.3...32243.35547.0.36097.12.11.1.0.0.0.132.1164.4j7.11.0....0...1c.1.64.psy-ab..0.8.740...0j0i19k1j0i30i19k1j0i8i30i19k1.0.m_j3uG-MyeA#imgrc=WqUG-Cqmxwqw8M:

Bu robot yaklaşık 20 yılllık bir robot sürücüler hariç bütün kontrol kartlarını iptal ettim (anakartına su dökülmüş ana işlemci pert).

Kendi step motor sürücülerini kullanılabilir olduğu için 1 tane 12 giriş 15 çıkışlı kontrol kartı yaptım. Şu an için yazdığım programda cihaz ilk açılınca kendini orjin noktasına getiriyor ardından karta bağladığım joystick yardımıyla x ve y eksenlerinde motorları kontrol ediyorum. Fakat yapmak istediğim bundan daha fazlası.
Mesela bu robota 20 farklı nokta öğretip start verdiğimde o noktalar arası sürekli çalışmasını istiyorum.
Robotun motorlarının üzerinde enkoder olmadığı için adımlarla noktalar belirteceğim bi program yazmak için kolları sıvadım.
ilk başta bi program yazıp x ve y ekseninde maksimum hareket edeceği noktayı bulmak için her pulste sayı değişkenimi 1 arttırdım. Maksimum nokta iki taraf için de 3000. yani motorlar 0 dan başlayıp 3000 puls alınca maksimum noktalarına ulaşıyor.
Buradan sonra nokta öğretme kısmına geçtim. Bu kısımda algoritma işin içine giriyor.

Bu kısımda nokta öğretmek için nasıl bir algoritma kurulabilir. Mesela ilk robot orjine geldikten sonra joystickle 1000 puls verdirip ileri götürdük gittiği yere ilk nokta dedik kaydettik . Ardından 300 puls geri adım attırdık 2. nokta oldu 700.
Sonra start diye bi buton kullandık starta bastığımız an robot kayıtlı noktalar arası gezip durdu gibi.

Konu hakkında fikirleri olanları bekliyorum.Belki benim düşündüğümden farklı bir fikir gelir. Her zaman işin dışından bakanlar farklı şeyleri görür.
Teşekkürler

İlyas KAYA

Cnc kontrol programları bu işi zaten yapıor ama siz bilgisayardan bağımsız yapacaksanız start ve stop noktaları için gcode olusturmaniz lazım.
Gcode ları inceleyin olayı anlayacaksiniz.
Bunun için fırtına gerekmez esinti bile değil  :)
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

Elektronikprojem

Abi inceledim biraz ama basic e nasil uyarlanir onu anlayamadim.

askin

Merak ettiğim şu;
Sen bu aleti ciddi ciddi CNC yapıp kullanacakmısın yoksa vakit geçsin birşeyler öğreneyim kendimi geliştiriyim modundamısın?
öncelikle bu soruyu cevaplaman gerekiyor, eğer sadece belli noktalar arasında gidip gelecekse, sadece belli bir işi yapacaksa, yaptığın karta programı yazarsın hep aynı işi yapar, yok eğer ben bu CNC yi aktif olarak kullanacağım diyorsan O zaman iş değişir ve gideceğin yol diğerinden farklı olur.

Elektronikprojem

#4
Cnc olarak kullanmayı düşünmüyorum.  Yazılım algoritmamı geliştirmeye yönelik çalışmalar yapacağım.

askin

"Yazılım algoritması dediğin" CNC kontrol ünitesi yapmak anlamına geliyor, yapabilirmisin? evet yaparsın fakat ömrünün bir bölünü bu işe adaman gerekir,
Basit bir örnek vermek gerekirse: CNC makinene bir daire cizdirmeyi düşün bakalım, motorlarının dairenin her bir noktasındaki duruma göre bir sonraki noktaya; nasıl bir koordinasyon içinde hareket etmesi gerekecek?   

Açısal hareketler, dairesel hareketler, momentum, acceleration gibi ileri mühendislik bilgisi ve hesaplama gerektirir ayrıca bunu pic ile yapmanın imkanı neredeyse yok (gerçek bir CNC kontrol ünitesinden bahsediyoruz )

CNC ler ileri teknoloji makineleridir, milimetrenin binde biri kadar (mikron) mertebesinde hassastırlar, step motor değil servo motorlarla hareket ederler, motorlar hareket etmeye başladığında belli ivme ile harekete başlar ve dururlar, encoderler sayesinde eksenlerin konumu sürekli konrol edilir, vs. vs. 

Fakat amatör olarak CNC yapabilir ve kullanabiliriz, bunu da şöyle yaparız: genelde step motor kullanırız ve bu motorlarımıza step sürücü bağlayıp "MACH3" gibi bir program vasıtasıyla bigisayar üzerinden sürücü kartlarımızı kontrol ederiz.
CNC ler "gcodes" dediğimiz "G kodlarıyla" çalışırlar, açısal veya dairesel bir hareket için (başlangıç, bitiş noktası dairenin çapı vs) Gkodunun içindedir ve programımız yada kontrol ünitemiz bu gkodunu yorumlar ve motorlarımızı koordineli bir şekilde hareket ettirir.

yukarıda verdiğim program veya benzerleri üzerinde araştırma yapıp CNC makineni bilgisayar vasıtasıyla nasıl kontrol edebileceğini araştırmalısın, umarım yardımcı olmuşumdur.

Elektronikprojem

Yazınız için teşekkürler emek verip yazmışsınız fakat cnc yapmaya çalışmadığımı bellirttim size. Cnc gibi çalıştırmak için yapılması gerekenlerin bende farkındayım. Amacım sadece robotu joystick ile kontrol edip bir butonla bu noktayı kaydet demek. Ardından programı otomatik moda aldığımda kaydettiğim noktalar arası çalışmasını sağlamak. Zaten yaptım şu anda 10 nokta tanımlayıp robotu o noktalarda gezdiriyorum . Buraya yazmamın nedeni de farklı fikirleri görmek ve dağarcığımı geliştirmek.

magic_gun

Alıntı yapılan: Updating - 12 Nisan 2018, 14:40:17
Yazınız için teşekkürler emek verip yazmışsınız fakat cnc yapmaya çalışmadığımı bellirttim size. Cnc gibi çalıştırmak için yapılması gerekenlerin bende farkındayım. Amacım sadece robotu joystick ile kontrol edip bir butonla bu noktayı kaydet demek. Ardından programı otomatik moda aldığımda kaydettiğim noktalar arası çalışmasını sağlamak. Zaten yaptım şu anda 10 nokta tanımlayıp robotu o noktalarda gezdiriyorum . Buraya yazmamın nedeni de farklı fikirleri görmek ve dağarcığımı geliştirmek.


dogru yoldasın dostum , işin ucundan basayıp işini gorecek birseyler yapıp zaman içinde gelişmede saglarsın tebrikler ::)
ps:magic bubu sevdi ,,,,( aynı işi daha once kaynak robotu olarak yapmıstım )
hayal etemeden basaramazsınız
u cnt achieve w/out dreamin

alisumer

en basit yolu x ,y ve z için WORD değşkenlere attırdığın adım sayısını kaydeder istediğin yere gelince düğmeye basarsın dahili eeproma kaydedersin ama şöyle bir sorun var bu hafızanın bir yazma sınırı var sürekli nokta değiştirirsen pic kullanılmaz  olur yazma sınırına datasından bakabilirsin okumada sınır yok  . eeprom yerine spi ile sd karta yazabilir oradan sırası ile çağırabilirsiniz .
Hep meraktan

MB_77

#9
bu mesaj tarafımdan silinmiştir.

MB_77

#10
bu mesaj tarafımdan silinmiştir.

alisumer

yok tarihlere bakıyorum da benim de ihtiyacım olduğunda arama yaparım konu boş kalmışsa bir fikrim varsa tarihine bakmadan konuyu doldurmaya çalışırım belki bir başkasına yardımı olur.arduino çıktı çıkalı programlama adına yardım yapan pek site kalmadı zaten açılan konuları okuyup geçmek biraz hoyratlık bence
Hep meraktan

Powered by EzPortal