Select Page
不到萬元台幣打造自己的機器狗-Make your pupper

不到萬元台幣打造自己的機器狗-Make your pupper

最新名人新寵「波士頓動力機器狗」,一隻要價220萬台幣,可不是每個人都養得起的,但佛心的史丹佛機器狗,已經開源了,在大陸那邊已經百花齊放,每家公司都擁有自己的機器狗,不用羨慕他們,全世界最強的擬態機器人公司,當然還是波士頓動力,但你看完這篇,也可以在幾天內買好零件,打造自己的動力機器狗。

波士頓動力機器狗宣傳片

史丹佛大學 Pupper 簡介

史丹佛大學開源的機器狗專案,用的主機是 Raspberry Pi 4,OS 是 Linux base ,可以與 Ubuntu 相容,核心的影像辨識演算法用的是 OpenCV ,預設就可以選轉、跳躍、小跑步

日本做的可愛 Pupper

從 Pupper BOM 表開始

可以從下面的網址,取得製作動力機器狗的所有需要的元件,如果全部都用買的大約要900美元,但很多東西是可以自己印,或是自己改,但如果嫌麻煩,直接去 Amazon 上一次購足即可

https://docs.google.com/spreadsheets/d/e/2PACX-1vRAPT8knAtIKwr5NxvVsEOxPK8zk8y3jPc51TdTPQtBHN7I9rqgU3z4Ys-C3Z3ETR2kcSDSY-u5ZP6k/pubhtml?widget=true&headers=false

去 Amazon 買足 Pupper 元件

上面提到的所有元件,已經有人整理好了,你只需要用下面的連結,進去選擇你需要的就可以了,Amazon 的購物清單,真的是超方便敗家的

https://www.amazon.com/-/zh_TW/hz/wishlist/ls/2ZB9AWGJ92F9L?ref_=wl_fv_le

直接購買整理好的 Pupper 元件

https://www.mangdang.net/Product?_l=en

組裝 Pupper 的身體

這部分是最花時間的,分成元件、外殼本體、電子電路,熟捻的高手大約要花費2小時

https://pupper.readthedocs.io/en/latest/guide/assembly.html

https://github.com/stanfordroboticsclub/Pupper-Raspi-PDB/

安裝 Pupper 的大腦 (軟體)

這個部分,如果你是常用 Raspberry Pi 的人,應該可以在1小時左右處理好,如果不是的話,按步驟來,應該需要3-4小時

https://pupper.readthedocs.io/en/latest/guide/software_installation.html

安裝程式在https://github.com/Nate711/RPI-Setup

OpenCV如果想換版本可以參考我之前的文章

校準以及測試

連接你的PS4搖桿,來控制 Pupper

https://pupper.readthedocs.io/en/latest/guide/operation.html

Pupper 參考資訊

Fusion 360 CAD 模型:https ://a360.co/2TEh4gQ

你可以透過 Fusion 360 CAD 匯出模型,並且用 3D 列印把它列印出來

史丹佛大學動力機器狗專案首頁

https://pupper.readthedocs.io/en/latest/guide/purchasing.html

Pi-Hole – Raspberry Pi 上程式開發以及阻擋廣告用的 DNS SERVER

Pi-Hole – Raspberry Pi 上程式開發以及阻擋廣告用的 DNS SERVER

很多時候為了內部程式開發方便或是安裝 wordpress 時候會需要不同的 DNS 名稱,你也可以編修自己電腦中的 host 名單,讓你開發者可以利用 Domain 去安裝 wordpress,或是也可以自己架設一個 DNS SERVER 來處理這件事情,但現在有比較好的選擇,可以兼顧程式開發以及去除廣告的好處,設定又很容易,且還可以安裝在小巧的 Raspberry Pi 上,可以不用透過外面的 DNS 去做繁瑣的設定,非常的加分。

Pi-hole 安裝方法

Pi-hole的安裝很簡單,在 Raspberry Pi 中只要一行,其他的就看圖片精靈回答問題即可

curl -sL "https://install.pi-hole.net/" | sudo bash
初始安裝畫面
告訴你安裝了 Pi-hole 就可以幫你去除煩人的廣告
Pi-hole 別忘了,有能力的人要貢獻點小費,施比受有福
Pi-hole 選擇你上層的 DNS SERVER 台灣建議用 Google 即可
Pi-hole 選擇廣告阻擋清單的供應者,目前也只有一個可以選擇
Pi-hole 是否要安裝管理的介面,為了以後方便,預設把它裝起來吧
Pi-hole 這一段是問要不要安裝 lighttpd 和 PHP 模組,當然你也可以用自己的 web server ,但為了方便起見,用預設的 web server 即可,他不會佔用太多的硬碟空間。
Pi-hole 是否要有記錄檔,當然要囉
Pi-hole privacy mode , https://docs.pi-hole.net/ftldns/privacylevels/,用預設不隱藏任何東西,所有統計數據都可用即可
看到這個畫面就完成安裝,可以將電腦中的 DNS 指向畫面中的 IP ,需要進入管理介面的輸入 http://pi.hole/admin
國外網友超專業教學

Raspberry Pi 多種應用

PiHole官網 – https://pi-hole.net/

PiHole替代品 AdGuard,https://github.com/AdguardTeam/,AdGrard 安裝在 Raspberry Pi 上的說明,https://github.com/AdguardTeam/AdGuardHome/wiki/Raspberry-Pi

Linux 效能優化 – 釋放系統被佔滿的記憶體

最近常常發現 Ubuntu 的記憶體被佔滿,大多是執行 PHP 程式碼所造成的,當記憶體一滿,程式執行上就很沒有效率,利用重開機來釋放記憶體,恐怕也太極端了吧,我來破個題,先提供釋放 Linux 記憶體的方法後,再來說說用那些指令來檢查系統狀態比較實用。

釋放 Linux 記憶體指令

最常用的指令,一口氣要求系統清除 Page Cache、Dentries、Inodes

sudo -i sync; echo 3 > /proc/sys/vm/drop_caches
  • 0:不釋放(系統預設值)
  • 1:釋放頁快取
  • 2:釋放dentries和inodes
  • 3:釋放所有快取

查詢 Linux 記憶體使用狀況

看看 mem and swap 的使用狀態

free -m

專門查看 vm 的狀態

vmstat

可以查詢所有程式的資源使用狀況,以及找出 PID ,以方便刪除程式

top

針對記憶體使用,來個總覽

watch cat /proc/meminfo

利用好工具 htop 來觀察程式的使用狀況,以及可以在 htop 內直接清除程式

htop
如何在 Ubuntu 20.04 上安裝 PHP 8.0、Nginx、MariaDB、WordPress CMS

如何在 Ubuntu 20.04 上安裝 PHP 8.0、Nginx、MariaDB、WordPress CMS

sudo apt update -y
sudo apt upgrade -y

安裝 Nginx

sudo atp install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

如果有啟用防火牆,記得要開啟相對應的PORT

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

驗證以及測試一下是否正常


安裝以及設定 MariaDB

接下來可以安裝資料庫MariaDB

sudo apt install mariadb-server
sudo systemctl status mariadb

保護好你的資料庫,修改 root 密碼,以及移除用不到的帳戶以及資料表,和防止 root 遠端登入

sudo mysql_secure_installation

啟動 MariaDB Service

sudo systemctl start mariadb
sudo systemctl enable mariadb

為資料庫建立一個專用使用者,用來操作 wordpress db

sudo mysql -u root -p
MariaDB [(none)]> CREATE USER 'wordpressdbuser'@'localhost' IDENTIFIED BY 'password';

建立一個資料庫,以及一個資料庫的使用者(USER),要給 wordpress 系統使用的

sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> GRANT ALL ON wordpress.* TO 'wordpressdbuser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;

設定完畢後退出 MariaDB 的介面


安裝 PHP 8.0

因為 php 8 較新,還沒包含在標準套件中,所以我們要新增 PHP 8 的軟體包

sudo apt instal software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt upgrade

新增了PPA後,我們可以直接下指令安裝 PHP 8.0

sudo apt install php8.0

驗證是否安裝正確

php -v

預設 php8.0 安裝完畢後會是支援 apache ,我們需要在安裝 PHP 8 FPM 讓他可以支援 Nginx

sudo apt install php8.0-fpm

安裝常用的 PHP 8.0 擴充套件,可以依照情況刪減

sudo apt install php8.0-common php8.0-mysql php8.0-xml php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip -y

為 Nginx 設定 PHP 8

sudo nano /etc/php/8.0/fpm/php.ini

可以修改下列的預設數值,讓 PHP 可以運行得更好

upload_max_filesize = 32M 
post_max_size = 48M 
memory_limit = 256M 
max_execution_time = 600 
max_input_vars = 3000 
max_input_time = 1000

修改完畢後存檔,並且重啟 PHP 8

sudo php-fpm8.0 -t 
sudo service php8.0-fpm restart

安裝 wordpress

先下載wordpress,我安裝的版本是中文正體 wordpress 5.8.1,下載完畢後,解壓縮,並且放到你想要放的目錄下,本例是 /var/www/mysite

wget -c https://tw.wordpress.org/latest-zh_TW.zip
unzip latest-zh_TW.zip
sudo cp -R ./wordpress/* /var/www/mysite/

剛複製過去的權限會是 root 的權限,接下來用指令設置權限為 www-data

sudo chown -R www-data:www-data /var/www/mysite
sudo chmod -R 775 /var/www/mysite

在 Nginx 中建立 WordPress 的虛擬伺服器 (VirtualHost)

先刪除 Nginx 中的預設檔,然後建立一個自己的設定檔(.conf)

sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/sites-available/default
sudo nano /etc/nginx/conf.d/mysite.conf

mysite.conf 內容如下,mysite 的資訊要換成你自己的伺服器資訊

server {
        listen 80;
        listen [::]:80;
        root /var/www/mysite.com;
        index  index.php index.html index.htm;
        server_name mysite.com www.mysite.com;

        error_log /var/log/nginx/mysite.com_error.log;
        access_log /var/log/nginx/mysite.com_access.log;
        
        client_max_body_size 100M;
        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.0-fpm.sock;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

如果你是把 config 檔按放在 /etc/nginx/sites-available/ 下的話,要記得 ln (軟連結) config

sudo ln -sf /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf

測試 Nginx ,成功的話就重啟伺服器

sudo nginx -t
sudo service nginx restart

透過瀏覽器安裝 WordPress

開啟瀏覽器,並且輸入 https://localhost/ 可以在本地端安裝 WordPress 系統

開始安裝WordPress
設定 WordPress 的資料庫資訊
設定要登入 WordPress 的帳號密碼
之後就大功告成了

參考資料:

https://tw511.com/a/01/23398.html

https://cn.linux-console.net/?p=1601

https://rain.tips/wp-admin/post.php?post=396&action=edit
如何在 Hyper-V 中的 Ubuntu 20 的螢幕解析度調整為 1920×1080

如何在 Hyper-V 中的 Ubuntu 20 的螢幕解析度調整為 1920×1080

預設中,建立好的桌面板 Ubuntu 20 的系統,會是 1024×768 的解析度,但這種解析度下很難有正常的瀏覽行為,網頁的資訊都會擠在一起,所以建好 Hyper-V VM for Ubuntu 20 的時候,通常第一件事情,就是會去改變他的解析度大小,以下說明如何修改解析度

  1. 先打開 Terminal 並且編輯 gurb 檔案
sudo nano /etc/default/grub

2.找到 GRUB_CMDLINE_LINUX_DEFAULT ,預設應該是quiet splash,我們要在後面加入指令,讓他認得hyper-V,並且調整為 Full-HD的解析度

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

3.把 GRUB_CMDLINE_LINUX_DEFAULT 的參數從 quiet splash -> quiet splash video=hyperv_fb:1920×1080

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1920x1080"

修改完畢後的 grub 檔案會是下圖

4.重新開機,並且重新關閉VM的視窗後重新連線VM

sudo reboot

5.等待重新開機完畢後,下指令更新 grub

sudo update-grub

6.更新完 grub 後,並且再次重開,重連VM即可看到視窗改變

sudo reboot

文章引用

How to make Ubuntu 20.04 LTS Desktop fullscreen on Hyper-V Manager

grub 是 Linux 中的開機管理程式,詳情可以看下文章

深入指揮作業系統啟動 詳解GRUB開機管理程式 | 網管人 (netadmin.com.tw)