Açıklama:
Elektrik, Elektronik, Haberleşme ve Otomasyon konularının ağırlıklı olarak konuşulduğu, tartışıldığı ve bilgi paylaşımı yapıldığı forumumuza hoşgeldiniz.
Şu an Tamamlanmış Elektronik Devreler, Projeler kategorisi içerisindeki Robot projeleri (robot projects) forumunda bulunuyorsunuz.
Bu sayfada üyelerimizin "Çizgi İzleyen Robot Projesi [test ettim]" konusundaki problem, görüş ve önerileri okuyabilir ayrıca konu hakkındaki doküman, resim, proje, devre ve programlara ücretsiz olarak ulaşabilirsiniz. Üye olduktan sonra sizler de konu hakkında sorular sorabilir ya da yorum ve paylaşım yaparak birikimlerinizi aktarabilirsiniz.
Forumdan tam olarak yararlanabilmek için üye olmayı unutmayınız!
Slm arkadaşlar ekte xilinx spartan 3e fpga' i ile yapmış olduğum sumo robot uygulamasını bulabilirsiniz. Uygulama için gereken bütün dosyalar ekte mevcuttur.
--------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity SSMACH2 is
port (sh,solcny,sagcny :in std_logic; -- system input to start the system
solmi,solmg,sagmi,sagmg:out std_logic; -- system output
clk, reset : in std_logic); -- clock and reset inputs
end SSMACH2;
-- purpose: Implement main architecture for SSMACH2
architecture BEHAVIOR of SSMACH2 is
type STATES is (ilkhareket,solgeridon,duzgit,saggeridon,wait1,wait2,wait3,wait4,solgeridon2,solgeridon3,saggeridon2,saggeridon3); -- possible states
signal PRESENT_STATE : STATES; -- present state
signal x,y,z,a:integer;
begin -- BEHAVIOR
-- purpose: Main process
process (clk, reset)
begin -- process
-- activities triggered by asynchronous reset (active high)
if reset = '1' then
PRESENT_STATE <= ilkhareket; -- default state
solmi<='0';
solmg<='1';
sagmi<='1';
sagmg<='0';
-- activities triggered by rising edge of clock
elsif clk'event and clk = '1' then
PRESENT_STATE <= ilkhareket; -- default state
case PRESENT_STATE is
when ilkhareket =>
solmi<='0';
solmg<='1';
sagmi<='1';
sagmg<='0';
if sh='1' and solcny='1' and sagcny='1' then PRESENT_STATE<= duzgit;
elsif sh='1' and solcny='1' and sagcny='0' then PRESENT_STATE<= saggeridon;
elsif sh='1' and solcny='0' and sagcny='0' then PRESENT_STATE<= saggeridon;
elsif sh='0' and solcny='1' and sagcny='0' then PRESENT_STATE<= saggeridon;
elsif sh='0' and solcny='0' and sagcny='0' then PRESENT_STATE<= saggeridon;
elsif sh='1' and solcny='0' and sagcny='1' then PRESENT_STATE<=solgeridon;
elsif sh='0' and solcny='0' and sagcny='1' then PRESENT_STATE<=solgeridon;
elsif sh='0' and solcny='1' and sagcny='1' then PRESENT_STATE<= ilkhareket;
end if;
when duzgit =>
solmi<='1';
solmg<='0';
sagmi<='1';
sagmg<='0';
if sh='1' and solcny='1' and sagcny='1' then PRESENT_STATE<= duzgit;
else PRESENT_STATE<= ilkhareket;
end if;
when solgeridon =>
solmi<= '0';
solmg<= '1';
sagmi<= '0';
sagmg<= '1';
x<=25000000;
PRESENT_STATE<= wait1;
--wait for 1000ms;
when solgeridon2=>
solmi <= '0';
solmg <= '1';
sagmi <= '0';
sagmg <= '0';
y<=12500000;
PRESENT_STATE<= wait2;
--wait for 500ms;
when solgeridon3=>
if sh='1' and solcny='0' and sagcny='1' then PRESENT_STATE<=solgeridon;
elsif sh='0' and solcny='0' and sagcny='1' then PRESENT_STATE<=solgeridon;
else PRESENT_STATE<= ilkhareket;
end if;
when saggeridon=>
solmi<='0';
solmg<='1';
sagmi<='0';
sagmg<='1';
z<=25000000;
PRESENT_STATE<= wait3;
--wait for 1000ms;
when saggeridon2=>
solmi<='0';
solmg<='0';
sagmi<='0';
sagmg<='1';
a<=12500000;
PRESENT_STATE<= wait4;
--wait for 500ms;
When saggeridon3=>
if sh='1' and solcny='1' and sagcny='0' then PRESENT_STATE<= saggeridon;
elsif sh='1' and solcny='0' and sagcny='0' then PRESENT_STATE<= saggeridon;
elsif sh='0' and solcny='1' and sagcny='0' then PRESENT_STATE<= saggeridon;
elsif sh='0' and solcny='0' and sagcny='0' then PRESENT_STATE<= saggeridon;
else PRESENT_STATE<= ilkhareket ;
end if;
When wait1=>
if (x>0) then
x<=x-1;
PRESENT_STATE<= wait1;
else PRESENT_STATE<= solgeridon2;
end if;
When wait2=>
if(y>0) then
y<=y-1;
PRESENT_STATE<= wait2;
else PRESENT_STATE<= solgeridon3;
end if;
When wait3=>
if (z>0) then
z<=z-1;
PRESENT_STATE<= wait3;
else PRESENT_STATE<= saggeridon2;
end if;
When wait4=>
if (a>0) then
a<=a-1;
PRESENT_STATE<= wait4;
else PRESENT_STATE<= saggeridon3;
end if;
end case;
end if;
end process;
end BEHAVIOR;
10 Kullanıcı bu konu için Bozgan arkadaşımıza teşekkür ettiler
merhaba
merhaba abi ben sapartan 3E ileilgili ödev aldım.üniversite öğrencisiyim...bana bu konuda yardımcı olursan sevinirim...bir tane uygulama yapmam lazıım
Başa dön
FPGA ile Sumo robot uygulaması
Benzer Konular
- RF Kontrollü Kameralı Robot Projesi
- IEEE 802.11a Matlab uygulaması
- matlab'da ofdm uygulaması
- şifreLi kapı kiLidi ve muLtipLexer de muLtipLexer uyguLaması
- robot kasası için yardım!!!
- at89c52 ile yapılan yürüyen ışık uygulaması
- pıc16f84a ile pwm uygulaması
- Robot Kol Projem
- LCD Bar uygulaması
- Çizgi izleyen robot yardımı
- lcd yazı uygulaması 16f84
Sitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden
puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar varsa iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.