Hôm nay, tôi xin hướng dẫn các bạn thực hiện project (mà tôi thấy hiện nay nhiều người quan tâm) là: truyền/nhận dữ liệu sử dụng module RF 433M (315M) giữa 2 vi điều khiển (Atmega8- là 1 dòng của loại VĐK AVR)
I.MODULE RF 433M (315M)
·Module RF được sử dụng trong Project này là module “Thô” (có nghĩa là không cài bộ mã hóa/giải mã bên trong), vì vậy các bạn có thể sáng tạo, phát triển các thuật toán truyền/nhận dữ liệu một cách tùy ý trên module.
Dưới đây là hình ảnh của module phát và modul thu RF:
·Vấn đề quan trọng nhất trong truyền/nhận dữ liệu qua RF đó là chống nhiễu. Nhiễu ở đây là nhiễu từ môi trường xung quanh module phát và thu như: sóng điện từ, điện tích, nguồn nhiễu … Do đó dữ liệu bên thu nhận về sẽ không còn nguyên vẹn và có thể bị sai.
èBiện pháp khắc phục: MÃ HÓA/GIẢI MÃ dữ liệu cần truyền.
II. MÃ HÓA/GIẢI MÃ DỮ LIỆU - MÃ HÓA ĐƯỜNG TRUYỀN MANCHESTER
Như đã phân tích ở trên, mã hóa dữ liệu ở module phát và giãi mã dữ liệu nhận được ở module thu nhằm đảm bảo tính ổn định và chính xác của dữ liệu. Có rất nhiều cách mã hóa/giải mã dữ liệu nhưng trong Project này tôi sử dụng phương pháp mã hóa đường truyền Manchester.
Mã hóa đường truyền Manchester sẽ mã hóa:
-Tín hiệu 1 à 10
-Tín hiệu 0 à 01
Ví Dụ:
Chuỗi tín hiệu 10011101 sẽ được mã hóa thành: 1001011010100110
Với phương pháp này, thời gian tồn tại của chuỗi tín hiệu 0 hoặc 1 trên đường truyền sẽ được chia nhỏ nhằm giúp module thu nhận được đúng dữ liệu được truyền (nếu thời gian tồn tại của xung 0 (1) trên đường truyền quá dài thì khi đến module thu sẽ không phải là 0 (1) nữa do phải chịu tác động nhiễu từ môi trường lớn).
III.THỰC HIỆN PROJECT
1.THIẾT KẾ PHẦN CỨNG
Để hoàn thành Project các bạn cần:
-Vi điều khiển Atmega 8.
-Module thu/phát RF 433M (315M).
-LCD1602 (dùng để hiển thị dữ liệu nhận được ở module thu).
-Sử dụng các nút bấm để điều chỉnh tốc độ truyền và dữ liệu phát đi.
-Led tín hiệu.
(Sơ đồ nguyên lý của mạch thu và phát các bạn có thể down về ở cuối bài)
2.THIẾT KẾ PHẦN MỀM
Trong Project này, lập trình phần mềm được chia làm 2 phần là:
-Mã hóa dữ liệu trước khi truyền đi ( theo Manchester).
-Giải mã dữ liệu sau khi nhận về.
·MÃ HÓA (Module phát):
Dữ liệu được đóng vào 1 “khung truyền” gồm:
-3 byte 0xff (để làm sạch khung truyền).
-1 bit start.
-Dữ liệu cần truyền.
-1 bit stop.
·GIẢI MÃ (Module thu):
Khi nhận được dữ liệu, bên thu sẽ tiến hành giải mã:
-Kiểm tra 3 byte 0xff.
-Kiểm tra bit start (để xác định đúng khung truyền).
-Đọc dữ liệu.
-Kiểm tra bit stop (để xác định đã hết khung truyền).
Dữ liệu sau khi giải mã sẽ được hiển thị lên LCD1602.
Sưu tầm:
I.MODULE RF 433M (315M)
·Module RF được sử dụng trong Project này là module “Thô” (có nghĩa là không cài bộ mã hóa/giải mã bên trong), vì vậy các bạn có thể sáng tạo, phát triển các thuật toán truyền/nhận dữ liệu một cách tùy ý trên module.
Dưới đây là hình ảnh của module phát và modul thu RF:
·Vấn đề quan trọng nhất trong truyền/nhận dữ liệu qua RF đó là chống nhiễu. Nhiễu ở đây là nhiễu từ môi trường xung quanh module phát và thu như: sóng điện từ, điện tích, nguồn nhiễu … Do đó dữ liệu bên thu nhận về sẽ không còn nguyên vẹn và có thể bị sai.
èBiện pháp khắc phục: MÃ HÓA/GIẢI MÃ dữ liệu cần truyền.
II. MÃ HÓA/GIẢI MÃ DỮ LIỆU - MÃ HÓA ĐƯỜNG TRUYỀN MANCHESTER
Như đã phân tích ở trên, mã hóa dữ liệu ở module phát và giãi mã dữ liệu nhận được ở module thu nhằm đảm bảo tính ổn định và chính xác của dữ liệu. Có rất nhiều cách mã hóa/giải mã dữ liệu nhưng trong Project này tôi sử dụng phương pháp mã hóa đường truyền Manchester.
Mã hóa đường truyền Manchester sẽ mã hóa:
-Tín hiệu 1 à 10
-Tín hiệu 0 à 01
Ví Dụ:
Chuỗi tín hiệu 10011101 sẽ được mã hóa thành: 1001011010100110
Với phương pháp này, thời gian tồn tại của chuỗi tín hiệu 0 hoặc 1 trên đường truyền sẽ được chia nhỏ nhằm giúp module thu nhận được đúng dữ liệu được truyền (nếu thời gian tồn tại của xung 0 (1) trên đường truyền quá dài thì khi đến module thu sẽ không phải là 0 (1) nữa do phải chịu tác động nhiễu từ môi trường lớn).
III.THỰC HIỆN PROJECT
1.THIẾT KẾ PHẦN CỨNG
Để hoàn thành Project các bạn cần:
-Vi điều khiển Atmega 8.
-Module thu/phát RF 433M (315M).
-LCD1602 (dùng để hiển thị dữ liệu nhận được ở module thu).
-Sử dụng các nút bấm để điều chỉnh tốc độ truyền và dữ liệu phát đi.
-Led tín hiệu.
(Sơ đồ nguyên lý của mạch thu và phát các bạn có thể down về ở cuối bài)
2.THIẾT KẾ PHẦN MỀM
Trong Project này, lập trình phần mềm được chia làm 2 phần là:
-Mã hóa dữ liệu trước khi truyền đi ( theo Manchester).
-Giải mã dữ liệu sau khi nhận về.
·MÃ HÓA (Module phát):
Dữ liệu được đóng vào 1 “khung truyền” gồm:
-3 byte 0xff (để làm sạch khung truyền).
-1 bit start.
-Dữ liệu cần truyền.
-1 bit stop.
·GIẢI MÃ (Module thu):
Khi nhận được dữ liệu, bên thu sẽ tiến hành giải mã:
-Kiểm tra 3 byte 0xff.
-Kiểm tra bit start (để xác định đúng khung truyền).
-Đọc dữ liệu.
-Kiểm tra bit stop (để xác định đã hết khung truyền).
Dữ liệu sau khi giải mã sẽ được hiển thị lên LCD1602.
Sưu tầm: