Tải bản đầy đủ - 0 (trang)
4 Module thu – phát sóng RF

4 Module thu – phát sóng RF

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

này thường ở mức 1 khi tín hiệu nghỉ và mức 0 khi tín hiệu hoạt động. Tín hiệu đưa ra

gồm : sóng mang dao động < 700KHz + địa chỉ mã hóa + dữ liệu. + Tần số Sóng mang

dao động được quyết định bởi R chân 15 và 16 và được tính bằng : f = R/12 . Ví dụ : mắc

điện trở 470k vào chân 15 và 16 đầu ra chân 17 sẽ có 470/12 = khoảng 39Khz ( cái này có

thể làm điều khiển hoặc truyền dữ liệu bằng hồng ngoại với con PT2262 đấy nhé. )

( PT2262 có điện áp rộng : Có thể làm việc được từ 2,5V đến 15 V . PT2272 là con giải

mã của PT2262 nó cũng có 8 địa chỉ giải mã tương ứng + 4 dữ liệu ra + 1 chân báo hiệu

mã đúng VT ( chân 17 ).Cách giải mã như sau : Chân 15 và 16 cũng cần một điện trở để

làm dao động giải mã . Trong dải hồng ngoại hoặc dưới 100KHz có thể dùng R rất lớn

hoặc không cần. Nhưng từ khoảng 100KHz dao động trở lên --- thì bắt buộc phải dùng R

để tạo dao động cho PT2272. Giá trị R của PT2272 sẽ bằng khoảng : ( Giá trị R của

PT2262) chia cho 10 ---> ví dụ : PT2262 mắc điện trở 4,7 megaom thì PT2272 sẽ mắc

470k giải mã : các chân mã hóa của PT2262 ( chân 1 đến chân 8 ),nối thế nào thì các chân

giải mã của PT2272 cũng phải nối tương tự như vậy. Chân nào nối dương, chân nào nối

âm, chân nào bỏ trống ...v.v thì chân ( 1 đến 8 )của PT2272 hãy làm như thế . Khi truyền

một mã đúng và giải mã đúng thì chân 17 của PT2272 sẽ có điện áp cao đưa ra , báo hiệu

là đã đúng mã hóa. 4 chân dữ liệu có thể truyền song song, nối tiếp rất độc lập.

3.4.1 Sơ đồ mạch phát dung IC PT2262



Hình 3.4.1.1: Sơ đồ mạch phát dùng IC PT2262

Các chân A0 đến A7 là các chân mã hóa. Nếu các chân này ở mạch PT2262 được dung

như thế nào thì PT2272 cũng được dung như vậy. Khi đó thì các mạch phát và mạch thu

sẽ hiểu nhau, còn mấy mạch phát khác sẽ không nhận ra.

Các chân 10 đến 13 là các chân data khi truyền. Như vậy IC này có thể truyền song song

4 bit. Chân 15 và 16 dùng để gắn điện trở tạo thành tần số truyền như mong muốn.Giá trị

điện trở ở chân 15 và 16 ở IC PT 2272 nhỏ hơn 10 lần so với PT2262. Chân 17 dùng để

truyền dữ liệu và khi truyền sẽ ở mức 0v.

3.4.2 Sơ đồ mạch thu dùng IC PT2272

Đồ án thiết kế hệ thống Nhúng



Trang 24



Hình 4.2.3 Sơ

đồ mạch thu dùng

IC PT2272

Chân 17 PT

2272 sẽ lên mức 1

khi nhận được dữ

liệu đúng. Các

chân 10 đến 13 sẽ nhận data và thể hiện mức logic tương ứng khi nhận.

3.5 Bộ giảm tốc



-



Điện áp hoạt động : 3V – 9V DC ( Hoạt động tốt nhất từ 6V -8V).

Mômen xoắc cực đại : 800gf cm min 1:48 ( 3v)

Tốc độ không tải : 125 vòng / 1 phút (3V), 208 vòng / 1 phút ( 5v).

Dòng khơng tải là : 70 mA, dòng max cực đại là 250 Ma

Một số thơng số lắp ghép cấu thành khác:



Đồ án thiết kế hệ thống Nhúng



Trang 25



CHƯƠNG 4: LƯU ĐỒ THUẬT TOÁN VÀ ĐIỀU KHIỂN



Quy ước: robot lệch trái ít tương đương với trường hợp lệch trái 1

robotlệch trái nhiều tương đương với trường hợp lệch trái 2

robot lệch phải ít tương đương với trường hợp lệch phải 1

robot lệch phải nhiều tương đương với trường hợp lệch phải 2

Nguyên tắc dò di chuyển của robot tự hành là khi nó lệch trái thì code sẽ điều

khiển tắt- bật động cơ để robot quay sang phải, khi quay tới vạch đen thì nó bắt vạch và đi

thẳng. Cứ như vậy nếu bị lệch trái 1 thì bộ vi xử lý gửi lệnh quay phải 1 ra ngoài IO để

gửi vào mạch điều khiển động cơ => điều khiển động cơ, vi xử lý sẽ xử lý tương tự khi

robot lệch trái 2, lệch phải 1, lệch phái 2. Qúa trình dò đường sẽ thực hiện liên tục thuật

toán trên đến khi nào đi hết vạch đen Khi robot đi hết đường thì nó tự động quay đầu và

bắt vạch đi quay ngược lại và tiếp tục chu trình lệnh như trên lưu đồ thuật tốn

Các trường hợp mà robot có thể gặp phải trên đường như sau:



Các trưởng

hợp

Đi thẳng



Trạng thái sensor



Đồ án thiết kế hệ thống Nhúng



Cách xử lý

Bánh trái : Quay tiến

Bánh Phải: Quay tiến



Trang 26



Lệch trái 1



Bánh trái: Quay tiến

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



Lệch trái 2



Bánh Trái: Quay tiến

Bánh Phải : Quay lùi



Lệch phải 1



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

Bánh Phải: Quay tiến



Lệch phải 2



BánhTrái: Quay lùi

Bánh Phải: Quay tiến



Tất cả các

cảm biến

chạm vạch

Tất cả các

cảm biến ra

khỏi vạch



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

Bánh Phải: Quay tiến



3 cảm biến

bên trái chạm

vạch đen



Bánh Trái: Quay tiến

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



3 cảm biến

bên phải

chạm vạch

đen



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

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



Đồ án thiết kế hệ thống Nhúng



Bánh trái: Quay tiến

Bánh Phải: Quay lùi



Trang 27



CHƯƠNG 5 : CODE

#include "main.h"

#include "stm32f10x.h"

unsigned int i,k=0;

unsigned int maled[]={0x0100,0x0200,0x0400,0x0800,0x1000,0x2000};

//Dinh nghia kieu du lieu tu GPIO_Init thanh GPIO_InitStructure

GPIO_InitTypeDef GPIO_InitStructure;

//Cau hinh toc do su dung cho GPIO

void RCC_Configuration(void)

{

/* Enable GPIOA, GPIOB, and AFIO clocks */

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |

RCC_APB2Periph_AFIO,

ENABLE);

}

//Ham tao thoi gian tre

void delay_ms(unsigned long int t)

{

unsigned long int i;

for(i=0;i
{}

}

void stop(void)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

GPIO_ResetBits(GPIOB, GPIO_Pin_11);

}

void hieuung()

{

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1&&GPIO_ReadInputDataBit(GPIO

A,GPIO_Pin_1)==0&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==0&&GPIO_Re

adInputDataBit(GPIOA,GPIO_Pin_3)==1)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_8);

delay_ms(35);

GPIO_SetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

delay_ms(35);

Đồ án thiết kế hệ thống Nhúng



Trang 28



GPIO_SetBits(GPIOB, GPIO_Pin_10);

GPIO_ResetBits(GPIOB, GPIO_Pin_11);

}

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1&&GPIO_ReadInputDataBit(GPIO

A,GPIO_Pin_1)==1&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==0&&GPIO_Re

adInputDataBit(GPIOA,GPIO_Pin_3)==0)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_8);

delay_ms(5);

GPIO_SetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

GPIO_ResetBits(GPIOB, GPIO_Pin_11);

}

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1&&GPIO_ReadInputDataBit(GPIO

A,GPIO_Pin_1)==1&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==1&&GPIO_Re

adInputDataBit(GPIOA,GPIO_Pin_3)==0)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_8);

delay_ms(5);

GPIO_SetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

GPIO_ResetBits(GPIOB, GPIO_Pin_11);

delay_ms(5);

GPIO_SetBits(GPIOB, GPIO_Pin_11);

}

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0&&GPIO_ReadInputDataBit(GPIO

A,GPIO_Pin_1)==0&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==1&&GPIO_Re

adInputDataBit(GPIOA,GPIO_Pin_3)==1)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

delay_ms(5);

GPIO_SetBits(GPIOB, GPIO_Pin_10);

GPIO_ResetBits(GPIOB, GPIO_Pin_11);

}

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0&&GPIO_ReadInputDataBit(GPIO

A,GPIO_Pin_1)==1&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==1&&GPIO_Re

adInputDataBit(GPIOA,GPIO_Pin_3)==1)

{

Đồ án thiết kế hệ thống Nhúng



Trang 29



GPIO_ResetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

delay_ms(5);

GPIO_SetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

delay_ms(5);

GPIO_SetBits(GPIOB, GPIO_Pin_10);

GPIO_ResetBits(GPIOB, GPIO_Pin_11);

}

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0&&GPIO_ReadInputDataBit(GPIO

A,GPIO_Pin_1)==0&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==0&&GPIO_Re

adInputDataBit(GPIOA,GPIO_Pin_3)==1)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_8);

delay_ms(5);

GPIO_SetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

GPIO_ResetBits(GPIOB, GPIO_Pin_11);

}

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1&&GPIO_ReadInputDataBit(GPIO

A,GPIO_Pin_1)==0&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==0&&GPIO_Re

adInputDataBit(GPIOA,GPIO_Pin_3)==0)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

delay_ms(5);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

GPIO_ResetBits(GPIOB, GPIO_Pin_11);

}

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1&&GPIO_ReadInputDataBit(GPIO

A,GPIO_Pin_1)==1&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==1&&GPIO_Re

adInputDataBit(GPIOA,GPIO_Pin_3)==1)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

delay_ms(30);

GPIO_SetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

delay_ms(65);

GPIO_SetBits(GPIOB, GPIO_Pin_10);

Đồ án thiết kế hệ thống Nhúng



Trang 30



GPIO_ResetBits(GPIOB, GPIO_Pin_11);

}

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0&&GPIO_ReadInputDataBit(GPIO

A,GPIO_Pin_1)==0&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==0&&GPIO_Re

adInputDataBit(GPIOA,GPIO_Pin_3)==0)

{

GPIO_SetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

GPIO_SetBits(GPIOB, GPIO_Pin_11);

}

}

hieuung1(void)

{

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)==1)

{

GPIO_SetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

GPIO_SetBits(GPIOB, GPIO_Pin_10);

GPIO_ResetBits(GPIOB, GPIO_Pin_11);

}

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)==1)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_8);

GPIO_SetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

GPIO_SetBits(GPIOB, GPIO_Pin_11);

}

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)==1)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_8);

GPIO_SetBits(GPIOB, GPIO_Pin_9);

GPIO_SetBits(GPIOB, GPIO_Pin_10);

GPIO_ResetBits(GPIOB, GPIO_Pin_11);

}

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_7)==1)

{

GPIO_SetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

GPIO_SetBits(GPIOB, GPIO_Pin_11);

}

Đồ án thiết kế hệ thống Nhúng



Trang 31



if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)==0&&GPIO_ReadInputDataBit(GPIO

A,GPIO_Pin_5)==0&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)==0&&GPIO_Re

adInputDataBit(GPIOA,GPIO_Pin_7)==0)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_8);

GPIO_ResetBits(GPIOB, GPIO_Pin_9);

GPIO_ResetBits(GPIOB, GPIO_Pin_10);

GPIO_ResetBits(GPIOB, GPIO_Pin_11);

}

return;

}

int main(void)

{

RCC_Configuration();

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9| GPIO_Pin_10 |

GPIO_Pin_11| GPIO_Pin_12 | GPIO_Pin_13 |GPIO_Pin_14 | GPIO_Pin_15;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOB, &GPIO_InitStructure);

while(1)

{

nhan:

hieuung();

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)==1&&GPIO_ReadInputDataBit(GPIO

A,GPIO_Pin_5)==1)

{

while(1)

{

hieuung1();

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)==1&GPIO_ReadInputDataBit(GPIOA

,GPIO_Pin_7)==1)

goto nhan;

}

}

}

}

Đồ án thiết kế hệ thống Nhúng



Trang 32



Đồ án thiết kế hệ thống Nhúng



Trang 33



CHƯƠNG 6: TÀI LIỆU THAM KHẢO

Kiến trúc cơ bản của STM32-ARM Cortex – arm.vn

STM32F101xx and STM32F103xx Reference – arm.vn

Hướng dẫn sử dụng board OPENMX-STM32103RC



Đồ án thiết kế hệ thống Nhúng



Trang 34



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

4 Module thu – phát sóng RF

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

×