วันอังคารที่ 23 มิถุนายน พ.ศ. 2569
3-Phase Line Signal
ระบบไฟฟ้า 3 เฟส วัดระหว่าง L กับ N ได้ 220VAC คำนวณ Vp = 220 x √2 = 311V
แต่ถ้าวัดระหว่าง L กับ L จะได้ 380VAC คำนวณได้จาก 220VAC x √3 = 380VAC
คำนวณ Vp = 380 x √2= 537V
จากรูปจุดที่ Vab (เส้นสีแดง) มีค่าเป็น 0 คือจุดที่ Van = Vbn
ส่วนจุดที่ Vab มีค่าสูงสุดคือจุดที่ Van > Vbn ที่สุด (ตรงกลางรูปใบไม้ ขอบบน Van)
ส่วนจุดที่ Vab มีค่าต่ำสุดคือจุดที่ Van < Vbn ที่สุด (ตรงกลางรูปใบไม้ ขอบบน Vbn)
จุดที่ Vbc (เส้นสีเหลือง) มีค่าเป็น 0 คือจุดที่ Vbn = Vcn
ส่วนจุดที่ Vbc มีค่าสูงสุดคือจุดที่ Vbn > Vcn ที่สุด (ตรงกลางรูปใบไม้ ขอบบน Vbn)
ส่วนจุดที่ Vbc มีค่าต่ำสุดคือจุดที่ Vbn < Vcn ที่สุด (ตรงกลางรูปใบไม้ ขอบบน Vcn)
จุดที่ Vca (เส้นสีน้ำเงิน) มีค่าเป็น 0 คือจุดที่ Vcn = Van
ส่วนจุดที่ Vca มีค่าสูงสุดคือจุดที่ Vcn > Van ที่สุด (ตรงกลางรูปใบไม้ ขอบบน Vcn)
ส่วนจุดที่ Vca มีค่าต่ำสุดคือจุดที่ Vcn < Van ที่สุด (ตรงกลางรูปใบไม้ ขอบบน Van)
วันพฤหัสบดีที่ 4 ธันวาคม พ.ศ. 2568
แสดงผลภาพจาก Remote Machine ผ่าน XServer บน Windows
ดาวน์โหลด XServer และติดตั้งบน Windows
https://sourceforge.net/projects/vcxsrv/
เปิด XLaunch ปรับ Setting ที่ Display number 0 และ Disable Access Control ตามรูป
ใน Remote Machine ตั้งค่า DISPLAY มาที่ Windows Machine ด้วยคำสั่ง
export DISPLAY=<Windows Machine IP Address>:<Display number>
echo $DISPLAY
หากต้องการเปลี่ยนค่า DISPLAY เป็น default สามารถใช้คำสั่ง
export DISPLAY=:0
echo $DISPLAY
วันพฤหัสบดีที่ 27 พฤศจิกายน พ.ศ. 2568
Model Training on reComputer Jetson
ติดตั้ง YOLO ให้เรียบร้อยก่อน หากยังไม่ได้ติดตั้ง YOLO ให้ไปอ่านบทความนี้
https://maimemory.blogspot.com/2025/11/yolov8-on-recomputer-jetson.html
นำข้อมูลคลิปวิดีโอหรือรูปภาพที่ต้องการ Train ไปทำ dataset ใน roboflow ก่อน ตามคลิปนี้
ย้าย dataset เข้าไปโฟลเดอร์โปรเจคใน Jetson ซึ่งอาจย้ายโดยใช้คำสั่ง scp ใน cmd
scp <dataset folder> <username>@<ip address>:<jetson project folder path>
เชื่อมต่อการแสดงผลภาพจากใน Docker Container กับ X11 Display ด้วยคำสั่ง
xhost +local:docker
ในกรณีที่ยังไม่ได้สร้าง Docker Container ต้องสร้างก่อนโดยสร้างตัวแปร $t และ Pull Docker Container สำหรับ Run GPU จาก Ultralytics และ Run Container โดย map volume ของโฟลเดอร์โปรเจคใน Jetson ด้วย -v พร้อมเชื่อมต่อกล้อง USB /dev/video0 และ X11 Display สำหรับแสดงผลภาพจากใน Container ด้วยคำสั่ง
t=ultralytics/ultralytics:latest-jetson-jetpack4
sudo docker pull $t && sudo docker run -it --name <container name> -v <jetson project folder>:<container project folder> --ipc=host --runtime=nvidia --device /dev/video0:/dev/video0 --env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" $t
ในการแสดงผลภาพจากใน Container ตัวแปร DISPLAY จะต้องมีค่า default คือ DISPLAY=:0 ด้วย สามารถตรวจสอบได้ด้วยคำสั่ง
echo $DISPLAY
ทดสอบการเชื่อมต่อระหว่าง PyTorch กับ CUDA ภายใน GPU ด้วยการ Run Console ของ Python3 และใช้คำสั่ง
python3
import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.cuda.device_count())
print(torch.cuda.current_device())
print(torch.cuda.get_device_name(0))
import torchvision
print(torchvision.__version__)
exit()
exit
เตรียมไฟล์ train.py (device=0, imgsz=160) ไฟล์ detect.py (best.engine,device=0) ไฟล์ engine.py (สำหรับแปลงไฟล์ .pt เป็น .engine) และสร้าง venv สำหรับ Run ใน Docker Container จากนั้น Run Docker Container และ Copy โปรเจคโฟลเดอร์เข้าไปใน Docker Container ด้วยคำสั่ง
Start Container และตรวจสอบสถานะของ Container ด้วยคำสั่ง
sudo docker start <container name>
sudo docker ps -a
sudo docker cp <project folder including all files and venv> <container name>:/home
Exec เข้าไปใน Container และ Activate venv ด้วยคำสั่ง
sudo docker exec -it <container name> bash
cd ../home/<project folder>
source venv/bin/activate
pip list
ติดตั้ง Ultralytics ภายใน Docker Container ภายใต้ venv ด้วยคำสั่ง
python3 -m pip install pip --upgrade
pip install ultralytics
ติดตั้ง nano สำหรับแก้ไขไฟล์ใน Container ด้วยคำสั่ง
apt update
apt install nano -y
Run ไฟล์ train.py เพื่อเริ่มทำการเทรน model ด้วยคำสั่ง
รอจนกระทั่งเทรน model สำเร็จ จะได้ไฟล์ best.pt ต้องแปลงไฟล์ best.pt เป็น best.engine ด้วยการ Run ไฟล์ engine.py ด้วยคำสั่ง
python3 engine.py
ไฟล์ engine.py
from ultralytics import YOLO
model = YOLO("best.pt")
model.export(format="engine")
ทดสอบ model ที่ได้จากการเทรน ด้วยการ Run ไฟล์ detect.py ด้วยคำสั่ง
python3 detect.py
ไฟล์ detect.py
from ultralytics import YOLO
import cv2
print(cv2.__version__)
model = YOLO("best.engine")
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
results = model(source=frame, save=False, device=0, conf=0.7)
for r in results:
annotated = r.plot()
cv2.imshow("Live Camera", annotated)
if(cv2.waitKey(1) & 0xFF == ord('q')):
break
cap.release()
cv2.destroyAllWindows()
ออกจาก Virtual Environment และออกจาก Docker Container ด้วยคำสั่ง
deactivate
exit
YOLOv8 on reComputer Jetson
https://maimemory.blogspot.com/2025/11/update-2025-flash-nvidia-jetson-nano.html
เปิด Terminal ตรวจสอบเวอร์ชั่นของ Python ด้วยคำสั่ง
python --version
python3 --version
จะพบว่า Jetpack 4.6.6 จะติดตั้ง Python3.6 มา แต่ Package Ultralytics รองรับการใช้งานร่วมกับ Python3.8 ขึ้นไป จึงต้อง Update Package และติดตั้ง Python3.8 ด้วยคำสั่ง
sudo apt update
sudo apt search python3
sudo apt install python3.8
ตรวจสอบเวอร์ชั่นของ Python3 ด้วยคำสั่ง
python3 --version
python3.8 --version
จะเห็นได้ว่า Default ของคำสั่ง python3 คือ python3.6 ต้องเปลี่ยนให้ Default ของคำสั่ง python3 เป็น python3.8 ด้วยคำสั่ง
echo alias python3="python3.8" >> ~/.bashrc
cat ~/.bashrc
python3 --version
source ~/.bashrc
python3 --version
ติดตั้ง pip (Package Installer for Python) ด้วยคำสั่ง
sudo apt search python3-pip
psudo apt install python3-pip
ตรวจสอบเวอร์ชั่นของ pip และอัพเกรด pip ด้วยคำสั่ง
sudo apt search python3-pip
sudo apt install python3-pip
pip3 --version
python3 -m pip --version
python3 -m pip install pip --upgrade
cd มาที่ Desktop จากนั้นสร้างโฟลเดอร์ YOLOv8 และติดตั้งโมดูล venv (Virtual Environment) สำหรับ Python3.8 เพื่อแยก Environment ของโปรเจคออกจาก Global Package
cd Desktop
mkdir YOLOv8
cd YOLOv8
sudo apt install python3.8-venv
ตรวจสอบการติดตั้งโมดูล venv และสร้าง Virtual Environment ภายในโปรเจคด้วยคำสั่ง
dpkg --list | grep venv
apt list | grep venv
apt list --installed | grep venv
python3 -m venv venv
ls
ติดตั้ง jtop (Jetson Table of Processes) สำหรับมอนิเตอร์การทำงานของ Jetson และ Run ด้วยคำสั่ง
sudo python3 -m pip install jetson-stats
sudo jtop
เชื่อมต่อกล้อง USB จากนั้นตรวจสอบ Library V4L2 สำหรับใช้งานกล้องที่ติดตั้งมาพร้อม Jetpack ด้วยคำสั่ง
cat /lib/modules/$(uname -r)/modules.builtin | grep v4l2
ติดตั้ง v4l2-ctl (V4L Utils) สำหรับใช้งานร่วมกับกล้องและตรวจสอบ Device กล้องที่เชื่อมต่ออยู่ด้วยคำสั่ง
sudo apt install v4l-utils
v4l2-ctl --list-devices
เชื่อมต่อการแสดงผลภาพจากใน Docker Container กับ X11 Display ด้วยคำสั่ง
xhost +local:docker
สร้างตัวแปร $t และ Pull Docker Container สำหรับ Run GPU จาก Ultralytics และ Run Container โดย map volume ของโฟลเดอร์โปรเจคใน Jetson ด้วย -v พร้อมเชื่อมต่อกล้อง USB /dev/video0 และ X11 Display สำหรับแสดงผลภาพจากใน Container ด้วยคำสั่ง
t=ultralytics/ultralytics:latest-jetson-jetpack4
sudo docker pull $t && sudo docker run -it --name <container name> -v <jetson project folder>:<container project folder> --ipc=host --runtime=nvidia --device /dev/video0:/dev/video0 --env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" $t
ในการแสดงผลภาพจากใน Container ตัวแปร DISPLAY จะต้องมีค่า default คือ DISPLAY=:0 ด้วย สามารถตรวจสอบได้ด้วยคำสั่ง
echo $DISPLAY
ทดสอบการเชื่อมต่อระหว่าง PyTorch กับ CUDA ภายใน GPU ด้วยการ Run Console ของ Python3 และใช้คำสั่ง
python3
import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.cuda.device_count())
print(torch.cuda.current_device())
print(torch.cuda.get_device_name(0))
import torchvision
print(torchvision.__version__)
exit()
exit
เตรียมไฟล์ webcam.py (yolov8n.engine,device=0) และไฟล์ engine.py (สำหรับแปลงไฟล์ .pt เป็น .engine) สำหรับ Run ใน Docker Container จากนั้น Run Docker Container และ Copy โปรเจคโฟลเดอร์เข้าไปใน Docker Container ด้วยคำสั่ง
Start Container และตรวจสอบสถานะของ Container ด้วยคำสั่ง
sudo docker start <container name>
sudo docker ps -a
sudo docker cp <project folder including all files and venv> <container name>:/home
Exec เข้าไปใน Container และ Activate Virtual Environment ด้วยคำสั่ง
sudo docker exec -it <container name> bash
cd ../home/<project folder>
source venv/bin/activate
pip list
ติดตั้ง Ultralytics ภายใน Docker Container ภายใต้ Virtual Environment ด้วยคำสั่ง
python3 -m pip install pip --upgrade
pip install ultralytics
ติดตั้ง nano สำหรับแก้ไขไฟล์ใน Container ด้วยคำสั่ง
apt update
apt install nano -y
แปลงไฟล์ yolov8n.pt เป็น yolov8n.engine ด้วยการ Run ไฟล์ engine.py ด้วยคำสั่ง
python3 engine.py
ไฟล์ engine.py
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
model.export(format="engine")
ถอนการติดตั้ง opencv-python-headless และติดตั้ง opencv-python ด้วยคำสั่ง
pip list
pip uninstall opencv-python-headless
pip install opency-python
Run ไฟล์ webcam.py เพื่อ Detect Object ผ่านกล้อง USB ด้วยคำสั่ง
python3 webcam.py
ไฟล์ webcam.py
from ultralytics import YOLO
import cv2
print(cv2.__version__)
model = YOLO("yolov8n.engine")
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
results = model(source=frame, save=False, device=0, conf=0.7)
for r in results:
annotated = r.plot()
cv2.imshow("Live Camera", annotated)
if(cv2.waitKey(1) & 0xFF == ord('q')):
break
cap.release()
cv2.destroyAllWindows()
ออกจาก Virtual Environment และออกจาก Docker Container ด้วยคำสั่ง
deactivate
exit
[Update 2025] Flash Nvidia Jetson Nano Module ด้วย SDK Manager 2.3.0 พร้อมติดตั้ง CUDA
ติดตั้ง 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 เวอร์ชัน 2.3.0
จะได้ไฟล์ sdkmanager_2.3.0-amd64.deb มา
ดับเบิ้ลคลิกที่ไฟล์เพื่อติดตั้ง SDK Manager
หลังจากติดตั้งสำเร็จ เปิด Terminal แล้วพิมพ์คำสั่ง sdkmanager เพื่อเปิดซอฟต์แวร์ขึ้นมา
ทำการ Login ด้วย Nvidia Developer Account (จะต้องทำสมัคร Account ก่อน)
เสียบสาย 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.6
คลิกเครื่องหมายถูกที่ Jetson SDK Components ออก เพื่อติดตั้งเฉพาะ OS เท่านั้น
คลิก Accept license agreement จากนั้นคลิก Continue เพื่อเริ่ม Download และติดตั้ง โดยให้กรอก Password ของ OS Ubuntu ที่ใช้อยู่
SDK Manager จะทำการ Download และ Create OS image รอจนครบ 100%
จากนั้นจะเข้าสู่กระบวนการ Flash OS หากเชื่อมต่อ Nvidia Jetson Nano ที่อยู่ในโหมด Factory Recovery ให้เลือกข้อ 1 เป็น Manual Setup แต่ถ้าเชื่อมต่อแบบปกติให้เลือกเป็น Automatic Setup จากนั้นกรอก Username และ Password ของ Nvidia Jetson Nano ที่ต้องการใช้งาน แล้วคลิก Flash
หลังจาก Flash สำเร็จ SDK Manager จะแสดงข้อความ Installation Completed Successfully คลิก Finish and Exit
Shutdown Nvidia Jetson Nano จากนั้นติดตั้ง SSD สำหรับเพิ่มหน่วยความจำบริเวณใต้บอร์ดให้เรียบร้อย เนื่องจากการติดตั้ง CUDA จำเป็นต้องใช้พื้นที่หน่วยความจำมากกว่า 16GB ซึ่งมากกว่าขนาดของ eMMC ของ Nvidia Jetson Nano
เปิดการใช้งาน Nvidia Jetson Nano อีกครั้ง จาก Desktop ไปที่เมนู Disks จากนั้นเลือกที่ SSD แล้ว Format Disk...
ตั้งชื่อ SSD ที่ติดตั้งในช่อง Volume Name และเลือก Type เป็น Internal disk for use with Linux systems only (Ext4) จากนั้นคลิก Create
กลับไปที่ Desktop ทำการ Clone rootOnNVMe ด้วยคำสั่ง
git clone https://github.com/limengdu/rootOnNVMe.git
Run Script เพื่อย้ายไฟล์ใน Root Directory ทั้งหมดจาก eMMc มายัง SSD ด้วยคำสั่ง
cd rootOnNVMe/
./copy-rootfs-ssd.sh
Run Script เพื่อย้าย Service rootfs จาก eMMc มายัง SSD ด้วยคำสั่ง
./setup-service.sh
จากนั้น Reboot Nvidia Jetson Nano จะเห็นว่า eMMC จะกลายเป็นหน่วยความจำแบบต่อขยาย ส่วน SSD จะกลายเป็นหน่วยความจำหลักหรือ Root ของ Nvidia Jetson Nano แทน
เมื่อมีหน่วยความจำเพียงพอแล้วก็สามารถติดตั้ง CUDA ต่อได้ โดยการเปิด SDK Manager อีกครั้ง เชื่อมต่อบอร์ดให้เรียบร้อย ใน STEP 02 ให้คลิกเลือก Jetson OS ออก แล้วคลิกที่ Jetson SDK Components แทน และควรเพิ่มหน่วยความจำ dev/sda1 ของ Ubuntu 18.04 LTS บน VMWare ด้วย เพราะต้องดาวน์โหลดไฟล์ขนาดใหญ่หลายไฟล์เพื่อติดตั้ง CUDA
จากนั้นคลิก Continue เพื่อเข้าสู่กระบวนการติดตั้ง CUDA คล้ายกับการ Flash OS ตามปกติ หลังจากติดตั้งสำเร็จ SDK Manager จะแสดงข้อความ Installation Completed Successfully คลิก Finish and Exit
คลิปวีดีโอจากช่อง JetsonHacks
วันพุธที่ 3 กรกฎาคม พ.ศ. 2567
ทดสอบความเร็วในการอ่าน/เขียน 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)
วันศุกร์ที่ 21 มิถุนายน พ.ศ. 2567
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 license agreement จากนั้นคลิก Continue เพื่อเริ่ม Download และติดตั้ง โดยให้กรอก Password ของ OS Ubuntu ที่ใช้อยู่
SDK Manager จะทำการ Download และ Create OS image รอจนครบ 100%
จากนั้นจะเข้าสู่กระบวนการ Flash OS หากเชื่อมต่อ Nvidia Jetson Nano ที่อยู่ในโหมด Factory Recovery ให้เลือกข้อ 1 เป็น Manual Setup แต่ถ้าเชื่อมต่อแบบปกติให้เลือกเป็น Automatic Setup จากนั้นกรอก Username และ Password ของ Nvidia Jetson Nano ที่ต้องการใช้งาน แล้วคลิก Flash
สมัครสมาชิก:
บทความ (Atom)
























