NVIDIA Jetson Nano: AI at the EDGE

, , Leave a comment

Kelebihan Jetson Nano sebagai sebuah platform untuk AI adalah kedekatannya dengan embedded system karena dilengkapi 40 pin GPIO seperti Raspberry Pi. Penggabungan AI dan physical computing melalui GPIO membuat Jetson Nano dapat digunakan sebagai device untuk EDGE COMPUTING (bandingkan dengan CLOUD COMPUTING). Untuk menggunakan pin tersebut, Jetson Nano memiliki library bernama Jetson.GPIO yang memiliki “grammar” dan dialek bahasa yang sama dengan RPi.GPIO. Hal ini dimaksudkan agar script yang sebelumnya didevelop dengan Raspberry Pi, bisa langsung diterapkan ke Jetson Nano dengan mudah.

Saat ini pengoperasian GPIO tidak terbatas dengan library Jetson.GPIO saja, tetapi juga bisa dilakukan dengan library Circuitpython dari Adafruit. Untuk mengoperasikan GPIO saya lebih tertarik untuk menggunakan Circuitpython dari Adafruit dibandingkan dengan Jetson.GPIO karena ada beberapa alasan. Utamanya adalah karena penggunaan library Circuitpython membuka jendela lebih luas untuk memadukan Jetson Nano dengan sensor atau display yang lebih banyak dan lebih pasti keberhasilannya.

Setup

Untuk mengakses GPIO diperlukan sebuah group dan menambahkan user name kita kedalam group tersebut

sudo groupadd -f -r gpio
sudo usermod -a -G gpio nama_user

Setelah itu kita lakukan download jetson-gpio dari repository, install dan mengcopy 99-gpio.rules ke /etc/udev/rules.d. Instalasi jetson-gpio sebenarnya opsional.

cd ~
git clone https://github.com/NVIDIA/jetson-gpio.git
cd jetson-gpio
sudo python3 setup.py install
sudo cp ~/jetson-gpio/lib/python/Jetson/GPIO/99-gpio.rules /etc/udev/rules.d

Baru setelahnya kita install library adafruit yang diberi nama adafruit-blinka untuk mengakses GPIO.

sudo pip3 install adafruit_blinka

Perlu diingat, kesamaan Jetson Nano dan Raspberry Pi disini adalah sama-sama hanya memiliki pin digital. Tidak ada pin analog.

Perbedaan menggunakan library Circuitpython vs. Jetson.GPIO bisa dilihat sebagai berikut. Dan sebagai bantuan kita gunakan tabel dibawah ini untuk melihat penomoran ke empat puluh pin tersebut. Layout ini sangat familiar dengan Raspberry Pi termasuk posisi power rail, ground dan fungsi-fungsi alternatif dari setiap pin seperti I2C, UART, SPI.

Berikut ini perbedaan gaya bahasa Jetson GPIO dengan Circuitpython. Secara umum, Circuitpython sedikit lebih panjang untuk menyalakan sebuah led dibandingkan dengan Jetson GPIO dalam bagian inisiasi hardware saja, selebihnya tergantung seberapa efisien kita menulis bahasa python.

Untuk membuktikan kemudahan yang ditawarkan oleh library circuitpython di Jetson Nano saya mencoba untuk mengakses OLED SSD1306 I2C. Untuk itu, saya perlu memastikan terlebih dahulu apakah I2C sudah aktif.

Setelah itu, memastikan jika I2C device terdeteksi saat pin SDA dan SCL dari display oled dihubungkan ke pin D2 (SDA) dan D3 (SCL). Adanya value dari I2C detect meyakinkan kita jika koneksi kabel dan object i2c berfungsi. Jika tidak ada deteksi, ada kemungkinan dari koneksi (salah pin, kabel putus, atau display i2c bermasalah).

Lakukan instalasi library adafruit_ssd1306 terlebih dahulu dengan pip3 install adafruit_ssd1306 sebelum menggunakannya.

Dan ternyata benar, oled bisa langsung digunakan dengan cara yang sama seperti kita menggunakannya di sistem circuitpython pada microcontroller.

Hasilnya sebagai berikut:

Kesimpulan

NVIDIA memiliki keseriusan untuk membuat produknya Jetson Nano untuk dapat diterima dengan mengadopsi hal-hal positif dari Raspberry Pi sehingga memudahkan pengguna yang ingin berpindah ke platform AI dengan seluruh kemudahan Raspi. Dukungan yang diberikan oleh Adafruit dengan mengintegrasikan librarynya ke Jetson Nano, selain demi tujuan internal dalam mempopulerkan ekosistem Circuitpythonnya, Jetson Nano mendapatkan keuntungan lebih karena pengguna lebih dipermudah untuk mengintegrasikan Jetson Nano dengan sensor, display yang banyak jumlahnya.

 

Sebagai penutup, GPIO yang dapat diakses (dengan mudah) menjadikan Jetson Nano cocok digunakan sebagai AI EDGE computing. Jetson Nano dengan computing power yang besar dapat diletakkan langsung pada titik pengumpulan data yang berasal dari sensor yang terhubung dengan GPIO maupun camera, diolah langsung secara lokal dengan metode DNN (=Deep Neural Network) sebelum hasilnya dikirim ke network maupun cloud.

Terima kasih telah membaca artikel ini semoga memberikan pengetahuan dan manfaat. Mohon dukungannya untuk memberikan like, subscribe dan share artikel ini sebagai penyemangat saya untuk menuliskan artikel-artikel mendatang.

Facebook Comments
 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.