บทความ

ทดสอบความเร็วในการอ่าน/เขียน SSD ด้วยซอฟต์แวร์ CrystalDiskMark 8 ภาค #3

รูปภาพ
หลังจากได้ HIKSEMI รุ่น MD202 ซึ่งเป็น Enclosure ของ M.2 NVMe SSD มา จึงทำการทดสอบโดยใส่  Toshiba M.2 NVMe PCIe 3.0 SSD 512 GB ไว้ข้างใน ทำให้การ Interface ระหว่าง SSD กับคอมพิวเตอร์เป็น USB (NVM Express) ผลการทดสอบมีดังต่อไปนี้ 1)  Toshiba M.2 NVMe PCIe 3.0 SSD 512 GB  (NTFS) - USB type C to type C 2)  Toshiba M.2 NVMe PCIe 3.0 SSD 512 GB  (NTFS) - USB type A to type C

Flash Nvidia Jetson Nano Module ด้วย SDK Manager

รูปภาพ
ติดตั้ง VMWare ก่อนแล้วติดตั้ง OS Ubuntu 18.04 LTS ลงบน VMWare จากนั้น Run Ubuntu แล้วเปิด Web Browser พิมพ์ค้นหา SDK Manager แล้วคลิก Link ของ Nvidia Developer เลื่อนลงมาด้านล่างไปที่ Visit SDK Manager Downloads Archive for older versions เลือก Download SDK Manager เวอร์ชัน 1.9.3 เลือก Save File แล้วคลิก OK จะได้ไฟล์ sdkmanager_1.9.3-amd64.deb มา ดับเบิ้ลคลิกที่ไฟล์เพื่อติดตั้ง SDK Manager หลังจากติดตั้งสำเร็จ เปิด Terminal แล้วพิมพ์คำสั่ง sdkmanager เพื่อเปิดซอฟต์แวร์ขึ้นมา ทำการ Login ด้วย Nvidia Developer Account (จะต้องทำสมัคร Account ก่อน) หากมีหน้าต่าง New version is available ขึ้นมา ให้เลือก Later เสียบสาย USB ระหว่าง Nvidia Jetson Nano ในโหมด Factory Recovery กับคอมพิวเตอร์ SDK Manager จะสามารถ Detect Jetson Nano modules ได้ คลิกเครื่องหมากถูกที่ Host Machine ออก เพราะเราต้องการ Download เฉพาะซอฟต์แวร์ที่จะใช้กับ Nvidia Jetson Nano โดยเลือก Target Operating System เป็น Linux JetPack 4.6.4 คลิกเครื่องหมายถูกที่ Jetson SDK Components ออก เพื่อติดตั้งเฉพาะ OS เท่านั้น คลิก Accept...
รูปภาพ
เริ่มต้นสร้าง Workspace ด้วยคำสั่ง mkdir catkin_ws เข้าไปใน catkin_ws จากนั้นสร้างโฟลเดอร์ src ด้วยคำสั่ง mkdir src สร้าง Environment สำหรับ Complie ด้วยคำสั่ง catkin_make ใช้คำสั่ง ls จะพบโฟล์เดอร์ build, devel และ src ทำให้ Ubuntu รู้จัก setup.bash ใน devel ด้วยคำสั่ง echo "/home/catkin_ws/devel/setup.bash" >> ~/.bashrc Run ไฟล์ .bashrc ด้วยคำสั่ง source ~/.bashrc เข้าไปใน catkin_ws/src แล้ว clone repository ที่ชื่อว่า bogie มาด้วยคำสั่ง cd catkin_ws/src git clone https://github.com/midnightpen/bogie.git ออกไปยัง catkin_ws แล้ว Complie ด้วยคำสั่ง cd .. catkin_make หากพบ error ให้ติดตั้ง Library ที่ขาดเข้าไปด้วยคำสั่ง sudo apt-get install ros-melodic-amcl sudo apt-get install ros-melodic-dwa-local-planner sudo apt-get install ros-move-base sudo apt-get install ros-melodic-gmapping sudo apt-get install ros-melodic-map-server sudo apt-get install ros-melodic-bfl sudo apt-get install ros-melodic-serial sudo apt-get install libavcodec-dev sudo apt-get install libswscale-de...

Remote SSH ROS Robot

รูปภาพ
ssh เข้าไปที่ user@ip-address บางทีถ้าเคย ssh user อื่นด้วย ip address เดียวกัน อาจมีการตรวจพบ old ssh key ลบ old ssh key ด้วยคำสั่ง ssh-keygen -f ''home/user/.ssh/known_hosts" -R "ip-address" จากนั้น ssh  user@ip-address แล้วตอบ yes เพื่อสร้าง new ssh key Ubuntu จะทำการเพิ่ม known host เข้าไปใน list และเราจะเข้าไปใน terminal ของ robot ได้ ตรวจสอบ ROS package ที่ติดตั้งไปแล้วได้จากคำสั่ง rospack list-names จากนั้นติดตั้ง package ที่ต้องใช้ด้วยคำสั่ง sudo apt install ros-<distro>-<package-name> เริ่มต้นใช้งาน ROS ด้วยคำสั่ง roscore จะปรากฏชื่อ distro ที่ติดตั้งไว้ New terminal จากนั้นตรวจสอบพอร์ต USB ที่มีการเชื่อมต่อด้วยคำสั่ง ls /dev/tty* เปิดโหมด R/W ที่พอร์ต USB0 ด้วยคำสั่ง sudo chmod 777 /dev/ttyUSB0 จากนั้นรัน RPLIDAR ที่พอร์ต USB0 ด้วยคำสั่ง rosrun rplidar_ros rplidarNode _port:=/dev/ttyUSB0 ตรวจสอบ topic จาก RPLIDAR ด้วยคำสั่ง rostopic list จะพบ topic /scan ลอง echo เพื่อดูค่าที่ได้จาก topic /scan ด้วยคำสั่ง rostopic echo /scan จะพบข้อมูลจำนว...

ปัญหาของการย้าย flows.json ข้าม Node-RED Instance

รูปภาพ
ในการการย้ายให้ Copy ไฟล์ flows.json ในโฟลเดอร์ .node-red แค่ไฟล์เดียวพอ หาก Copy ไฟล์ flows_cred.json ไปด้วย จะเกิด Error ทำให้ Run Node-RED ไม่ได้ แบบนี้ https://stackoverflow.com/questions/48270905/node-red-node-credentials เพราะไฟล์ flows_cred.json ถูกเข้ารหัส ( encrypted)  ไว้ ซึ่ง Node-RED จะ G enerate Random Key ขึ้นมา หากไม่ได้กำหนดไว้ใน credentialSecret ของไฟล์ settings.js ทำให้เวลาย้ายไฟล์  flows_cred.json ไปยัง Instance ใหม่ Node-RED จึงถอดรหัส (decrypted) ไม่ได้ วิธีแก้ไขคือลบไฟล์ flows_cred.json ออกให้เหลือแต่ flows.json จากนั้น Run Node-RED ขึ้นมาจะสามารถ Run ได้แต่จะพบ Warning ตามรูปด้านล่าง เนื่อง Node-RED ไม่พบไฟล์ flow_cred.json จากนั้นทำการแก้ไขไฟล์ settings.js โดย Uncomment  credentialSecret แล้วตั้งรหัสตามที่ต้องการ จากนั้น Restart Node-RED ขึ้นมาใหม่ จะเหลือแค่ Warning Encrypted credentials not found เนื่องจากยังไฟล์ flows_cred.json ยังไม่ถูก Generate ขึ้นมาใหม่ ให้กด Deploy ใน Node-RED อีกครั้ง Node-RED จะ Generate flows_cred.json ขึ้นมาใหม่ จากนั้น...

Python 3.12.3 รองรับ MediaPipe แล้ว

รูปภาพ
ก่อนหน้านี้ถ้าติดตั้ง mediapipe บน Python 3.12.2 จะพบปัญหาว่าไม่สามารถติดตั้งได้ พอไป Search Google ดู จะได้คำตอบว่า Python 3.12 ไม่รองรับการใช้งานร่วมกับ mediapipe ให้ไปใช้ Python 3.7 ถึง 3.10 แทน ทำให้ต้องติดตั้ง Python 3.10.10 เพิ่มเข้าไปเป็น Python สองเวอร์ชันอยู่ในเครื่อง และต้องมา Switch เลือกเวอร์ชันของ Python เพื่อใช้งานอีก https://stackoverflow.com/questions/77256410/no-matching-distribution-found-for-mediapipe แต่ปัจจุบันปัญหานี้ได้หมดไปแล้วด้วยการมาเยือนของ Python 3.12.3 ที่พึ่ง Release เมื่อวันที่ 9 เมษายน 2024 ที่ผ่านมา ทำให้เราสามารถติดตั้ง mediapipe บน Python 3.12 ได้