6 eksenli robot kol için kontrol yazılımı / Client-Server ilişkisi (Python+Raspberry Pi)

oaykac

Üye
Katılım
5 Eyl 2021
Mesajlar
33
Puanları
1
Yaş
44
6 eksenli kolun yazılımını yapıyorum ancak yardıma ihtiyaç var. İnceledğim bir çok sistemde yazılım olarak Python kullanılıyor. Aygıta (robota) TCP/IP socket üzerinden bağlantı yapılıp veri gönderilip alnıyor. TCP/IP socket veri iletimi kullanılmasının sebebi bu yöntemin kararlı ve güvenli olması.
Yani
Python:
ROBOT_IP = '192.168.0.100'   #IP address of the robot
ROBOT_PORT = 10000           # Port used by the robot to receive commands
robot = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #Create the socket object robot
gibi bir bağlantıyla başlayıp robota bağlanılıp send / recv metotları ile veri gönderip alınıyor. Buraya kadar durumu anlıyorum. Ancak anlamadığım şu: Bunu yaparken verilerin gönderildiği taraf "client" oluyor. Client tarafından gelen isteğe ise cevap veren "server", yani robot olması gerekiyor. Bu durumda robot dediğimiz bellek Raspberry Pi gibi bir aygıt olmalı. Yani bir donanıma yüklenmiş yazılım(firmware) olmalı. Client dan gelen istek/veri işlenir (örneğin x numaralı pinlere komut verip motorları çalıştırmak veya raspberry pi a bağlı bir sensörün verisini okumak gibi), daha sonra yapılan işleme göre serverdan(robottan) geri bildirim yapılır client a. Client ise cevaba göre aksiyon alır.
Ancak sorum şu: raspberry pi- ki bu işlemde sıkça kullanılan bir aygıt - arduino gibi komutları belleğinde tutmuyor sürekli. Yani siz python komutunu çalıştırıp raspberry pi dan bişey yapmasını istemeniz lazım. Ama yazılım kalıcı olarak yuklenemediğine gore nasıl oluyorda server gibi kullanılıyor raspberry pi?

Umarım sorumu anlatabilmişimdir. :)

Örnek olarak Meca500 robotu bu şekilde çalışıyor gördüğüm kadarıyla. Hatta şu sayfada konuyu anlatmış.
myCobot ve Dorna robotlarda bu şekilde çalışıyor.

Bilgisi olanların görüşlerini bekliyorum.
 
Son düzenleme:
Verilerin gönderildigi tarafın client olması oldukca mantıklı.
Client olarak bir pc oldugunu düşünelim ve robot kolu çaalıştırdıgımızı düsünelim.
Server sürekli olarak dinleme modunda olacak ve verilecek emirlere göre iş yapacak.Yani ana kumanda client(verileri gönderen) tarafında olacak.
Düşüninki çok büyük bir dosyayı(G code) çalıştırmanı gerekti,bu sayede işi yapan tarafta(server) çok büyük bir hafızaya ihtiyaç olmaz.Server kendine gelen bilgileri işler,hafızasındaki işler bitince client den kendine gelen hazırmısın sorusuna cevap alınca yeni bilgileri gönderir.Bu sayede işi yapan tarafta çok büyük hafızaya ihtiyacımız olmamış olur.
Ayrıca rasspbery pi de çalıştırma dosyaları kalıcı olarak sd kartta vs de tutulur,hatta ilk çalıştıgında sistem kendini hazırladıktan(boot) sonra sizin yazdıgınız çalıştırma dosyasıda otomatik olarak başlatılır,sistem otomatik olarak referanslarına gider ve ardından client tarafından gelen istekler işlenir.
İşin özü,birine bir iş yaptıracagınız zaman "şunu yap" dediginizde sizi dinleyen ve söyledikleriniz anlayan birine ihtiyaç vardır.
 
Evet. Bu ilişki tam da böyle yürümeli. Sanırım son söylediğiniz gibi server olarak kullanılacak olan raspberry pi için özel bir imaj dosyası(firmware) hazırlanıp hard diske yükleniyor ve işletim sistemi açıldığında server.py gibi bir dosyayı otomatik açıyor. Ya da herhangi bir raspberry pi işletim sistemi açıldığında server.py gibi bir dosyayı dire açıyor. server.py çalıştığında kütüphaneleri, class ları ve fonksiyonları yüklüyor ve ardından dinleme moduna(listen) geçip client tan komut/bağlantı bekliyor. Mantıklı...
Olay server.py dosyasını raspberry pi ile başlatmak... Başladığı anda da sürekli dinliyor olacak.

Bu işlemi yaptım. Her şey olması gerektiği gibi çalıştı: Bir server.py dosyasını raspberry pi a yükledim ve çalıştırdım. Farklı bir PC den de client dosyası çalıştırdım. Socket yöntemi ile IP üzerinden bağlayıp aynı port üzerinde veri alışverişi yaptırdım. Client dan veri gönderip raspberry pi üzerindeki motorları çalıştırdım. Güvenli bir şekilde çalıştı.
 
hangi programlari arac gerecleri kullandiniz acaba . örnek dosya paylasmaniz mumkun mu ?
 

Forum istatistikleri

Konular
127,959
Mesajlar
913,914
Kullanıcılar
449,606
Son üye
rasit.

Yeni konular

Geri
Üst