VBLUno gửi vào
- 13884 lượt xem
Đây là chuỗi các bài tutorial giới thiệu và hướng dẫn mọi người phát triển ứng dụng trên Arduino IDE cho bo mạch VBLUno của VNG. Đặc biệt là các hướng dẫn và demo về Bluetooth Low Energy. Hôm nay chúng ta sẽ cùng nhau xem cách lập trình cho VBLUno để nói hello world với thế giới từ VBLUNO.
Giới thiệu bo mạch VBLUno
Nội dung trình bày
- Giới thiệu bo mạch VBLUno của VNG IoTLab;
- Hướng dẫn cài đặt Arduino IDE cho VBLUno;
- Ví dụ Hello World.
Bo mạch VBLUno để làm gì?
VBLUno (VNGIoTLab BLE Uno) là mô đun Bluetooth Low Energy (BLE) được thiết kế mở rộng theo pinout tương thích chuẩn Arduino Uno, được tạo ra với mục đích giúp cho các lập trình viên dễ dàng tiếp cận công nghệ BLE và nguồn tài nguyên vô tận của Arduino cho việc phát triển các sản phẩm ứng dụng trong Internet of Things (IoT).
Điểm nhấn của bo mạch VBLUno là mô đun BLE được các kỹ sư của VNGIoTLab tự nghiên cứu và thiết kế. Đây cũng là mô đun đã và đang được sử dụng trong nhiều sản phẩm thương mại của VNG như CSM Router, Gateway,…. Mô đun BLE sử dụng chip nRF51822 của hãng Nordic Semiconductor, với nhân ARM Cortex-M0 32bit hỗ trợ chuẩn giao tiếp Bluetooth Smart (BLE). Bên cạnh các chuẩn truyền thông như 6LoWPAN, Zigbee, …, BLE được xem là chuẩn truyền thông cực kỳ phù hợp dành cho IoT, với các ứng dụng truyền thông khoảng cách gần và đặc biệt là độ tiêu thụ năng lượng cực kỳ thấp, thân thiện với môi trường sống. Ví dụ như các hệ thống tòa nhà thông minh, vườn thông minh, cửa hàng thông minh, quản lý trẻ em, …
Với tinh thần chia sẻ và mong muốn cộng đồng IoT Việt Nam có thể tiếp cận công nghệ BLE một cách dễ dàng nhất, VBLUno được công bố dưới dạng mã nguồn mở, từ sơ đồ phần cứng, các mã nguồn chương trình ví dụ, mã nguồn bootloader, mã nguồn công cụ upload, tài liệu hướng dẫn… Các bạn có thể dễ dàng tham khảo cũng như tùy biến.
Bằng việc sử dụng Arduino IDE và bo mạch VBLUno, các bạn có thể dễ dàng tiếp cận và xây dựng các ứng dụng IoT với công nghệ BLE, tiến tới làm chủ việc thiết kế các thiết bị đầu cuối trong hệ thống IoT.
Hình ảnh thực tế bo mạch VBLUno và pinout
Hình 1: Hình ảnh thực tế và pinout của bo mạch VBLUno
Thông số cơ bản của bo mạch VBLUno
CPU |
Nordic nRF51822, nhân ARM Cortex-M0 32-bit |
Truyền thông không dây 2.4GHz |
Hỗ trợ giao tiếp Bluetooth Low Energy hay còn gọi là Bluetooth Smart:
|
Xung nhịp hệ thống |
16MHz |
Tiêu thụ năng lượng thấp
|
Ultra low power consumption
6.3mA - TX at -4dBm (3V using on-chip DC-DC)
8.0mA - TX at 0dBm (3V using on-chip DC-DC)
11.8mA – TX at +4dBm (3V using on-chip DC-DC)
9.7mA – RX (3V using on-chip DC-DC)
13mA – RX at 1Mbps (No DC-DC)
10.5mA – TX at 0dBm (No DC-DC)
0.6µA – SYSTEM-OFF, no RAM retention
1.2µA - SYSTEM-OFF, 8KB RAM retention
2.6µA - SYSTEM-ON, All peripherals in idle mode
|
Digital I/O
|
21 kênh;
Điện áp cực đại: +3.6V
|
ADC
|
6 kênh;
Độ phân giải: 10bit
Điện áp hoạt động: 0 ÷ +3.3V
|
Timer
|
3 bộ Timer 16bit với chế độ counter
|
UART
|
01 bộ
|
SPI
|
01 bộ
|
I2C
|
02 bộ
|
PWM
|
Tối đa 3 kênh tại cùng thời điểm;
Chế độ 8bit, 16bit;
Cấu hình PWM trên các kênh GPIO.
|
Ngắt ngoài
|
Cấu hình trên các kênh GPIO.
|
Nạp chương trình
|
- Sử dụng tiện ích để nạp trực tiếp từ Arduino IDE (Cổng USB to UART)
- Sử dụng mô đun CMSIS-DAP nạp qua chuẩn SWD
|
Nguồn cung cấp
|
+5V ÷ +12V
|
Pinout
|
Thiết kế phù hợp pinout của Arduino Uno Rev3
|
Cài đặt môi trường làm việc
Các bo mạch Arduino phổ biến sử dụng chip vi điều khiển AVR. Nếu thiết kế theo các mạch Arduino có sẵn, có thể dễ dàng sử dụng Arduino IDE để lập trình. Bo mạch VBLUno không sử dụng các thiết kế có sẵn từ arduino.cc nên cần cài đặt bổ sung các package hỗ trợ. VNGIoTLab đã tham khảo và nghiên cứu phát triển package hỗ trợ Arduino IDE cho VBLUno.
Các bước thực hiện
Bước 1. Cài đặt trình điều khiển cho chip CP210x – USB to UART
- Nếu đã cài đặt, bạn có thể bỏ qua bước này
- Thực hiện: Tải trình điều khiển phù hợp tại địa chỉ sau và cài đặt vào máy. https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx
Bước 2. Cài đặt Arduino IDE
- Nếu đã cài đặt, bạn có thể bỏ qua bước này
- Thực hiện: Tải bản cài đặt phù hợp tại địa chỉ bên dưới và cài đặt vào máy. http://arduino.vn/bai-viet/tai-ve-cac-tai-nguyen
Chú ý
Nếu bạn đang sử dụng hệ điều hành Linux, cần chạy Arduino IDE với quyền root. Điều này giúp Arduino IDE có thể mở cổng nối tiếp (UART) để nạp firmware cho mạch VBLUno.
- Mở Terminal (Ctrl + Alt + T)
- Chuyển đến thư mục đã cài đặt Arduino bằng cách sử dụng lệnh “cd”. Ví dụ cd /home/mrABC/arduino-1.6.10
- Mở Arduino IDE với lệnh sudo: sudo ./aduino
Bước 3. Cài đặt gói dữ liệu giúp lập trình Arduino IDE trên mạch VBLUno
- Chắc chắn Arduino IDE không được mở trong quá trình cài đặt offline.
- Tải bản cài đặt phù hợp với hệ điều hành:
- Giải nén và chạy file cài đặt (Có thể phải chờ một vài phút để trình cài đặt tìm thư mục lưu thông tin về các packages của Arduino IDE)
- Windows: Setup_VBLUno_Windows.exe
- Linux: sudo ./Setup_VBLUno_Linux?? (??=32 hoặc 64). Chú ý phải sử dụng lệnh sudo
- Bạn chờ đến khi chương trình thông báo “The installation was successful” là quá trình cài đặt đã hoàn thành.
Hình 2: Quá trình cài đặt gói dữ liệu hỗ trợ
- Quá trình cài đặt thành công, bạn khởi động Arduino IDE, board mạch VBLUno được tự động lựa chọn.
Hình 3: Kết quả sau khi cài đặt
Phiên bản hiện tại là 1.0.2 (15/8/2016). Thường xuyên theo dõi trang Github https://github.com/VNGIoTLab/Arduino_VBLUno_nRF51822 để cập nhật phiên bản mới nhất.
Như vậy, chúng ta đã cài đặt xong môi trường làm việc cho bo mạch VBLUno trên Arduino IDE. Phần tiếp theo sẽ trình bày ví dụ Hello World để kiểm tra bo mạch VBLUno của chúng ta.
Ví dụ Hello World
Khi học một ngôn ngữ lập trình mới, thông thường chương trình đầu tiên chúng ta thực hiện là Hello World example. Mục đích để giúp lập trình viên nắm được cấu trúc cơ bản của một chương trình, cách sử dụng IDE và trình biên dịch, và đặc biệt là tạo hứng thú cho lập trình viên theo kiểu “Đầu xuôi đuôi lọt”.
Với VBLUno cũng vậy, các bạn cũng nên bắt đầu bằng việc thực hiện một ví dụ Hello World, đó chính là ví dụ điều khiển nhấp nháy Led đơn.
Các bước thực hiện
1. Kết nối mạch VBLUno với PC thông qua cổng USB trên mạch.
- Chuyển cầu nối trên jump J7 về vị trí cho phép nạp firmware qua cổng USB bằng bootloader (vị trí 1-2, gần phía Jack nguồn màu đen).
- Bạn chuyển cầu nối sang vị trí 1-2, trong hình cấu nối đang ở vị trí 2-3.
- Sau đó ấn nút Reset. Lúc này quan sát thấy sáng cả 2 led trên mạch.
2. Chọn board và cổng serial để nạp
- Chọn VBLUno nRF51822 board từ menu của Arduino IDE:
- Menu > Tools > Board > VBLUno nRF51822 (V1.0 32KB)
- Chọn cổng nối tiếp tương ứng của VBLUno:
- Menu > Tools > Port > [tên cổng nối tiếp của VBLUno]
3. Ví dụ nháy led (Blink)
Bạn hãy copy và paste đoạn mã nguồn này vào Arduino IDE
/************************************************************************* Arduino IDE with VBLUno kit Tutorial 1 - Hello World Example Ví dụ nhấp nháy led trên mạch VBLUno với chu kỳ 2s ***************************************************************************/ // the setup function runs once when you press reset or power the board void setup() { // Khởi tạo chân LED là chân OUTPUT (trên VBLUno có sẵn 1 Led) pinMode(LED, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED, HIGH); // Bật sáng Led delay(1000); // Chờ 1 giây digitalWrite(LED, LOW); // Tắt led delay(1000); // Chờ 1 giây }
- Sử dụng chức năng upload (Menu => Sketch => Upload) để biên dịch chương trình và nạp firmware xuống mạch VBLUno.
- Nếu biên dịch và nạp thành công, bạn sẽ nhận được thông báo “Device programmed”
Hình 4: Ví dụ hello world đã được biên dịch và nạp thành công
4. Chạy application
Sau khi nạp, chuyển cầu nối trên jump J7 về vị trí cho phép chạy Application (vị trí 2-3, gần phía cổng USB). Bạn quan sát LED chỉ thị trên mạch VBLUno, lúc này nó sẽ nhấp nháy theo chu kỳ 2s. Chúc mừng bạn đã thực hiện xong ví dụ đầu tiên với Arduino IDE cho bo mạch VBLUno.
Đi xa hơn
Có thể thấy, chúng ta có thể thực hiện được các ví dụ cơ bản của Arduino IDE trên bo mạch VBLUno. Trong bài viết tiếp theo, chúng tôi sẽ trình bày những ví dụ cơ bản với giao tiếp BLE, thế mạnh của VBLUno.
Chân thành cảm ơn bạn đã đọc tài liệu này. Mong nhận được ý kiến đóng góp của các bạn.