Bu yazımızda PCA9685 modülü kullanarak servo motorları NVIDIA Jetson Orin ile nasıl kullanacağınızı göstereceğiz.
I2C (Inter-Integrated Circuit), iki cihaz arasında seri veri iletişimini sağlayan bir haberleşme protokolüdür. Bu protokol, bir ana kontrol cihazının (master) bir veya birden fazla periferik cihazla (slave) iletişim kurmasına izin verir. I2C, birçok entegre devre, sensör, ekran ve diğer elektronik bileşenlerde yaygın olarak kullanılan bir iletişim standardıdır.
PCA9685, bir 16 kanallı PWM (Pulse Width Modulation – Darbe Genişliği Modülasyonu) sürücüsü entegresidir. Bu entegre, genel olarak çeşitli uygulamalarda motor sürücüleri, servolar ve diğer periferik cihazlarda PWM sinyalleri üretmek amacıyla kullanılabilir.
PCA9685, I2C haberleşme protokolünü kullanarak bir mikrodenetleyici veya başka bir master cihazla iletişim kurar. Bu entegre, bir dizi PWM sinyali oluşturabilir ve her bir kanalın PWM çıkışını bağımsız olarak ayarlanabilir. Ayrıca, genel PWM frekansı da yazılım tarafından yapılandırılabilir.
Bu özellikleri sayesinde PCA9685, robotik uygulamalarda, aydınlatma kontrol sistemlerinde, otomasyon projelerinde ve benzeri birçok elektronik projede kullanılır. Her bir kanalın parlaklık düzeyini ayarlamak için PWM sinyallerini kullanarak LED’leri kontrol etmek, bu entegrenin sıkça görüldüğü uygulamalardan biridir.
Neler Gerekli
- Jetson Orin Nano / Orin NX Hazır Yapay Zeka Kiti. Bu çalışmada Waveshare Orin NX 8GB kiti kullandık.
- PCA9685 Entegresine sahip servo motor sürücüsü.
- Servo motor.
- Yaptığımız örnekleri SG90 servolarının kullanıldığı bir pan/tilt üzerinde çalıştırdık
1- I2C pinlerini, sudo komutu olmadan çalıştırmak ve bu ayarı korumak için aşağıdaki komutu çalıştırın.
2- GPIO pinlerinin sistem düzeyinde kullanılması için “gpio” adında bir sistem grubu oluşturulması gerekiyor. Aşağıdaki komutu kullanarak sistem grubunu oluşturabilirsiniz.
3- Jetson’da oturum açtığınızı kullanıcıyı “gpio” gruplarına eklemek için aşağıdaki komutu kullanın.
4- Udev kuralları genellikle donanım ile ilgili olayları algılamak ve buna tepki vermek için kullanılır. Bu kopyalama işlemi, belirli bir donanım üzerinde GPIO pinlerini kullanma veya konfigürasyon ayarlarını uygulama gibi işlemlerle ilgili olabilir.
5- Aşağıdaki komut, udevadm aracını kullanarak udev kurallarını yeniden yüklemek ve cihazları tetiklemek için kullanılır.
6- PCA9685 entegresinin sürücüsü indirmek için pip3’ün Jetson’da yüklü olması gerekiyor. Eğer sisteminizde yüklüyse bu adımı geçebilirsiniz, yüklü değilse aşağıdaki komutu kullanarak pip3 versiyonunu yükleyebilirsiniz.
7- Aşağıdaki komut ile servo motorları kontrol edeceğimiz entegrenin sürücülerini, Jetson’a yükleyeceksiniz. Bu sürücüler olmadan PCA9685, Jetson ile haberleşemez.
8- Yaptığınız ayarların ve yüklemelerin geçerli olması için Jetson’ı yeniden başlatın.
9- Jetson yeniden başladıktan sonra tercih ettiğiniz metin editörü açarak aşağıdaki kodları yapıştırın ve python uzantılı olarak kaydedin. Kodtan kısaca bahsedecek olursak, bu kod PCA9685’in 0. ve 1. kanallarına taktığımız iki servonun 180 derece dönmesini sağlıyor.
10- Bir önceki adımda oluşturduğunuz kodları, python3 komutu ile çalıştırın.
Kodları çalıştırdıktan sonra servo motorlarının 180 derece hareket ettiğini göreceksiniz. Servo motorlar aksi belirtilmedikçe 0 – 180 derece arasında dönüş yapar. Buna görüş dönüş açılarıyla oynayarak farklı denemeler yapabilirsiniz.
Servo motorların kontrolünü anlattığımız NVIDIA Jetson modellerini uygun fiyata almak için mağazamızı ziyaret edebilirsiniz.
OPENZEKA HABERLERİ
Hesaplarınızda paylaşmak ister misiniz?