SlideShare a Scribd company logo
1 of 17
Download to read offline
T.C.
B˙ILEC˙IK ¸SEYH EDEBAL˙I ÜN˙IVERS˙ITES˙I
MÜHEND˙ISL˙IK FAKÜLTES˙I
B˙ILG˙ISAYAR MÜHEND˙ISL˙I ˘G˙I BÖLÜMÜ
RC SERVO MOTOR KONTROLÜ
˙IBRAH˙IM AL˙I MET˙IN
B˙ILEC˙IK
30 Mart 2015
T.C.
B˙ILEC˙IK ¸SEYH EDEBAL˙I ÜN˙IVERS˙ITES˙I
MÜHEND˙ISL˙IK FAKÜLTES˙I
B˙ILG˙ISAYAR MÜHEND˙ISL˙I ˘G˙I BÖLÜMÜ
RC SERVO MOTOR KONTROLÜ
˙IBRAH˙IM AL˙I MET˙IN
B˙ILEC˙IK
30 Mart 2015
ÖZET
Ödevin Amacı
Bu projemizde, FPGA kiti ile 1 adet PWM modul tasarlayaca˘gız. PWM modülümüzü, RC
Servo motor sürmek için kullanaca˘gız. RC Servo motorlar model hobide kullanılan mo-
torlardır.RC (radio Control) Hobi 2 yıldır ilgilendi˘gim birçok model kullandı˘gım tavsiye
edebilece˘gim çok güzel bir u˘gra¸stır.
Ödevin Kapsamı
Projem FPGA kitinde pwm modülü olu¸sumunu, kendi içinde üretilen clock sinyalinin
motorun hareketinde kullanımı hakkında ki genel yapıyı içermektedir.
Sonuçlar
Sonuç olarak FPGA kitimize ba˘glı olan servo motorlarımız belirli bir açı süpürmektedir.
ii
ABSTRACT
Homework Objective
In this project, one with FPGA device we designed PWM module. Our PWM module, we
will use the RC servo motor to drive.
Scope of Homework
My project FPGA device formation PWM module contains general structure on the use
of clock signals generated by the movement of the engine itself.
Results
In conclusion, our servo motor connected to the FPGA device sweeps a certain angle.
iii
˙Içindekiler
ÖZET ii
ABSTRACT iii
¸SEK˙IL L˙ISTES˙I v
1 RC SERVO MOTOR 1
1.1 Servo Motorun Özellikleri . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 VHDL ile SERVO MOTOR KONTROLÜ 3
3 ALTERA ile RC SERVO BA ˘GLANTILARIM 6
4 DENEYSEL SONUÇLAR 7
5 EKLER 8
5.1 RC Servo Motor Kontrol Kodlarım . . . . . . . . . . . . . . . . . . . . . 8
5.1.1 pwmtop.vhd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.1.2 clk64kHz.vhd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.1.3 pwm.vhd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6 KAYNAKLAR 11
iv
¸Sekil Listesi
1 Servo Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 PWM Modülü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
3 Servo Motor Açısal Pozisyonu . . . . . . . . . . . . . . . . . . . . . . . 2
4 Vhdl Ana Ekranımız . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5 Vhdl Clock Sinyali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
6 Vhdl Pwm Üretici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
7 Pin Planer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
8 Servo Motor Ba˘glantıları . . . . . . . . . . . . . . . . . . . . . . . . . . 6
9 Vcc , GND ve PWM ba˘glantısı . . . . . . . . . . . . . . . . . . . . . . . 6
v
1 RC SERVO MOTOR
R/C Servo Motor dedi˘gimiz ¸sey dc akımla çalı¸san ve istenilen açı aralı˘gında dönen moto-
rardır. R/C , Radio Controlled anlamına gelir. Servco motorlar DC Motorların temel man-
tı˘gını kullanırlar. Fakat buna kar¸sın elektronik pozisyon kontrol devresi ve elektronik ¸saft
gibi ekstra bile¸senleri vardır. Servo motor ¸saftın kaç derece ve hangi hızda döndü˘günü al-
gılar ve giri¸se bunu geri besleme olarak verir. Motorun pozisyonunu algılamak için rotora
takılı bir potansiyometre bulunur. Bu potansiyometreden gelen analog de˘ger ile inputtaki
sinyal kar¸sıla¸stırılır ve output olarak motorun yeni pozisyonu kontrol edilir.[1]
¸Sekil 1: Servo Motor
R/C servo motorun pozisyonunu kontrol etmek için PWM sinyali kullanılır. Motoru’un
inputuna gelen PWM sinyalinin görev çevrimine(duty cycle) göre motor, pozisyon de˘gi¸s-
tirir. R/C Servo Motorlarda pozisyon açısal derece esasına göre kontrol edilir. Pozisyon
kontrol devresi PWM sinyalinin görev çevrimine göre dönece˘gi dereceyi hesaplar. PWM
sinyalinin çevrim süresi aynı kaldı˘gı müddetçe motor pozisyon de˘gi¸stirmez.
¸Sekil 2: PWM Modülü
1
Yalnız önemli olan nokta ¸sudur ki; servo motorda dönmenin gerçekle¸sebilmesi için PWM
siyalinin frekansı 50 Hz olmalıdır. Yani kontrol sinyalinin periodu 20 ms olmalıdır. 0
ve 180 derece arasındaki pozisyonlar PWM sinyalinin görev çevrimi süresinin 1 ms ile
2 ms arasında gerçekle¸sir. PWM sinyalinin 1 ms görev çevrim süresi için servo motor
0 derecelik pozisyondadır. ¸Semadan da görüldü˘gü gibi 0.5 ms lik ve 2 ms lik çevrim
sürelerinde servo motorun pozisyonu 90 derece de˘gi¸sir.
Servo motorların supply voltajı 4.5 volt ile 6 volt arasında de˘gi¸sir. Bu voltaj de˘gerleri
motorun tork’una göre de˘gi¸skenlik gösterir. R/C servo motorların digital olanlarıda vardır.
Bu motorlar normale göre daha hassas açı ile dönerler.
¸Sekil 3: Servo Motor Açısal Pozisyonu
1.1 Servo Motorun Özellikleri
- Di˘ger motor türlerine göre daha hassastır.
- Açısal dönme yöntemi (yani encoder) ile çalı¸smaktadır.
- Bir sürücü ile kontrol edilirler.
- Endüstride çok yaygın bir ¸sekilde kullanılmaktadır.
- Mikrobilgisayarlar tarafından kolayca kontrol edilebilirler.
- Dönme esnasında olu¸san hata sadece adım hatasıdır.
2
- Hızı programlama yoluyla ayarlanabilir.
Uygulama alanlarına örnek verecek olursak CNC makineler, robot kolları, endüstriyel
ta¸sıma sistemlerini örnek verebiliriz. Servo motorlar da çıkı¸s; mekaniksel konum, hız veya
ivme gibi parametrelerin kontrol edildi˘gi bir düzenektir.
2 VHDL ile SERVO MOTOR KONTROLÜ
Quartus2 11.0 programını kullanarak Vhdl programlama dilince kodlamalarımızı gerçekle¸stirdik.[?]
¸Sekil 4: Vhdl Ana Ekranımız
burada diger vhdl sayfalarında kodladıgımız clock sinyalini ve pwm modül kodlamaları-
mız ça˘gırıyoruz.
3
¸Sekil 5: Vhdl Clock Sinyali
Bu vhdl kodlarımızda devremizin çalı¸sması için kendi içinde gerekli olan 50Mhz’lik clock
sinyalinin çalı¸sması için gereli kodlar yazılıyor.
¸Sekil 6: Vhdl Pwm Üretici
Programımızda, peryodu 20 ms olan bir adet PWM sinyali üretmemiz gerekecek.
Biz Geli¸stirme bourdumuzda 50 MHz’lik (20 ns) bir clk sinyali kullanaca˘gımız. 20 ms pe-
riodunda bir sinyal üretmek için, programımızda 1 adet counter de˘gi¸skeni tanımlayaca˘gız
4
ve Counter’ın üst sınırını ise (20ms/20ns) 1000 000 olarak belirleyece˘giz.
¸Sekil 7: Pin Planer
burada ise kitimizde ki giri¸s ve çıkı¸slarımızı ilgili pinlere atama i¸slemi gerçekle¸stiriliyor.
Kodlama ve pin atama i¸slemimizi bu ¸sekilde gerçekle¸stirdiktan sonra programımızın ça-
lı¸smasını test edelim.
5
3 ALTERA ile RC SERVO BA ˘GLANTILARIM
¸Sekil 8: Servo Motor Ba˘glantıları
¸Sekil 9: Vcc , GND ve PWM ba˘glantısı
6
4 DENEYSEL SONUÇLAR
Çalı¸smamın uygulamasını https://www.youtube.com/watch?v=CqO3goueqEI
linkindeki kanalımdan izleyebilirsiniz.
7
5 EKLER
5.1 RC Servo Motor Kontrol Kodlarım
5.1.1 pwmtop.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_unsigned.all;
-----------------------------------------------------
entity pwm_top is
port(
clr : in std_logic;
clk : in std_logic;
duty : in std_logic_vector (7 downto 0);
pwm : out std_logic
);
end pwm_top;
-----------------------------------------------------
architecture pwm_top of pwm_top is
signal new_clock : std_logic;
begin
clk_div: entity work.clk64kHz
port map(
clk => clk, reset => ’0’, clk_out => new_clock);
Pulse: entity work.pwm
port map(
clr => clr, clk => new_clock, duty => duty, period => "11001000", pwm => pwm);
end pwm_top;
5.1.2 clk64kHz.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity clk64kHz is
Port (
clk : in STD_LOGIC;
reset : in STD_LOGIC;
clk_out: out STD_LOGIC
);
end clk64kHz;
architecture Behavioral of clk64kHz is
signal temporal: STD_LOGIC;
signal counter : integer range 0 to 4999 := 0;
8
begin
freq_divider: process (reset, clk) begin
if (reset = ’1’) then
temporal <= ’0’;
counter <= 0;
elsif rising_edge(clk) then
if (counter = 4999) then
temporal <= NOT(temporal);
counter <= 0;
else
counter <= counter + 1;
end if;
end if;
end process;
clk_out <= temporal;
end Behavioral;
5.1.3 pwm.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_unsigned.all;
-----------------------------------------------------
entity pwm is
port(
clr : in std_logic;
clk : in std_logic;
duty : in std_logic_vector (7 downto 0);
period : in std_logic_vector (7 downto 0);
pwm : out std_logic
);
end pwm;
-----------------------------------------------------
architecture pwm of pwm is
signal count : std_logic_vector(7 downto 0);
begin
cnt: process(clk, clr) -- 4 bit counter
begin
if clr = ’1’ then
count <= "00000000";
elsif clk’event and clk = ’1’ then
if count = period -1 then
count <= "00000000";
else
count <= count +1;
end if;
end if;
end process cnt;
pwmout: process(count, duty)
begin
if count < duty then
9
pwm <= ’1’;
else
pwm <= ’0’;
end if;
end process pwmout;
end pwm;
10
6 KAYNAKLAR
Kaynaklar
[1] http://elektroprog.org/?p=5638
11

More Related Content

What's hot

What's hot (20)

用Raspberry Pi 學Linux I2C Driver
用Raspberry Pi 學Linux I2C Driver用Raspberry Pi 學Linux I2C Driver
用Raspberry Pi 學Linux I2C Driver
 
RISC-V Online Tutor
RISC-V Online TutorRISC-V Online Tutor
RISC-V Online Tutor
 
FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)
 
ASIC Design.pdf
ASIC Design.pdfASIC Design.pdf
ASIC Design.pdf
 
Verilog HDL
Verilog HDLVerilog HDL
Verilog HDL
 
Floorplanning.pdf
Floorplanning.pdfFloorplanning.pdf
Floorplanning.pdf
 
ASIC vs FPGA
ASIC vs FPGAASIC vs FPGA
ASIC vs FPGA
 
Electronic Hardware Design with FPGA
Electronic Hardware Design with FPGAElectronic Hardware Design with FPGA
Electronic Hardware Design with FPGA
 
VHDL/FPGA
VHDL/FPGA VHDL/FPGA
VHDL/FPGA
 
Pic16f877a microcontroller based projects list _ PIC Microcontroller.pdf
Pic16f877a microcontroller based projects list _ PIC Microcontroller.pdfPic16f877a microcontroller based projects list _ PIC Microcontroller.pdf
Pic16f877a microcontroller based projects list _ PIC Microcontroller.pdf
 
Basics of vlsi
Basics of vlsiBasics of vlsi
Basics of vlsi
 
Fundamentals of FPGA
Fundamentals of FPGAFundamentals of FPGA
Fundamentals of FPGA
 
Dr.s.shiyamala fpga ppt
Dr.s.shiyamala  fpga pptDr.s.shiyamala  fpga ppt
Dr.s.shiyamala fpga ppt
 
Synchronous and asynchronous clock
Synchronous and asynchronous clockSynchronous and asynchronous clock
Synchronous and asynchronous clock
 
Zynq architecture
Zynq architectureZynq architecture
Zynq architecture
 
SOC Application Studies: Image Compression
SOC Application Studies: Image CompressionSOC Application Studies: Image Compression
SOC Application Studies: Image Compression
 
ASIC VS FPGA.ppt
ASIC VS FPGA.pptASIC VS FPGA.ppt
ASIC VS FPGA.ppt
 
zynq.ppt
zynq.pptzynq.ppt
zynq.ppt
 
Advances in Verification - Workshop at BMS College of Engineering
Advances in Verification - Workshop at BMS College of EngineeringAdvances in Verification - Workshop at BMS College of Engineering
Advances in Verification - Workshop at BMS College of Engineering
 
ASIC DESIGN FLOW
ASIC DESIGN FLOWASIC DESIGN FLOW
ASIC DESIGN FLOW
 

Similar to FPGA ile RC Servo Kontrolü

MİKRODENETLEYİCİLER İLE MOTOR UYGULAMALARI2.pptx
MİKRODENETLEYİCİLER İLE MOTOR UYGULAMALARI2.pptxMİKRODENETLEYİCİLER İLE MOTOR UYGULAMALARI2.pptx
MİKRODENETLEYİCİLER İLE MOTOR UYGULAMALARI2.pptxordulu1
 
Siemens Endüstriyel Otomasyon ve Sürücü Teknolojileri Fiyat Listesi 2014 Mart
Siemens Endüstriyel Otomasyon ve Sürücü Teknolojileri Fiyat Listesi 2014 MartSiemens Endüstriyel Otomasyon ve Sürücü Teknolojileri Fiyat Listesi 2014 Mart
Siemens Endüstriyel Otomasyon ve Sürücü Teknolojileri Fiyat Listesi 2014 MartBerh Elektromekanik Otomasyon
 
Temel plc komutlarına giriş
Temel plc komutlarına girişTemel plc komutlarına giriş
Temel plc komutlarına girişEmreYlmaz84
 
Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...
Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...
Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...tolgasaglam
 
Led'lerle havaya yazı yazma
Led'lerle havaya yazı yazmaLed'lerle havaya yazı yazma
Led'lerle havaya yazı yazmaProje Okulu
 
ABB Otomasyon Ürünleri Fiyat Listesi- En İyi İskontolar İçin Arayınız
ABB Otomasyon Ürünleri Fiyat Listesi- En İyi İskontolar İçin ArayınızABB Otomasyon Ürünleri Fiyat Listesi- En İyi İskontolar İçin Arayınız
ABB Otomasyon Ürünleri Fiyat Listesi- En İyi İskontolar İçin ArayınızBerh Elektromekanik Otomasyon
 
Adeon Titreşim Akustik Verilere Dayalı Kalite Kontrol Test Sistemi
Adeon Titreşim Akustik Verilere Dayalı Kalite Kontrol Test SistemiAdeon Titreşim Akustik Verilere Dayalı Kalite Kontrol Test Sistemi
Adeon Titreşim Akustik Verilere Dayalı Kalite Kontrol Test Sistemiumutmuratgok
 
ASANSÖR SİSTEMLERİ KONTAKTÖR SEÇİMİ.pdf
ASANSÖR SİSTEMLERİ KONTAKTÖR SEÇİMİ.pdfASANSÖR SİSTEMLERİ KONTAKTÖR SEÇİMİ.pdf
ASANSÖR SİSTEMLERİ KONTAKTÖR SEÇİMİ.pdfYcelToksz
 
Abb drive plc_motor_fiyat_listesi
Abb drive plc_motor_fiyat_listesiAbb drive plc_motor_fiyat_listesi
Abb drive plc_motor_fiyat_listesiAsghar Khan
 
Zybo with Pmod Modules
Zybo with Pmod ModulesZybo with Pmod Modules
Zybo with Pmod ModulesMelek Sönmez
 
Hıza duyarlı kasis sunum
Hıza duyarlı kasis sunumHıza duyarlı kasis sunum
Hıza duyarlı kasis sunumgokhan1985
 
Plc dokumani
Plc dokumaniPlc dokumani
Plc dokumanisersld91
 
Emotron Hız Kontrol Cihazı
Emotron Hız Kontrol CihazıEmotron Hız Kontrol Cihazı
Emotron Hız Kontrol CihazıSERKANTAMTURK
 
EMOTRON HIZ KONTROL CİHAZI
EMOTRON HIZ KONTROL CİHAZIEMOTRON HIZ KONTROL CİHAZI
EMOTRON HIZ KONTROL CİHAZISERKANTAMTURK
 
FPGA Tabanlı 3D Modelleme Cihazı Tasarımı
FPGA Tabanlı 3D Modelleme Cihazı TasarımıFPGA Tabanlı 3D Modelleme Cihazı Tasarımı
FPGA Tabanlı 3D Modelleme Cihazı TasarımıÖmer Faruk Akgül
 
St1000 ve st2000 plus otopilot kullanma kılavuzu
St1000 ve st2000 plus otopilot kullanma kılavuzuSt1000 ve st2000 plus otopilot kullanma kılavuzu
St1000 ve st2000 plus otopilot kullanma kılavuzusyhayta
 
Altivar process yeni nesil sürücü sistemleri
Altivar process yeni nesil sürücü sistemleriAltivar process yeni nesil sürücü sistemleri
Altivar process yeni nesil sürücü sistemleriRamazan Tunçer
 

Similar to FPGA ile RC Servo Kontrolü (20)

MİKRODENETLEYİCİLER İLE MOTOR UYGULAMALARI2.pptx
MİKRODENETLEYİCİLER İLE MOTOR UYGULAMALARI2.pptxMİKRODENETLEYİCİLER İLE MOTOR UYGULAMALARI2.pptx
MİKRODENETLEYİCİLER İLE MOTOR UYGULAMALARI2.pptx
 
Siemens Otomasyon Aralık 2015 Fiyat Listesi
Siemens Otomasyon Aralık 2015 Fiyat ListesiSiemens Otomasyon Aralık 2015 Fiyat Listesi
Siemens Otomasyon Aralık 2015 Fiyat Listesi
 
Siemens Endüstriyel Otomasyon ve Sürücü Teknolojileri Fiyat Listesi 2014 Mart
Siemens Endüstriyel Otomasyon ve Sürücü Teknolojileri Fiyat Listesi 2014 MartSiemens Endüstriyel Otomasyon ve Sürücü Teknolojileri Fiyat Listesi 2014 Mart
Siemens Endüstriyel Otomasyon ve Sürücü Teknolojileri Fiyat Listesi 2014 Mart
 
Siemens Otomasyon 2015 Fiyat Listesi
Siemens Otomasyon 2015 Fiyat Listesi Siemens Otomasyon 2015 Fiyat Listesi
Siemens Otomasyon 2015 Fiyat Listesi
 
Temel plc komutlarına giriş
Temel plc komutlarına girişTemel plc komutlarına giriş
Temel plc komutlarına giriş
 
Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...
Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...
Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...
 
Led'lerle havaya yazı yazma
Led'lerle havaya yazı yazmaLed'lerle havaya yazı yazma
Led'lerle havaya yazı yazma
 
ABB Otomasyon Ürünleri Fiyat Listesi- En İyi İskontolar İçin Arayınız
ABB Otomasyon Ürünleri Fiyat Listesi- En İyi İskontolar İçin ArayınızABB Otomasyon Ürünleri Fiyat Listesi- En İyi İskontolar İçin Arayınız
ABB Otomasyon Ürünleri Fiyat Listesi- En İyi İskontolar İçin Arayınız
 
Adeon Titreşim Akustik Verilere Dayalı Kalite Kontrol Test Sistemi
Adeon Titreşim Akustik Verilere Dayalı Kalite Kontrol Test SistemiAdeon Titreşim Akustik Verilere Dayalı Kalite Kontrol Test Sistemi
Adeon Titreşim Akustik Verilere Dayalı Kalite Kontrol Test Sistemi
 
ASANSÖR SİSTEMLERİ KONTAKTÖR SEÇİMİ.pdf
ASANSÖR SİSTEMLERİ KONTAKTÖR SEÇİMİ.pdfASANSÖR SİSTEMLERİ KONTAKTÖR SEÇİMİ.pdf
ASANSÖR SİSTEMLERİ KONTAKTÖR SEÇİMİ.pdf
 
Abb drive plc_motor_fiyat_listesi
Abb drive plc_motor_fiyat_listesiAbb drive plc_motor_fiyat_listesi
Abb drive plc_motor_fiyat_listesi
 
Zybo with Pmod Modules
Zybo with Pmod ModulesZybo with Pmod Modules
Zybo with Pmod Modules
 
Hıza duyarlı kasis sunum
Hıza duyarlı kasis sunumHıza duyarlı kasis sunum
Hıza duyarlı kasis sunum
 
Kaydediciler
KaydedicilerKaydediciler
Kaydediciler
 
Plc dokumani
Plc dokumaniPlc dokumani
Plc dokumani
 
Emotron Hız Kontrol Cihazı
Emotron Hız Kontrol CihazıEmotron Hız Kontrol Cihazı
Emotron Hız Kontrol Cihazı
 
EMOTRON HIZ KONTROL CİHAZI
EMOTRON HIZ KONTROL CİHAZIEMOTRON HIZ KONTROL CİHAZI
EMOTRON HIZ KONTROL CİHAZI
 
FPGA Tabanlı 3D Modelleme Cihazı Tasarımı
FPGA Tabanlı 3D Modelleme Cihazı TasarımıFPGA Tabanlı 3D Modelleme Cihazı Tasarımı
FPGA Tabanlı 3D Modelleme Cihazı Tasarımı
 
St1000 ve st2000 plus otopilot kullanma kılavuzu
St1000 ve st2000 plus otopilot kullanma kılavuzuSt1000 ve st2000 plus otopilot kullanma kılavuzu
St1000 ve st2000 plus otopilot kullanma kılavuzu
 
Altivar process yeni nesil sürücü sistemleri
Altivar process yeni nesil sürücü sistemleriAltivar process yeni nesil sürücü sistemleri
Altivar process yeni nesil sürücü sistemleri
 

More from AliMETN

Bulut Bilişiminde Güvenlik Tehditleri
Bulut Bilişiminde Güvenlik TehditleriBulut Bilişiminde Güvenlik Tehditleri
Bulut Bilişiminde Güvenlik TehditleriAliMETN
 
Netsh Komutları
Netsh KomutlarıNetsh Komutları
Netsh KomutlarıAliMETN
 
Yazılım Mühendisliği
Yazılım MühendisliğiYazılım Mühendisliği
Yazılım MühendisliğiAliMETN
 
Matlab Neural Network Toolbox
Matlab Neural Network ToolboxMatlab Neural Network Toolbox
Matlab Neural Network ToolboxAliMETN
 
FPGA MİMARİSİ ve TARİHİ GELİŞİMİ
FPGA MİMARİSİ ve TARİHİ GELİŞİMİFPGA MİMARİSİ ve TARİHİ GELİŞİMİ
FPGA MİMARİSİ ve TARİHİ GELİŞİMİAliMETN
 
WEB SERVİCE
WEB SERVİCE WEB SERVİCE
WEB SERVİCE AliMETN
 
Clonal Selection Algorithm
Clonal Selection AlgorithmClonal Selection Algorithm
Clonal Selection AlgorithmAliMETN
 

More from AliMETN (7)

Bulut Bilişiminde Güvenlik Tehditleri
Bulut Bilişiminde Güvenlik TehditleriBulut Bilişiminde Güvenlik Tehditleri
Bulut Bilişiminde Güvenlik Tehditleri
 
Netsh Komutları
Netsh KomutlarıNetsh Komutları
Netsh Komutları
 
Yazılım Mühendisliği
Yazılım MühendisliğiYazılım Mühendisliği
Yazılım Mühendisliği
 
Matlab Neural Network Toolbox
Matlab Neural Network ToolboxMatlab Neural Network Toolbox
Matlab Neural Network Toolbox
 
FPGA MİMARİSİ ve TARİHİ GELİŞİMİ
FPGA MİMARİSİ ve TARİHİ GELİŞİMİFPGA MİMARİSİ ve TARİHİ GELİŞİMİ
FPGA MİMARİSİ ve TARİHİ GELİŞİMİ
 
WEB SERVİCE
WEB SERVİCE WEB SERVİCE
WEB SERVİCE
 
Clonal Selection Algorithm
Clonal Selection AlgorithmClonal Selection Algorithm
Clonal Selection Algorithm
 

FPGA ile RC Servo Kontrolü

  • 1. T.C. B˙ILEC˙IK ¸SEYH EDEBAL˙I ÜN˙IVERS˙ITES˙I MÜHEND˙ISL˙IK FAKÜLTES˙I B˙ILG˙ISAYAR MÜHEND˙ISL˙I ˘G˙I BÖLÜMÜ RC SERVO MOTOR KONTROLÜ ˙IBRAH˙IM AL˙I MET˙IN B˙ILEC˙IK 30 Mart 2015
  • 2. T.C. B˙ILEC˙IK ¸SEYH EDEBAL˙I ÜN˙IVERS˙ITES˙I MÜHEND˙ISL˙IK FAKÜLTES˙I B˙ILG˙ISAYAR MÜHEND˙ISL˙I ˘G˙I BÖLÜMÜ RC SERVO MOTOR KONTROLÜ ˙IBRAH˙IM AL˙I MET˙IN B˙ILEC˙IK 30 Mart 2015
  • 3. ÖZET Ödevin Amacı Bu projemizde, FPGA kiti ile 1 adet PWM modul tasarlayaca˘gız. PWM modülümüzü, RC Servo motor sürmek için kullanaca˘gız. RC Servo motorlar model hobide kullanılan mo- torlardır.RC (radio Control) Hobi 2 yıldır ilgilendi˘gim birçok model kullandı˘gım tavsiye edebilece˘gim çok güzel bir u˘gra¸stır. Ödevin Kapsamı Projem FPGA kitinde pwm modülü olu¸sumunu, kendi içinde üretilen clock sinyalinin motorun hareketinde kullanımı hakkında ki genel yapıyı içermektedir. Sonuçlar Sonuç olarak FPGA kitimize ba˘glı olan servo motorlarımız belirli bir açı süpürmektedir. ii
  • 4. ABSTRACT Homework Objective In this project, one with FPGA device we designed PWM module. Our PWM module, we will use the RC servo motor to drive. Scope of Homework My project FPGA device formation PWM module contains general structure on the use of clock signals generated by the movement of the engine itself. Results In conclusion, our servo motor connected to the FPGA device sweeps a certain angle. iii
  • 5. ˙Içindekiler ÖZET ii ABSTRACT iii ¸SEK˙IL L˙ISTES˙I v 1 RC SERVO MOTOR 1 1.1 Servo Motorun Özellikleri . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 VHDL ile SERVO MOTOR KONTROLÜ 3 3 ALTERA ile RC SERVO BA ˘GLANTILARIM 6 4 DENEYSEL SONUÇLAR 7 5 EKLER 8 5.1 RC Servo Motor Kontrol Kodlarım . . . . . . . . . . . . . . . . . . . . . 8 5.1.1 pwmtop.vhd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.1.2 clk64kHz.vhd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.1.3 pwm.vhd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 6 KAYNAKLAR 11 iv
  • 6. ¸Sekil Listesi 1 Servo Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 PWM Modülü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 Servo Motor Açısal Pozisyonu . . . . . . . . . . . . . . . . . . . . . . . 2 4 Vhdl Ana Ekranımız . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 Vhdl Clock Sinyali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6 Vhdl Pwm Üretici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 7 Pin Planer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 8 Servo Motor Ba˘glantıları . . . . . . . . . . . . . . . . . . . . . . . . . . 6 9 Vcc , GND ve PWM ba˘glantısı . . . . . . . . . . . . . . . . . . . . . . . 6 v
  • 7. 1 RC SERVO MOTOR R/C Servo Motor dedi˘gimiz ¸sey dc akımla çalı¸san ve istenilen açı aralı˘gında dönen moto- rardır. R/C , Radio Controlled anlamına gelir. Servco motorlar DC Motorların temel man- tı˘gını kullanırlar. Fakat buna kar¸sın elektronik pozisyon kontrol devresi ve elektronik ¸saft gibi ekstra bile¸senleri vardır. Servo motor ¸saftın kaç derece ve hangi hızda döndü˘günü al- gılar ve giri¸se bunu geri besleme olarak verir. Motorun pozisyonunu algılamak için rotora takılı bir potansiyometre bulunur. Bu potansiyometreden gelen analog de˘ger ile inputtaki sinyal kar¸sıla¸stırılır ve output olarak motorun yeni pozisyonu kontrol edilir.[1] ¸Sekil 1: Servo Motor R/C servo motorun pozisyonunu kontrol etmek için PWM sinyali kullanılır. Motoru’un inputuna gelen PWM sinyalinin görev çevrimine(duty cycle) göre motor, pozisyon de˘gi¸s- tirir. R/C Servo Motorlarda pozisyon açısal derece esasına göre kontrol edilir. Pozisyon kontrol devresi PWM sinyalinin görev çevrimine göre dönece˘gi dereceyi hesaplar. PWM sinyalinin çevrim süresi aynı kaldı˘gı müddetçe motor pozisyon de˘gi¸stirmez. ¸Sekil 2: PWM Modülü 1
  • 8. Yalnız önemli olan nokta ¸sudur ki; servo motorda dönmenin gerçekle¸sebilmesi için PWM siyalinin frekansı 50 Hz olmalıdır. Yani kontrol sinyalinin periodu 20 ms olmalıdır. 0 ve 180 derece arasındaki pozisyonlar PWM sinyalinin görev çevrimi süresinin 1 ms ile 2 ms arasında gerçekle¸sir. PWM sinyalinin 1 ms görev çevrim süresi için servo motor 0 derecelik pozisyondadır. ¸Semadan da görüldü˘gü gibi 0.5 ms lik ve 2 ms lik çevrim sürelerinde servo motorun pozisyonu 90 derece de˘gi¸sir. Servo motorların supply voltajı 4.5 volt ile 6 volt arasında de˘gi¸sir. Bu voltaj de˘gerleri motorun tork’una göre de˘gi¸skenlik gösterir. R/C servo motorların digital olanlarıda vardır. Bu motorlar normale göre daha hassas açı ile dönerler. ¸Sekil 3: Servo Motor Açısal Pozisyonu 1.1 Servo Motorun Özellikleri - Di˘ger motor türlerine göre daha hassastır. - Açısal dönme yöntemi (yani encoder) ile çalı¸smaktadır. - Bir sürücü ile kontrol edilirler. - Endüstride çok yaygın bir ¸sekilde kullanılmaktadır. - Mikrobilgisayarlar tarafından kolayca kontrol edilebilirler. - Dönme esnasında olu¸san hata sadece adım hatasıdır. 2
  • 9. - Hızı programlama yoluyla ayarlanabilir. Uygulama alanlarına örnek verecek olursak CNC makineler, robot kolları, endüstriyel ta¸sıma sistemlerini örnek verebiliriz. Servo motorlar da çıkı¸s; mekaniksel konum, hız veya ivme gibi parametrelerin kontrol edildi˘gi bir düzenektir. 2 VHDL ile SERVO MOTOR KONTROLÜ Quartus2 11.0 programını kullanarak Vhdl programlama dilince kodlamalarımızı gerçekle¸stirdik.[?] ¸Sekil 4: Vhdl Ana Ekranımız burada diger vhdl sayfalarında kodladıgımız clock sinyalini ve pwm modül kodlamaları- mız ça˘gırıyoruz. 3
  • 10. ¸Sekil 5: Vhdl Clock Sinyali Bu vhdl kodlarımızda devremizin çalı¸sması için kendi içinde gerekli olan 50Mhz’lik clock sinyalinin çalı¸sması için gereli kodlar yazılıyor. ¸Sekil 6: Vhdl Pwm Üretici Programımızda, peryodu 20 ms olan bir adet PWM sinyali üretmemiz gerekecek. Biz Geli¸stirme bourdumuzda 50 MHz’lik (20 ns) bir clk sinyali kullanaca˘gımız. 20 ms pe- riodunda bir sinyal üretmek için, programımızda 1 adet counter de˘gi¸skeni tanımlayaca˘gız 4
  • 11. ve Counter’ın üst sınırını ise (20ms/20ns) 1000 000 olarak belirleyece˘giz. ¸Sekil 7: Pin Planer burada ise kitimizde ki giri¸s ve çıkı¸slarımızı ilgili pinlere atama i¸slemi gerçekle¸stiriliyor. Kodlama ve pin atama i¸slemimizi bu ¸sekilde gerçekle¸stirdiktan sonra programımızın ça- lı¸smasını test edelim. 5
  • 12. 3 ALTERA ile RC SERVO BA ˘GLANTILARIM ¸Sekil 8: Servo Motor Ba˘glantıları ¸Sekil 9: Vcc , GND ve PWM ba˘glantısı 6
  • 13. 4 DENEYSEL SONUÇLAR Çalı¸smamın uygulamasını https://www.youtube.com/watch?v=CqO3goueqEI linkindeki kanalımdan izleyebilirsiniz. 7
  • 14. 5 EKLER 5.1 RC Servo Motor Kontrol Kodlarım 5.1.1 pwmtop.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_unsigned.all; ----------------------------------------------------- entity pwm_top is port( clr : in std_logic; clk : in std_logic; duty : in std_logic_vector (7 downto 0); pwm : out std_logic ); end pwm_top; ----------------------------------------------------- architecture pwm_top of pwm_top is signal new_clock : std_logic; begin clk_div: entity work.clk64kHz port map( clk => clk, reset => ’0’, clk_out => new_clock); Pulse: entity work.pwm port map( clr => clr, clk => new_clock, duty => duty, period => "11001000", pwm => pwm); end pwm_top; 5.1.2 clk64kHz.vhd library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity clk64kHz is Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; clk_out: out STD_LOGIC ); end clk64kHz; architecture Behavioral of clk64kHz is signal temporal: STD_LOGIC; signal counter : integer range 0 to 4999 := 0; 8
  • 15. begin freq_divider: process (reset, clk) begin if (reset = ’1’) then temporal <= ’0’; counter <= 0; elsif rising_edge(clk) then if (counter = 4999) then temporal <= NOT(temporal); counter <= 0; else counter <= counter + 1; end if; end if; end process; clk_out <= temporal; end Behavioral; 5.1.3 pwm.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_unsigned.all; ----------------------------------------------------- entity pwm is port( clr : in std_logic; clk : in std_logic; duty : in std_logic_vector (7 downto 0); period : in std_logic_vector (7 downto 0); pwm : out std_logic ); end pwm; ----------------------------------------------------- architecture pwm of pwm is signal count : std_logic_vector(7 downto 0); begin cnt: process(clk, clr) -- 4 bit counter begin if clr = ’1’ then count <= "00000000"; elsif clk’event and clk = ’1’ then if count = period -1 then count <= "00000000"; else count <= count +1; end if; end if; end process cnt; pwmout: process(count, duty) begin if count < duty then 9
  • 16. pwm <= ’1’; else pwm <= ’0’; end if; end process pwmout; end pwm; 10