Merhaba arkadaşlar bugün sizlerle RF iletşim ile Labview ve STM32F103C8T6 kullanılarak servo motor kontrolünü gerçekleştiricez. Neden bu proje ? bu soruya cevap verecek olursak arkadaşlar RF iletişim bakımından robotik uygulamalarda , kendin yap projelerinde yer alan RC araba, RC tank,Drone,kumanda devreleri ve tüm hobi sayısal elektronik devrelerinin temelini oluşturması , Servo motorun seçilmesinin nedeni ise anaolog veya dijital sinyallere verdiği ani tepki, güneş takip sistemleri, Soğuk hava depolarında ve mekatronik test düzeneklerinde kullanılması beni bu projenin yapımına götürmüştür.Bu cevaptan sonra isterseniz projeye adım adım başlayabiliriz arkadaşlar;
GEREKSİNİM PROGRAMLARI
İlk olarak aşağıda verilen linkleri tıklayarak programları indirelim ,
- Labview programını kendi bilgisayarınızın özelliğine ve bu programa ait istediğiniz sürümü Labview ifadesine tıklayarak,
- STM32F103C8T6 kartına ait yapılan yazılımın derlenmesi için Arduino IDE ifadesine tıklayarak,
- Arduino IDE programında kullanılan STM32 serisine ait kartların dosyalarına Arduino for STM32 ifadesine tıklayarak indirilir .
- NOT : Arduino for STM32 linkinden İndirilen bu dosyalar .zip dosyasından çıkartılır ve ardından ise OS (C) -> Program files(x86)->Arduino -> hardware dosyasının içerisine kopyalanır.
PROJENİN AMACI
Evet arkadaşlar programlarımızı indirip kurduk şimdide bu projede neler öğreneceğiz sorusuna aşağıdaki maddelerle açıklayacak olursak;
- STM32F103C8T6 kartının özelliklerini ne olduğunu , RF iletişim protokolü, Servo Motor kavramlarını öğrenmek.
- STM32F103C8T6 kartına ait gömülü yazılım kodları , açık kaynak kodu olarak kullanılarak yazılımda kullanılan komutlarının kullanım amaçlarını öğrenmek.
- STM32F103C8T6 kullanılarak PC ile nasıl haberleşeceğini göstermek ve öğrenmek.
TEORİK BİLGİLER
STM32F103C8T6 Kartı ve Özellikleri ;
Evet arkadaşlar STM32F103C8T6 kartı STM32F103xx serisine aittir ve en yüksek çalışma frekansı 72 MHz frekanstır. Bu kart ARM®Cortex®-M3 32-bit RISC çekirdeği mimarisine sahiptir. Programların yüklenebilmesi için 128 kb’a kadar flash bellek ve 20Kbayt kadar ise SRAM’a sahiptir. PLL konfigürasyonu için iki adet APB veriyoluna sahiptir. STM32F103C8T6 iki adet 12 bit ADC, üç adet genel amaçlı 16 bit zamanlayıcı ve bir adet PWM zamanlayıcı ve standart ve gelişmiş iletişim arabirimlerine sahiptir. İletişim arabirimleri olarak ise içerisinde iki adet I2C ve SPI, üç adet USART, bir USB ve bir CAN-BUS arabirimi bulunur. Çalışma gerilimi 2.0 ile 3.6 volt aralığındadır. Çalısma sıcaklığı ise -40 C ile +85 C aralığındadır.
RF İletişim Nedir ?
RF ,radyo frekansı demektir. Bir diğer deyişle elektriksel sinyalin istenilen dalga boyunda iletilmesidir ve elektronik devrelerde genellikle iki devrenin haberleşmesi için kullanılır. RF devreleri iki türdür bunlar alıcı verici devrelerdir. Bu iki devreyi genellikle 2 tane veya 1 tane mikro işlemci kontrol eder. Çalısma frekansına göre Radyo frekansı için bir frekansa ihtiyaç vardır ve bu frekans ayarı ya donanımla yada yazılım ile ayarlanabilir.
RF Modül (hc-11)
Seri RF modülü, düşük maliyetli, yüksek performanslı olup 434 MHz’de çalışmaktadır. Bunun yanında veri alma ve aktarma kontrolü için otomatik kurulum ile küçük boyutlu, yüksek çıkış gücü, yüksek hassasiyet, uzun iletim mesafesi ve yüksek iletişim veri hızı sunar. UART arabirimi ile yalnızca UART verilerini sağlayan kablosuz veri aktarımını gerçekleştirmek kolaydır. Ayrıca bu modülü kullananlar UART baud hızını, frekansını, çıkış gücünü, veri hızını, frekans sapmasını, bant genişliği vb. parametrelerini isteğe bağlı olarak belli komutlar ile ayarlayabilirler. Dikkat edilecek husus bu modül ayrı ayrı çalışamaz, iletişim kurmak için en az 2 adet gerekecektir.
Servo Motor Nedir ?
Servo motorlar DC motorların temelini kullanırlar. Fakat dc motorlara ek olarak bünyesinde DC motor, dişli sistemi ve elektronik mil pozisyon ve kontrol devresi bulunur. Servo motorlar milin kaç derece döndüğünü ve hangi hızda döndüğünü algılar ve girişe geri besleme olarak verir.Böylece girişte istene durum ile çıkış arasında bir sinyal meydana gelir. Bu sinyal dijital olarak servo motora bildirilir. Böylece pozisyon kontrol devresi kaç tur atacağını bilir ve o kadar tur atar. R/C tipi servolarda ise encoder yoktur.Bunun yerine mile bağlanmış ve dönüşü algılayan potansiyometre vardır. Bu tip servo motorlar PWM ile çalışırlar.
Bu çalışmamızda R/C servo motor olarak SG90 model servo motor kullanılacaktır. Bu servo motor ile ilgili temel bilgileri verecek olursak;
- Bu servo motorların kontrolünde PWM sinyalinin DUTY CYCLE değeri çok önemlidir. Duty Cycle değerine göre servo milinin açısı belirlenir.
- SG90 servo motorunun periyodu 20 ms’dir. Duty cycle değeri %5 yapıldığı zaman servo motorun mili 0 derecede , %7.5 yapıldığında 90 derece , %10 yapıldığı zaman ise 180 derece dönmektedir.
MALZEME LİSTESİ
Proje kapsamında teorik bilgiler verildikten sonra projenin devamı için gerekli olan malzemeler aşağıdaki tabloda yer verilmiştir.
MALZEME ADI | MALZEME ADET | MALZEME ADI | MALZEME ADET |
Breadboard | 2 | *** | *** |
STM32F103C8T6 | 1 | *** | *** |
Data Kabloları | N TANE | *** | *** |
SG90 | 1 | *** | *** |
HC-11 | 2 | *** | *** |
USB TTL Dönüştürücü | 1 | *** | *** |
ST-LİNK V2 | 1 | *** | *** |
*** | *** | *** | *** |
ŞEMATİK DEVRE
Bu projenin şematik bölümü fritzing programında çizilmiştir. Şematik kısmına bakılacak olursa seri iletişim iki kısımdan meydana gelmiştir. 1. kısımda veri gönderilip alınması PC USB TTL dönüştürücü RF modül sıralamasını izlemiştir. 2. kısımda ise 1.kısımdan gelen veri RF Modül STM32F103 sıralaması izlemiş ve ardından STM32 den RF modül yardımıyla PC ye gönderilmiştir. RF modül, servo motor ve STM32F103C8T6 kartının 5V kısmından besleme yapılmıştır.
NOT:5V kısmına bağlı 3.3 V regületör entegresi vardır bu bakımdan kartın 5V kısmından beslenme kısmı sorun yaşatmamaktadır.
KAYNAK KODLARI
Bu projenin gömülü yazılımı Arduino IDE derleyecisinde derlenmiştir. Komutlara bakılacak olursa her satır yanında. ‘ // ‘ ifadelerinin yanında açıklamaları bulunmaktadır . Kaynak kodlarının yanındaki açıklamaları dikkate alarak proje çalışmanıza devam etmeniz önerilir.
/* Program Adı :RF ile Servo Motor kontrolü Donanım : STM32F103C8T6 Derleyici : Arduino IDE 1.8.5 MCU : 72 MHz Yazan : Adil Teoman Kurt Adres : https://electrolog.blog */ #include <Servo.h> const int ServoPals =25; // STM32F103 kartının B9 pini ServoPals olarak betimleniyor int deger; //deger adında değişken tanımlanıyor String inString=""; // inString adında string tanımlanıyor Servo servoKontrol;// servo kütüphanesi servoKontrol olarak tanımlanıyor void setup() { Serial.begin(9600); //Seri iletişim başlatılıyor ve Baudrate 9600 yapılıyor servoKontrol.attach(ServoPals);// Servoya ait PWM sinyali servoPals değişkeni ile eşleştiriliyor } void loop()// İşlem yapılacak bölüm { while (Serial.available() > 0)// Veri gelinceye kadar while döngüsü işletilmez { int data=Serial.read(); // Seri iletişim hattan gelen veri okunuyor if( isDigit(data)) //gelen karakterler dizi haline getiriliyor { inString +=(char)data; } if (data == "\n") //Gelen verinin son karakteri newline komut geince bu kısım işler { deger= inString.toInt(); //Oluşturulan string integer'a dönüştürülüyor deger=map(deger,0,179,0,179);//deger ifadesi map komutu ile eş açıya bölünüyor servoKontrol.write(deger);//deger ifadesi servonun chipine gönderiliyor Serial.print("Servo motor derece : "); //PC ye tırnak içerisinde bulunan ifade gönderiliyor Serial.println(deger); // PC ye açı değeri gönderiliyor delay(15); // 15 milisaniyelik bekleme konuluyor inString=""; //String ifadesine boş string gönderiliyor } } } }
LABVIEW ARAYÜZ PANELİ
Bu projenin arayüz programı Labview programı ile oluşturulmuştur . Programın ‘Comport Settings’ bölümü ile USB TTL dönüştürücü iletişime geçmek için yapılan ayarları, ‘Data Sent’ ile servo motor kontrolü ve son olarak ‘Data Received ‘ kısmı ile STM32F103 den gönderien verilerin yazıldığı bölümdür. ‘Data Sent’ kısmında ise bulunan anahtar ile servo motorun kaba veya hassas kontrolü yapılmaktadır.
PROJENİN VİDEOSU
Bu projede hazırlanan Labview programına ait arayüzünün STM32F103C8T6 ile gerçek zamanlı elektronik devresi ile ilgili çalışmayı anlatan videoya Labview +STM32F103C8T6+RF ifadesine tıklayarak izleyebilirsiniz.
EK DOSYALAR
Bu bölüm ise Labview arayüz dosyasının .exe dosyasını , STM32F103C8T6 için yazılan gömülü yazılımının .bin uzantılı dosyasını içermektedir.
BİLGİLENDİRME
Proje hakkında merak ettiklerinizi iletişim adresinden sorabilir veya yorum kısmına yazabilirsiniz arkadaşlar projede herkese iyi çalışmalar.
Hoşçakalın…..
Gercekten ayrintili anlatilmiş.. Başarilarin devami dilegiyle…
BeğenBeğen
İyi dilekleriniz için çok teşekkür ederim
BeğenBeğen