1.1 Bo điều khiển Arduino nano
Arduino Nano là một bảng vi điều khiển thân thiện, nhỏ gọn, đầy đủ. Arduino Nano nặng khoảng 7g với kích thước từ 1,8cm - 4,5cm. Arduino Nano được tích hợp vi điều khiển ATmega328P, giống như Arduino Uno. Sự khác biệt chính giữa chúng là bảng Uno có dạng PDIP (Plastic Dual-In-line Package) với 30 chân cịn Nano có sẵn trong TQFP (plastic quad flat pack) với 32 chân. Trong khi Uno có 6 cổng ADC thì Nano có 8 cổng ADC. Bảng Nano khơng có giắc nguồn DC như các bo mạch Arduino khác, mà thay vào đó có cổng mini-USB. Cổng này được sử dụng cho cả việc lập trình và bợ giám sát nối tiếp. Tính năng hấp dẫn của Arduino Nano là nó sẽ chọn cơng x́t lớn nhất với hiệu điện thế của nó.
108 Đặc điểm kỹ thuật Arduino Nano:
Arduino Nano Thông số kỹ thuật
Số chân analog I/O 8
Cấu trúc AVR
Tốc đợ xung 16 MHz
Dịng tiêu thụ I/O 40mA
Số chân Digital I/O 22
Bộ nhớ EEPROM 1 KB
Bộ nhớ Flash 32 KB of which 2 KB used by Bootloader Điện áp ngõ vào (7-12) Volts
Vi điều khiển ATmega328P
Điện áp hoạt đợng 5V
Kích thước bo mạch 18 x 45 mm
Nguồn tiêu thụ 19mA
Ngõ ra PWM 6
SRAM 2KB
109 Sơ đồ chân
110 Chức năng của các chân Arduino Nano
Thứ tự chân Tên Pin Kiểu Chức năng
1 D1 / TX I / O Ngõ vào/ra số, chân TX: truyền dữ liệu 2 D0 / RX I / O Ngõ vào/ra số, chân Rx: nhận dữ liệu 3 RESET Đầu vào Chân reset, hoạt động ở mức thấp
4 GND Nguồn Chân nối mass
5 D2 I / O Ngõ vào/ra digital 6 D3 I / O Ngõ vào/ra digital 7 D4 I / O Ngõ vào/ra digital 8 D5 I / O Ngõ vào/ra digital 9 D6 I / O Ngõ vào/ra digital 10 D7 I / O Ngõ vào/ra digital 11 D8 I / O Ngõ vào/ra digital 12 D9 I / O Ngõ vào/ra digital 13 D10 I / O Ngõ vào/ra digital 14 D11 I / O Ngõ vào/ra digital 15 D12 I / O Ngõ vào/ra digital 16 D13 I / O Ngõ vào/ra digital 17 3V3 Đầu ra Đầu ra 3.3V (từ FTDI) 18 AREF Đầu vào Tham chiếu ADC
19 A0 Đầu vào Kênh đầu vào tương tự kênh 0 20 A1 Đầu vào Kênh đầu vào tương tự kênh 1 21 A2 Đầu vào Kênh đầu vào tương tự kênh 2 22 A3 Đầu vào Kênh đầu vào tương tự kênh 3 23 A4 Đầu vào Kênh đầu vào tương tự kênh 4 24 A5 Đầu vào Kênh đầu vào tương tự kênh 5 25 A6 Đầu vào Kênh đầu vào tương tự kênh 6 26 A7 Đầu vào Kênh đầu vào tương tự kênh 7
27 + 5V Đầu ra hoặc đầu vào
+ Đầu ra 5V (từ bộ điều chỉnh On-board) hoặc + 5V (đầu vào từ nguồn điện bên ngoài)
28 RESET Đầu vào Chân đặt lại, hoạt động ở mức thấp
29 GND Nguồn Chân nối mass
111
Các chân: 1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 và 16
Arduino Nano có 14 ngõ vào/ra digital. Các chân làm việc với điện áp tối đa là 5V. Mỗi chân có thể cung cấp hoặc nhận dịng điện 40mA và có điện trở kéo lên khoảng 20-50kΩ. Các chân có thể được sử dụng làm đầu vào hoặc đầu ra, sử dụng các hàm pinMode (), digitalWrite () và digitalRead ().
Ngoài các chức năng đầu vào và đầu ra số, các chân này cũng có mợt số chức năng bổ sung.
Chân 1, 2: Chân nối tiếp, hai chân nhận RX và truyền TX này được sử dụng để truyền dữ liệu nối tiếp TTL. Các chân RX và TX được kết nối với các chân tương ứng của chip nối tiếp USB tới TTL.
Chân 6, 8, 9, 12, 13 và 14: Chân PWM, mỗi chân số này cung cấp tín hiệu điều chế độ rộng xung 8 bit. Tín hiệu PWM có thể được tạo ra bằng cách sử dụng hàm analogWrite ().
Chân 5, 6: Ngắt, khi chúng ta cần cung cấp mợt ngắt ngồi cho bộ xử lý hoặc bộ điều khiển khác, chúng ta có thể sử dụng các chân này. Các chân này có thể được sử dụng để cho phép ngắt INT0 và INT1 tương ứng bằng cách sử dụng hàm attachInterrupt (). Các chân có thể được sử dụng để kích hoạt ba loại ngắt như ngắt trên giá trị thấp, tăng hoặc giảm mức ngắt và thay đổi giá trị ngắt.
Chân 13, 14, 15 và 16: Giao tiếp SPI, khi bạn không muốn dữ liệu được truyền đi không đồng bợ, bạn có thể sử dụng các chân ngoại vi nối tiếp này. Các chân này hỗ trợ giao tiếp đồng bộ với SCK. Mặc dù phần cứng có tính năng này nhưng phần mềm Arduino lại khơng có. Vì vậy, bạn phải sử dụng thư viện SPI để sử dụng tính năng này.
Chân 16: Led, khi bạn sử dụng chân 16, đèn led trên bo mạch sẽ sáng.
Chân 18, 19, 20, 21, 22, 23, 24, 25 và 26: Ngõ vào/ra tương tự, như đã đề cập trước đó Uno có 6 chân đầu vào tương tự nhưng Arduino Nano có 8 đầu vào tương tự (19
112
đến 26), được đánh dấu A0 đến A7. Điều này có nghĩa là bạn có thể kết nối 8 kênh đầu vào tương tự để xử lý. Mỗi chân tương tự này có mợt ADC có đợ phân giải 1024 bit (do đó nó sẽ cho giá trị 1024). Theo mặc định, các chân được đo từ mặt đất đến 5V. Nếu bạn muốn điện áp tham chiếu là 0V đến 3.3V, có thể nối với nguồn 3.3V cho chân AREF (pin thứ 18) bằng cách sử dụng chức năng analogReference (). Tương tự như các chân digital trong Nano, các chân analog cũng có mợt số chức năng khác.
Chân 23, 24 như A4 và A5: chuẩn giao tiếp I2C, khi giao tiếp SPI cũng có những nhược điểm của nó như cần 4 chân và giới hạn trong một thiết bị. Đối với truyền thông đường dài, cần sử dụng giao thức I2C. I2C hỗ trợ chỉ với hai dây. Một cho xung (SCL) và một cho dữ liệu (SDA). Để sử dụng tính năng I2C này, chúng ta cần phải nhập mợt thư viện có tên là Thư viện Wire.
Chân 18: AREF, điện áp tham chiếu cho đầu vào dùng cho việc chuyển đổi ADC.
Chân 28 : RESET, đây là chân reset mạch khi chúng ta nhấn nút rên bo. Thường được sử dụng để được kết nối với thiết bị chuyển mạch để sử dụng làm nút reset.
ICSP: là viết tắt của In Circuit Serial Programming, đại diện cho mợt trong những phương pháp có sẵn để lập trình bảng Arduino. Thơng thường, mợt chương trình bợ nạp khởi đợng Arduino được sử dụng để lập trình mợt bảng Arduino, nhưng nếu bợ nạp khởi đợng bị thiếu hoặc bị hỏng, ICSP có thể được sử dụng thay thế. ICSP có thể được sử dụng để khôi phục bộ nạp khởi động bị thiếu hoặc bị hỏng.
Mỗi chân ICSP thường được kết nối với mợt chân Arduino khác có cùng tên hoặc chức năng. Ví dụ: MISO của Nano nối với MISO / D12 (Pin 15). Lưu ý, các chân MISO, MOSI và SCK được ghép lại với nhau tạo nên hầu hết giao diện SPI.
113 Chân ICSP Arduino Nano
Tên pin Arduino Nano ICSP Kiểu Chức năng
MISO Đầu vào hoặc đầu ra Master In Slave Out
Vcc Đầu ra Cấp nguồn
SCK Đầu ra Tạo xung cho
MOSI Đầu ra hoặc đầu vào Master Out Slave In
RST Đầu vào Đặt lại, Hoạt động ở
mức thấp
GND Nguồn Chân nối dất
Tên pin Arduino Nano ICSP Kiểu Chức năng
MISO Đầu vào hoặc đầu ra Master In Slave Out
Vcc Đầu ra Cấp nguồn
SCK Đầu ra Tạo xung cho
MOSI Đầu ra hoặc đầu vào Master Out Slave In
RST Đầu vào Đặt lại, Hoạt động ở
mức thấp
114
Chúng ta có thể sử dụng Arduino để lập trình Arduino khác bằng ICSP này
Arduino là ISP ATMega328
Vcc/5V Vcc GND GND MOSI/D11 D11 MISO/D12 D12 SCK/D13 D13 D10 Reset
1.2 Module thu phát RF Zigbee UART CC2530
Mạch thu phát RF Zigbee UART CC2530+PA V2 sử dụng IC CC2530 từ TI + với tầng khuếch đại công suất PA CC2591 cho khoảng các truyền nhận rất xa, điều kiện lý tưởng có thể đạt tới 1000m, mạch được lập trình sẵn firmware để có thể dễ dàng sử dụng như mợt module truyền nhận dữ liệu không dây chuẩn Zigbee với giao tiếp UART rất dễ kết nối với vi điều khiển hoặc máy tính (thơng qua cáp chuyển USB- UART) với chỉ một vài bước config bằng nút nhấn.
Mạch thu phát RF Zigbee UART CC2530+PA V2 có khoảng cách truyền nhận xa, chuẩn truyền sóng Zigbee 2.4Ghz chuẩn công nghiệp rất ổn định và có khả năng cấu hình tạo thành mạng truyền nhận khơng dây với nhiều node, điểm mạng khác khau qua giao thức Zigbee.
115
Thông số kỹ thuật RF Zigbee UART CC2530+PA V2:
- IC chính: CC2530
- IC Khuếch đại: PA CC2591
- Điện áp sử dụng: 2.8 ~ 3.5VDC
- Dịng tiêu thụ: <30mA - Chuẩn truyền sóng: Zigbee
- Tần số: 2.4Ghz
- Tốc độ truyền tối đa: 3300bps - Công suất truyền: 20dbm
- Khoảng cách truyền lý tưởng: 1000m
- Giao thức kết nối: UART - Baudrate: max 115200
- Kích thước: 16 x 34mm
Cấu hình RF Zigbee UART CC2530+PA V2:
Bước 1: Khơng cấp nguồn, nhấn giữ nút key, sau đó cấp nguồn. 4 led trên module sẽ nhấp nháy báo hiệu truy cập chế đợ set cấu hình. Thả nút nhấn ra, rồi lại nhấn nút tuần tự để chọn mức boudrate phù hợp theo bảng dưới.
116
Bước 2: Sau khi chọn Baudrate xong, nhấn tì (nhấn giữ) nút ấn để sang bước 2. 4 led trên module sẽ nhấp nháy báo hiệu truy cập bước 2. Thả nút nhấn ra, rồi lại nhấn nút tuần tự để chọn kênh (Chanel), lưu ý để 2 module truyền được cho nhau thì ở bước này bạn cần cài đặt chọn kênh giống nhau.
Bước 3: Sau khi chọn Chanel xong, nhấn tì nút ấn để sang bước 3. 4 led trên module sẽ nhấp nháy báo hiệu truy cập bước 3. Thả nút nhấn ra, rồi lại nhấn nút tuần tự để chọn chế đợ truyền dẫn. Nó có 2 chế đợ truyền dẫn:
Point to Point: Dùng để truyền nhận giữa 2 moudle cho nhau. Ta có thể lựa chọn địa chỉ (tránh trùng với module của người khác) ở 16 địa chỉ khác nhau.
Broadcast: Người dùng có thể tạo ra mợt mạng lưới truyền dẫn giữa các Node để tạo ra mợt nhà mạng cho riêng mình.
- Nếu chọn Point to Point
Ở module thứ nhất bạn chọn Cấu hình Point to Point A.
Cũng ở bước này, ở module thứ 2 chọn cấu hình Poin to Point B.
- Nếu chọn Broadcast
Tùy chọn trường hợp còn giống nhau ở tất cả các module
Lưu ý: Tất cả các module cần được cấu hình Chanel và Broadcast giống nhau, khi 1 module truyền, tất cả các module còn lại sẽ nhận, chức năng của các module là tương đương.
117
Bước 4: Sau khi chọn kiểu truyền nhận xong, nhấn tì nút ấn để sang bước 4. 4 led trên module sẽ nhấp nháy báo hiệu cài đặt thành công và được lưu mãi mãi. Thiết đặt chỉ được lưu và có hiệu lực khi bạn đến được bước 4. Để thiết đặt lại hãy rút nguồn và quay về bước 1.
1.3 Motor DC và Board điều khiển cầu H Mosfet
Motor DC
Thông số kỹ thuật:
- Motor 24VDC.
- Công suất 250W.
- Loại motor Nam châm vĩnh cửu.
- Tốc độ chậm, hợp số giảm tốc 75 vịng/phút.
- Trọng lượng: 2,82kg, đường kính trục đầu ra 17mm, dài 44mm. Board điều khiển cầu H Mosfet
Thông số kỹ thuật:
- Điện áp định mức: 3V-36V (có thể tùy chỉnh theo người dùng)
118 - Dịng điện cực đại: 30A
- Kích thước sản phẩm: 100x70x21mm - Trọng lượng tịnh: 53g
Các tính năng:
- Chịu được tình trạng q tải dịng điện cao, dòng điện tối đa lên đến 30A. - Chức năng phanh có thể nhanh chóng dừng đợng cơ.
- Mạch điện tích hợp hai cầu cầu H, sử dụng Mosfet IRF3205 điều khiển được hai motor với dòng định mức cho mỗi motor là 10A (dòng cực đại lên đến 30A ở chế độ xung).
- Sử dụng chip chuyên dụng mở mosfet nhanh cải thiện độ cong gia tốc động cơ, nhưng cũng phanh đợ cơ nhanh chóng.
- Có thể điều khiển đợng cơ từ 0% đến 99% chu kỳ của xung PWM.
- Điều khiển chân DIR1=1, PWM1=PWM: Motor1 quay thuận.
- Điều khiển chân DIR1=0, PWM1=PWM: Motor1 quay ngược.
- Điều khiển chân DIR1=x, PWM1=0: Motor1 phanh (x là trạng thái tùy ý).
119
Phương pháp điều khiển cầu H Mosfet bằng PWM
Mạch cầu H sử dụng 4 mosfet kênh N (IRF3205) để điều khiển motor DC; Mạch có ưu điểm là điều khiển tốc độ motor bằng xung PWM tốc độ cao, đảo chiều quay dễ dàng.
Khi đưa xung PWM vào Chân IN1 và IN4 thì motor quay chiều thuận. Khi đưa xung PWM vào Chân IN2 và IN3 thì motor quay chiều ngược.
120 Mạch cầu H: D8 1N5819 Q3 IRF3205 R3 10 D3 1N4148 F1 FUSE IN_1 Q1 IRF3205 Q2 IRF3205 D5 1N5819 D6 1N5819 D7 1N5819 IN_3 IN_2 IN_4 +24V D4 1N4148 DC - + M1 MOTOR 24VDC 1 2 R2 10 D1 1N4148 Q4 IRF3205 D2 1N4148 R4 10 R1 10
Điều khiển độ rộng xung PWM (Pulse Width Modulation)
0V duty cycle 50% 18V 12V 0V 6V 0V 24V 24V duty cycle 75% duty cycle 25% 24V
121
Một trong những ứng dụng phổ biến nhất của điều chế độ rộng xung là điều khiển tốc độ động cơ
Cơng thức tính điều chế xung PWM
Ta có thể tính tốn tON cho điện áp mà ta muốn từ tổng nguồn điện áp. Bằng cách nhân chu kỳ làm việc với 100, ta có thể đưa nó về tỷ lệ phần trăm. Vì vậy, tỷ lệ của chu kỳ làm việc là tỷ lệ thuận với điện áp lấy từ nguồn. Ví dụ, nếu chúng ta muốn điện áp 12V từ một nguồn 24V, điều này có thể được thực hiện bằng cách băm xung chu kỳ làm việc 50%. Vì 50% của 24 là 12.
Ví dụ: Tại mợt tần số 500Hz thiết kế mợt dải sóng PWM với chu kỳ làm việc 50%.
Frequency = 500hz
Duty cycle = 50%
122
1.4 Cảm biến siêu âm HC-SR04
Cảm biến siêu âm Ultrasonic HC-SR04 được sử dụng để nhận biết khoảng cách từ vật thể đến cảm biến nhờ sóng siêu âm, cảm biến có thời gian phản hồi nhanh, đợ chính xác cao, phù hợp cho các ứng dụng phát hiện vật cản, đo khoảng cách bằng sóng siêu âm.
Cảm biến siêu âm Ultrasonic HC-SR04 sử dụng cặp chân Echo / Trigger để phát và nhận tín hiệu, cảm biến được sử dụng phổ biến với các ứng dụng đo khoảng cách.
Thông số kỹ thuật:
- Điện áp hoạt đợng: 5VDC - Dịng tiêu thụ: 10~40mA
- Tín hiệu giao tiếp: TTL - Chân tín hiệu: Echo, Trigger.
123 - Tần số phát sóng: 40Khz
- Khoảng cách đo được: 2~450cm (khoảng cách xa nhất đạt được ở điều khiện lý tưởng với không gian trống và bề mặt vật thể bằng phẳng, trong điều kiện bình thường cảm biến cho kết quả chính xác nhất ở khoảng cách <100cm).
- Sai số: 0.3cm (khoảng cách càng gần, bề mặt vật thể càng phẳng sai số càng nhỏ). - Kích thước: 43mm x 20mm x 17mm
1.5 Board nguồn giảm áp LM2596
Board giảm áp DC LM2596 để giảm áp từ bình Acquy 24V xuống 5V/3A cấp nguồn cho Arduino Nano và cấp nguồn cho mạch Driver Cầu H.
Thông số kỹ thuật
Board giảm áp DC nhỏ gọn có khả năng giảm áp từ 30V xuống 1.5V mà vẫn đạt hiệu suất cao (92%). Thích hợp cho các ứng dụng chia nguồn, hạ áp, cấp cho các thiết bị như camera, robot,...
- Điện áp đầu vào: Từ 3V đến 30V
- Điện áp đầu ra: Điều chỉnh được trong khoảng 1.5V đến 30V - Dòng đáp ứng tối đa là 3A
124
2. Chương trình Matlab thu thập tín hiệu EEG, trích xuất đặc trưng và phân loại tín hiệu điều khiển
%---------------------doc eeg tu cam bien s=serial('COM3');