Đã được đăng vào 19/10/2020 @ 15:03
Cài đặt Octoprint lên Raspbian
Bài trước tôi đã nói về cài đặt Octoprint trên Raspberry Pi bằng file .Img và chép vào thẻ nhớ
Bài viết này tôi sẽ nói rõ hơn về việc cài đặt Octopi trên Raspbian của bạn như thế nào!
Chắc các bạn cũng đã hiểu rõ về Octoprint là gì và có thể làm những gì, và các cài đặt sử dụng cũng dễ dàng đúng không nào ở bài trước?
Ở bài này tôi sẽ hướng dẫn các bạn cài đặt trên Raspbian của bạn để các bạn có thể chủ động hơn và tuỳ chỉnh tuỳ thích nhé!
Xem thêm:
Quan trọng: Hướng dẫn có một số kiến thức cơ bản hơn về dòng lệnh Linux. Để theo dõi, bạn cần phải biết:
- Cách sử dụng dòng lệnh trên terminal, sách chỉnh sửa file text từ trong dòng lệnh.
- Sự khác nhau giữa tài khoản người dùng của bạn (ví dụ: pi) và tài khoản người dùng superuser.
- Làm thế nào để SSH vào Pi của bạn (vì có thể bạn sẽ không cần đến màn hình).
- Cách sử dụng Git và cách sử dụng Internet để giúp bạn nếu bạn gặp vấn đề.
Yêu cầu phần cứng
- 1 Máy in 3D
- 1 máy tính Raspberry 3 (không nên sử dụng Pi Zero W)
- 1 thẻ nhớ
- 1 Picam hoặc Usb webcam(có hỗ trợ chế độ plug and play nhé)
- Dây usb máy in (Type-B to Type-A)
Yêu cầu phần mềm
- Python 2.7
- MJPG-Streamer
- Octoprint
Cài đặt
Cài đặt octoprint
cd ~ sudo apt update sudo apt install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential mkdir OctoPrint && cd OctoPrint virtualenv venv source venv/bin/activate pip install pip --upgrade pip install https://get.octoprint.org/latest
Thêm quyền sử dụng serial port cho user pi
sudo usermod -a -G tty pi sudo usermod -a -G dialout pi
Khởi động octoprint
pi@raspberrypi ~ $ ~/OctoPrint/venv/bin/octoprint serve * Running on http://yourip:5000/
Các phiên bản khác của octoprint
Các bạn có thể cài đặt các phiên bản khác nhau của octoprint
- Phiên bản stable mới nhất:
source ~/OctoPrint/venv/bin/activate pip install https://get.octoprint.org/latest
- Phiên bản trước stable hiện tại :
source ~/OctoPrint/venv/bin/activate pip install https://get.octoprint.org/last
- Phiên bản Maintenance RC
source ~/OctoPrint/venv/bin/activate pip install https://get.octoprint.org/maintenance-rc
- Phiên bản Devel RC
source ~/OctoPrint/venv/bin/activate pip install https://get.octoprint.org/devel-rc
Cài đặt khởi động từ hệ thống
wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.init && sudo mv octoprint.init /etc/init.d/octoprint wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.default && sudo mv octoprint.default /etc/default/octoprint sudo chmod +x /etc/init.d/octoprint sudo nano /etc/default/octoprint
Bỏ comment # cho dòng lệnh sau đây
DAEMON=/home/pi/OctoPrint/venv/bin/octoprint
Tiếp tục thực thi dòng sau:
sudo update-rc.d octoprint defaults.
Okey bây giờ reboot lại và bạn có thể bật, tắt hoặc khởi động lại Octoprint
sudo service octoprint {start|stop|restart}
Tải và cài đặt MJPG-Streamer
cd ~ sudo apt install subversion libjpeg62-turbo-dev imagemagick ffmpeg libv4l-dev cmake git clone https://github.com/jacksonliam/mjpg-streamer.git cd mjpg-streamer/mjpg-streamer-experimental export LD_LIBRARY_PATH=. Make
Note:
Với phiên bản Jessie các bạn chạy lệnh sau:
sudo apt install subversion libjpeg62-turbo-dev imagemagick libav-tools libv4l-dev cmake
Với bản Wheezy:
sudo apt install subversion libjpeg8-dev imagemagick libav-tools libv4l-dev cmake
Sau khi cài đặt thành công các bạn có thể khởi động stream-camera bằng lệnh sau:
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"
Nếu các bạn sử dụng Pi Camera thì chạy lệnh sau:
./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so"
Và nhận được kết quả như thế này:
MJPG Streamer Version: svn rev: i: Using V4L2 device.: /dev/video0 i: Desired Resolution: 640 x 480 i: Frames Per Second.: 5 i: Format............: MJPEG [...] o: www-folder-path...: disabled o: HTTP TCP port.....: 8080 o: username:password.: disabled o: commands..........: enabled
Truy cập vào địa chỉ có cấu trúc sau: http://yourip:8080/?action=stream
Nếu đã nhận được video stream từ camera thì bạn đã cài đặt thành công!
- Stream URL: http://yourip:8080/?action=stream
- Snapshot URL: http://yourip:8080/?action=snapshot
- Path to FFMPEG: /usr/bin/ffmpeg
Bật Octoprint lên và config
Chạy lệnh sau
Cd /home/pi/ Mkdir scripts Sudo nano /home/pi/scripts/webcam
Paste vào đoạn code sau:
#!/bin/bash # Start / stop streamer daemon case "$1" in start) /home/pi/scripts/webcamDaemon >/dev/null 2>&1 & echo "$0: started" ;; stop) pkill -x webcamDaemon pkill -x mjpg_streamer echo "$0: stopped" ;; *) echo "Usage: $0 {start|stop}" >&2 ;; esac
chạy tiếp lệnh sau
Sudo nano /home/pi/scripts/webcamDaemon
Paste vào đoạn code sau:
#!/bin/bash MJPGSTREAMER_HOME=/home/pi/mjpg-streamer/mjpg-streamer-experimental MJPGSTREAMER_INPUT_USB="input_uvc.so" MJPGSTREAMER_INPUT_RASPICAM="input_raspicam.so" # init configuration camera="auto" camera_usb_options="-r 640x480 -f 10" camera_raspi_options="-fps 10" if [ -e "/boot/octopi.txt" ]; then source "/boot/octopi.txt" fi # runs MJPG Streamer, using the provided input plugin + configuration function runMjpgStreamer { input=$1 pushd $MJPGSTREAMER_HOME echo Running ./mjpg_streamer -o "output_http.so -w ./www" -i "$input" LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -w ./www" -i "$input" popd } # starts up the RasPiCam function startRaspi { logger "Starting Raspberry Pi camera" runMjpgStreamer "MJPGSTREAMERINPUTRASPICAMMJPGSTREAMERINPUTRASPICAMcamera_raspi_options" } # starts up the USB webcam function startUsb { logger "Starting USB webcam" runMjpgStreamer "MJPGSTREAMERINPUTUSBMJPGSTREAMERINPUTUSBcamera_usb_options" } # we need this to prevent the later calls to vcgencmd from blocking # I have no idea why, but that's how it is... vcgencmd version # echo configuration echo camera: $camera echo usb options: $camera_usb_options echo raspi options: $camera_raspi_options # keep mjpg streamer running if some camera is attached while true; do if [ -e "/dev/video0" ] && { [ "camera"="auto"]||["camera"="auto"]||["camera" = "usb" ] ; }; then startUsb elif [ "`vcgencmd get_camera`" = "supported=1 detected=1" ] && { [ "camera"="auto"]||["camera"="auto"]||["camera" = "raspi" ] ; }; then startRaspi fi sleep 120 done
Để đảm bảo 2 file trên có quyền thực thi chạy lệnh sau:
chmod +x /home/pi/scripts/webcam chmod +x /home/pi/scripts/webcamDaemon
Nếu bạn muốn các tùy chọn các camera khác nhau các bạn sửa trong /boot/octopi.txt
Nếu bạn muốn tự khởi động của webcam, bạn cần phải thêm dòng sau vào /etc/rc.local (Chỉ cần đảm bảo đặt nó ở trên dòng exit 0).
/home/pi/scripts/webcam start
Khởi động lại hệ thống và lấy máy khác truy cập vào URL http://yourip:5000
Nếu thấy webcam bạn đã stream được lên octoprint thì bạn đã thành công!
Nguồn: mechasolution.vn
Để lại một bình luận