GIỚI THIỆU MODULE NRF24L01 VÀ GIAO TIẾP VỚI ARDUINO Tổng quan Module thu phát song RF nRF24L01 được thiết kế để hoạt động trong vùng tần số 2 4GHz và sử dụng kỹ thuật điều chế GFSK cho việc truyền dữ[.]
GIỚI THIỆU MODULE NRF24L01 VÀ GIAO TIẾP VỚI ARDUINO Tổng quan Module thu phát song RF nRF24L01 thiết kế để hoạt động vùng tần số 2.4GHz sử dụng kỹ thuật điều chế GFSK cho việc truyền liệu khơng dây Dữ liệu truyền đạt với tốc độ 250kbps, 1Mbps 2Mbps Băng tần 2.4GHz ISM gì? Đó băng tần dùng cho thiết bị công suất thấp băng tần dành cho công nghiệp, khoa học kỹ thuật y tế Chẳng hạn như: Cordless phone, Bluetooth, mạng máy tính không dây (Wifi)… Công suất tiêu thụ Hoạt động với điện áp nguồn 1.9V đến 3.6V, chân logic hoạt động 5V điều thuận lợi việc kết nối với vi điều khiển mà không cần chuyển mức logic Dòng tiêu thụ xấp xỉ 12mA Giao tiếp SPI Module thu phát nRF24L01 + giao tiếp qua chuẩn nối tiếp chân (SPI) với tốc độ liệu tối đa 10Mb /giây Tất tham số tần số kênh(tổng cộng 125 kênh), cơng suất đầu (0 dBm, -6 dBm, -12 dBm -18 dBm) tốc độ liệu (250kbps, 1Mbps 2Mbps) qua truyền thông SPI Chuẩn SPI sử dụng khái niệm Master Slave hầu hết ứng dụng Trong vi điều khiển như: Arduino vai trò Master nRF24L01 + Slave Không chuẩn chuẩn I2C, số lượng Slave chuẩn SPI có giới hạn, với Arduino Uno sử dụng tối đa hai Slave, nghĩa có module thu phát nRF24L01 + kết nối với module Arduino nRF24L01+ transceiver module Specification Bảng thông số kỹ thuật nRF24L01 Vùng tần số Tốc độ liệu tối đa khơng khí Kiểu điều chế Công suất ngõ Max Điện áp nguồn cung cấp Dòng tiêu thụ Dòng điện chế độ Standby Logic Input Khoảng cách truyền liệu 2.4 GHz ISM Band Mb/s GFSK dBm 1.9 V to 3.6 V 13.5mA 26µA 5V 800+ m (tầm nhìn thấy) Phân loại Có nhiều loại module nRF24L01 phổ biến có loại: nRF24L01+ nRF24L01+ PA/LNA Loại phổ biến loại tích hợp module khơng dây hình Module nRF24L01+ tích hợp ăng-ten onboard Phiên sử dụng ăng-ten on-board Đây phiên nhỏ gọn mang tính đột phá Tuy nhiên, ăng-ten nhỏ có nghĩa phạm vi truyền thấp Với phiên này, vùng giao tiếp khoảng cách 100m Tuy nhiên, phạm vi nhà, đặc biệt có nhiều tường, bị suy giảm bán kính truyền Module nRF24L01+ PA LNA với ăng-ten Phiên thứ hai kèm với đầu nối SMA ăng-ten Sự khác biệt với loại thứ trạng bị chip RFX2401C đặc biệt, tích hợp chuyển mạch PA (Power Amplifier), LNA (Low-Noise Amplifier) chuyển mạch thu-phát Với chip với ăng-ten làm tăng phạm vi truyền lớn đáng kể khoảng 1000m Ngoại trừ khác biệt này, hai mô-đun tương thích Có nghĩa là, sử dụng nRF24L01 thay nRF24L01+ PA LNA mà không cần thực thay đổi hệ thống Tần số kênh RF Module nRF24L01 + truyền nhận liệu tần số trung tâm gọi Kênh Kênh tần số vùng băng tần 2,4 GHz Chính xác nằm khoảng từ 2.400 đến 2.525 GHz (2400 đến 2525 MHz) Mỗi kênh chiếm băng thông thấp MHz Điều cho phép lên đến 125 kênh với khoảng cách MHz Vì vậy, số module sử dụng 125 kênh khác có khả thiết lập mạng gồm 125 module hoạt động độc lập Tuy nhiên, kênh chiếm băng thông MHz với tốc độ liệu 250kbps 1Mbps Tuy nhiên, tốc độ liệu 2Mbps, băng thơng chiếm MHz Vì vậy, để đảm bảo kênh không chồng chéo chế độ 2Mbps, cần thiết lập khoảng cách MHz kênh Tần số kênh RF kênh chọn theo cơng thức sau: Freq(Selected) = 2400 + CH(Selected) Ví dụ: chọn kênh truyền liệu kênh 108, tần số kênh RF kênh 2508 MHz (2400 + 108) Mạng Multiceiver nRF24L01+ NRF24L01 + cung cấp tính gọi Multiceiver Nó tên viết tắt cho giao thức nhiều module truyền module nhận Trong kênh RF phân chia thành kênh liệu song song gọi đường ống liệu, ống liệu kênh logic Kênh RF vật lý Mỗi ống liệu định địa vật lý riêng (Địa ống liệu) Điều minh họa hình Mạng nRF24L01+ Multiceiver Sơ đồ trên, cho thấy thu đóng vai trị hub trung tâm lựa chọn thu thập thông tin từ nút truyền khác lúc Bộ thu trung tâm ngừng nhận liệu lúc hoạt động máy phát Nhưng điều thực ống/nút thời điểm Cấu trúc đóng gói chia thành vùng khác nhau, minh họa nRF24L01+ Enhanced ShockBurst Packet Structure Tự động giao tiếp bắt tay module nRF24L01+ Có hình thức cách hai mơ-đun nRF24L01 + giao tiếp với - Trường hợp hoàn hảo Truyền thông với ACK ngắt Khi máy phát bắt đầu truyền thơng cách gửi gói liệu đến máy thu Khi tồn gói truyền đi, chờ (khoảng 130µs) để nhận gói tin xác nhận (gói ACK) Khi máy thu nhận gói data, gửi gói ACK đến máy phát Khi nhận gói ACK, máy phát xác nhận tín hiệu ngắt (IRQ) biết liệu bắt đầu - Truyền thơng trường hợp gói liệu bị Đây trường hợp cần truyền lại gói truyền Sau gói truyền đi, phía phát chờ gói ACK tù phía nhận Nếu máy phát không nhận ACK thời gian tự động truyền lại Auto-Retransmit-Delay (ARD), gói tin truyền lại Khi máy thu nhận gói truyền lại, phát gói ACK, từ máy phát tạo ngắt Trường hợp truyền thơng dịch với gói ACK bị Ở phía thu nhận gói lần thử đầu tiên, gói ACK, phía phát cho bên thu khơng nhận gói Vì vậy, sau thời gian trì hỗn tự động truyền lại hết hiệu lực, phía phát truyền lại gói Lúc này, phía thu nhận gói chứa IDgiống nhau, loại bỏ gói gửi lại ACK Qui trình xử lý tồn trường hợp thực tự động chip nRF24L01 + mà khơng cần lập trình từ vi điều khiển Sơ đồ chân module nRF24L01+ Sơ đồ chân Module nRF24L01 trình bày hình Module nRF24L01 PA/LNA hình GND Chân mass thường có hình chân vng để làm chuẩn cho việc nhận dạng chân lại VCC chân nguồn dương cung cấp cho module hoạt động mức điện áp từ 1.9V đến 3.9V Có thể kết nối vào nguồn 3.3V từ board Arduino Chú ý kết nối nguồn 5V làm hư module nRF24L01 CE (Chip Enable) chân cho phép, hoạt động mức HIGH Khi cho phép nRF24L01 truyền nhận, tùy thuộc vào chế độ CSN (Chip Select Not) chân hoạt động mức LOW, bình thường giữ mức HIGH Khi chuyển từ HIGH xuống LOW nRF24L01 “lắng nghe” port liệu SPI đọc liệu vào SCK (Serial Clock) chân nhận xung clock điều khiển đường truyền từ bus Master MOSI (Master Out Slave In) là chân ngõ vào nRF24L01 MISO (Master In Slave Out) là chân ngõ xuất data từ nRF24L01 đến Master IRQ là chân ngắt báo hiệu cho Master có data cần xử lý Kết nối nRF24L01+ với Arduino UNO Mỗi dịng Arduino có chân SPI khác cần kết nối tương ứng, thể qua bảng sau: Chân SPI loại board Arduino MOSI MISO SCK Arduino Uno 11 12 13 Arduino Nano 11 12 13 Arduino Mega 51 50 52 Wiring nRF24L01+ Wireless Transceiver Module to Arduino UNO Wiring nRF24L01+ PA LNA Wireless Module to Arduino UNO Cần phải thực hai mạch Một hoạt động phát thu Hệ thống kết nối cho hai giống Cần download thư viện sẳn có module nRF24L01 trước lập trình Bài thực hành Trong thí nghiệm thứ 1, thực gửi đoạn thông tin ‘Hello World’ từ module phát sang module thu Arduino Code – Transmitter //Include Libraries #include #include #include //create an RF24 object RF24 radio(9, 8); // CE, CSN //address through which two modules communicate const byte address[6] = "00001"; void setup() { radio.begin(); //set the address radio.openWritingPipe(address); //Set module as transmitter radio.stopListening(); } void loop() { //Send message to receiver const char text[] = "Hello World"; radio.write(&text, sizeof(text)); delay(1000); } Giải thích: Cần include thư viện SPI.h để điều khiển đường truyền SPI nRF24L01.h, RF24.h để điều khiển module RF //Include Libraries #include #include #include Kế tiếp, tạo đồi tượng RF24 Khai báo chân Arduino kết nối vào chân CE CSN module RF //create an RF24 object RF24 radio(9, 8); // CE, CSN Tiếp theo, cần tạo mảng kiểu byte tượng trưng cho địa đường ống thơng qua hai module nRF24L01+ giao tiếp với //address through which two modules communicate const byte address[6] = "00001"; Có thể thay đổi giá trị địa thành chuỗi ký tự tùy ý, chẳng hạn nút “node1” Địa cần thiết có mạng nhiều module Căn địa chỉ, chọn modle cụ thể cần giao tiếp Vì trường hợp này, tạo địa cho phía phát thu Tiếp theo phần thiết lập: cần khởi tạo đối tượng RF lệnh radio.begin() và sử dụng hàm radio.openWritingPipe(address) để đặt địa phía phát //set the address radio.openWritingPipe(address);