Tải bản đầy đủ - 0 (trang)
5 Trạng thái điều khiển cho động cơ

5 Trạng thái điều khiển cho động cơ

Tải bản đầy đủ - 0trang

ĐỒ ÁN THIẾT KẾ LOGIC SỐ

3 cảm biến

bên trái

chạm vạch

đen

3 cảm biến

bên phải

chạm vạch

đen



Bánh Trái: Quay tiến

Bánh Phải: Đứng yên

Bánh Trái: Đứng yên

Bánh Phải: Quay Tiến.



Mức 1 sẽ làm cho động cơ hoạt động.Khi muốn robot đi lùi ta chỉ cần đảo chiều

cả hai động cơ.



3.6 CODE điều khiển

---------------------------------------------------------------------------------- Create Date:

22:40:49 01/14/2013

-- Design Name:

Dinh Hong Dang

-- Module Name:

CPLD COOLRRUNER II C256-TQ144

-- Project Name:

ROBOT do duong

--------------------------------------------------------------------------------library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity robot is

Port (

CLK : in STD_LOGIC;

sen1 : in STD_LOGIC;

sen2 : in STD_LOGIC;

sen3 : in STD_LOGIC;

sen4 : in STD_LOGIC;

chan_1 : out STD_LOGIC;

chan_2 : out STD_LOGIC;

chan_3 : out STD_LOGIC;

chan_4 : out STD_LOGIC);

end robot;

architecture Behavioral of robot is

ROBOT Dò Đường Theo Vạch



Page 32



--Clock=10khz

--Tin' hieu vao` sensor



--DK

--DK

--DK

--DK



dong

dong

dong

dong



co

co

co

co



trai

trai

phai

phai



tien

lui

tien

lui



ĐỒ ÁN THIẾT KẾ LOGIC SỐ

signal

signal

signal

signal

signal

signal

signal

signal

begin

sensor



sensor : std_logic_vector(3 downto 0);

CLK_50 : std_logic :='0';

CLK_80 : std_logic :='0';

CLK_60 : std_logic :='0';

CLK_40 : std_logic :='0';

CLK_25 : std_logic :='0';

CLK_20 : std_logic :='0';

dem : std_logic_vector(6 downto 0);

<= sen1 & sen2 & sen3 & sen4;



--Dieu che xung 50hz

process (CLK,dem)

begin

if(dem = "1100100") then

dem <= "0000000" ;

else

if(CLK'event and CLK = '1')

dem <= dem + 1;

end if;

end if;

end process;



then



process(dem)

begin

--xung 50%

if(dem = "1100100") then

CLK_50 <= not CLK_50;

end if;

end process;

process(dem)

begin

-- xung 80%

if (dem < "1010000" and dem >= "0000000") then

CLK_80 <= '1';

else CLK_80 <= '0';

end if;

end process;

process(dem)

begin

--xung 60%

if (dem < "0111100" and dem >= "0000000") then

CLK_60 <= '1';

else CLK_60 <= '0';

end if;

end process;

process(dem)

begin

ROBOT Dò Đường Theo Vạch



Page 33



ĐỒ ÁN THIẾT KẾ LOGIC SỐ

--xung 40%

if (dem < "0101000" and dem >= "0000000") then

CLK_40 <= '1';

else CLK_40 <= '0';

end if;

end process;

process(dem)

begin

--xung 25%

if (dem < "0011001" and dem >= "0000000") then

CLK_25 <= '1';

else CLK_25 <= '0';

end if;

end process;

process(dem)

begin

--xung 20%

if (dem < "0010100" and dem >= "0000000") then

CLK_20 <= '1';

else CLK_20 <= '0';

end if;

end process;

--DK dong co

process(sensor)

begin

case sensor is

when "1001" =>



when "1000" =>



when "1100" =>



when "1110" =>



ROBOT Dò Đường Theo Vạch



chan_1

chan_2

chan_3

chan_4



<=

<=

<=

<=



'1';

'0';

'1';

'0';



chan_1

chan_2

chan_3

chan_4



<=

<=

<=

<=



CLK_50;

'0';

'0';

'0';



chan_1

chan_2

chan_3

chan_4



<=

<=

<=

<=



CLK_50;

'0';

'0';

'0';



chan_1 <= CLK_50;

chan_2 <= '0';

chan_3 <= '0';

Page 34



ĐỒ ÁN THIẾT KẾ LOGIC SỐ

chan_4 <= CLK_50;

when "0001" =>



when "0011" =>



when "0111" =>



when "0000" =>



when "1111" =>



when others =>



end case;

end process;

end Behavioral;



chan_1

chan_2

chan_3

chan_4



<=

<=

<=

<=



'0';

'0';

CLK_50;

'0';



chan_1

chan_2

chan_3

chan_4



<=

<=

<=

<=



'0';

'0';

CLK_50;

'0';



chan_1

chan_2

chan_3

chan_4



<= '0';

<= CLK_50;

<= CLK_50;

<= '0';



chan_1

chan_2

chan_3

chan_4



<=

<=

<=

<=



CLK_40;

'0';

'0';

CLK_40;



chan_1

chan_2

chan_3

chan_4



<=

<=

<=

<=



'0';

CLK_40;

CLK_40;

'0';



chan_1

chan_2

chan_3

chan_4



<=

<=

<=

<=



'0';

CLK_40;

CLK_40;

'0';



Phần Bốn: Kết Thúc Đề Tài



ROBOT Dò Đường Theo Vạch



Page 35



ĐỒ ÁN THIẾT KẾ LOGIC SỐ

Nhóm đã thiết kế và chạy thử nghiệm thành công trên KIT CPLD

CollRuneer – II 256 TQ144. Robot có thể bám vạch chính xác và khi hết vạch thì

tự quay đầu trở lại.

Tuy nhiên khó khăn lớn nhất mà nhóm gặp phải chính là khâu thiết kế và

làm phần cứng. Do thời gian và số lượng kiến thức có hạn nên chắc chắn đề tài sẽ

khơng tránh khỏi có sai sót. Em xin chân thành cảm ơn!



Tài Liệu Tham Khảo



-



http://www.xilinx.com



ROBOT Dò Đường Theo Vạch



Page 36



ĐỒ ÁN THIẾT KẾ LOGIC SỐ

-



http://forums.xilinx.com/

Bài Giảng Thiết Kế Logic Số - 2010- Học Viện Công Nghệ Bưu Chính Viễn

Thơng



ROBOT Dò Đường Theo Vạch



Page 37



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

5 Trạng thái điều khiển cho động cơ

Tải bản đầy đủ ngay(0 tr)

×