Hướng dẫn

Nghịch Jetson Nano #1: Cài đặt màn hình OLED i2c và xây dựng màn hình hiển thị hiệu suất cho máy tính nhúng.

Cài đặt màn hình hiển thị hiệu suất cho Jetson Nano

Đối với những dự án thực tế trên những mạch nhúng nói chung hay Jetson Nano nói riêng thì việc hiện thị các thông tin trên một màn hình LCD hay Oled nhỏ là điều tương đối cần thiết bởi vì không lúc nào ta cũng có thể kết nối mạch máy tính nhúng với màn hình qua cổng HDMI,… Do đó hôm nay, mình muốn giới thiệu đến mọi người về cách cài đặt màn hình Oled giáo tiếp I2C cho máy tính nhúng nói chung và Jetson Nano nói riêng để hiện thị các thông tin về hiệu suất sử dụng tài nguyên của máy tính như: IP để biết máy tính đã biểu thị tình trạng kết nối của mạng, CPU, RAM, DISK,…

Thiết bị mình sử dụng trong bài viết này: Jetson Nano (đã được cài JetPack 4.5 và thiết lập Wi-Fi), màn hình Oled giao tiếp I2C (128×64).

Kết nối màn hình Oled giao tiếp I2C với mạch máy tính nhúng.

Để kết nối máy tính nhúng với màn hình Oled giao tiếp I2C thì chúng ta sẽ đấu nối thứ tự như sau:

Bảng thông tin chân đấu nối.

Vị trí kết nối dây SDA và SCLCài đặt màn hình Oled giao tiếp I2C trên mạch máy tính nhúng.

Sau khi kết nối các chân GPIO của màn hình Oled giao tiếp I2C với mạch máy tính nhúng Jetson Nano, ta tiến hành khởi động máy tính nhúng và kết nối với máy tính nhúng. Ở đây mình kết nối thông qua SSH, mọi người có thể kết nối thông qua cổng COM hoặc kết nối mạch máy tính nhúng với màn hình thông qua HDMI để tiến hành thực hiện một số cài đặt hiển thị màn hình oled. Trước khi code phần hiện thị màn hình oled giao tiếp I2C ta cần cài một số thư viện cho Python bằng cách chạy các lệnh như sau trên terminal:

git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
cd Adafruit_Python_SSD1306
sudo python setup.py install
sudo apt-get install libjpeg-dev zlib1g-dev psutil Pillow

Sau khi đã cài đặt một số thư viện cần thiết ta tiến hành thiết lập giao tiếp I2C như sau:

# <username> là username đăng ký của hệ điều hành

sudo usermod -aG i2c <username>

Sau khi thiết lập chạy lệnh ở trên ta sẽ khởi động lại mạch nhúng

sudo reboot

Sau khi khởi động lại mạch nhúng và ta tiến hành kết nối lại với mạch để kiểm tra thông tin kết nối màn hình oled.

sudo i2cdetect -y -r 1

Kết quả tìm kiếm địa chỉ I2C

Nhìn vào ta có thể thấy địa chỉ 3c của màn hình oled. Như này cho thấy ta đã kết nối thành công mạch máy tính nhúng với màn hình oled thông qua giao tiếp I2C.

Thiết lập hiển thị màn hình OLED trên máy tính nhúng.

Sau khi thực hiện các bước trên, ta tiến hành tạo một file python thông qua lệnh sau:

sudo nano i2c.py

và thực code như sau: https://pastebin.com/3EDQbKu4

Sau dòng code trên ta sẽ nhận được kết quả dòng chữ Hello World! trên màn hình oled.

Xây dựng màn hình hiển thị hiệu suất cho máy tính nhúng.

Hình ảnh kết quả màn hình hiển thị hiệu suất của Jetson Nano

Để hiển thị những thông tin như trên thì dưới đây là source code mà mình sử dụng, nếu gặp lỗi thì mọi người có thể cài thêm thư viện psutil. (pip install psutil )

https://pastebin.com/94CKpx5K

Thể làm sao để mỗi lần khởi động máy tính thì thống sẽ tự động khởi chạy hiển thị hiệu suất trên màn hình oled thì ta sẽ tạo một service trên hệ thống thì chúng ta sẽ cài PM2 và thiết lập service trên nó.

sudo pm2 startup
sudo pm2 startup systems
sudo systemctl status pm2-root.service
sudo pm2 start i2c.py --interpreter=python3
sudo pm2 save

Tổng kết lại

Nhìn chung thì màn hình oled trên máy tính nhúng có rất nhiều ứng dụng trong giải quyết các vấn đề thực tế, thông bài viết này có thể giúp mọi người thiết lập màn hình oled giao tiếp I2C với máy tính nhúng Jetson Nano và xây dựng màn hình hiển thị thông tin hiệu suất.

Visits: 2001