無線網路是操控無人車的必要裝置,因為我們不可能讓無人車拖著一條網路線去進行操作。要為 Jetson Nano(含 2GB)裝上一片無線網絡卡是非常簡單的事情,但複雜的是“設定”的細節,必須兼顧更多可能的使用場景。
如果您的裝置只打算在自己熟悉的環境裡使用的話,如辦公室、實驗室、家裡等等,應該都會存在一臺用的比較習慣的無線路由器,可以輕鬆配置或查找出 Jetbot 的無線網路 IP,因為只要無線網絡卡與無線路由執行過一次連線,就能將密碼記錄在 Jetbot 裡面,只要以後不關閉無線網,在 Jetbot 開機之後就能直接連上。
但如果您的 Jetbot 經常需要到陌生環境去測試或演示,上述方式就沒法使用了。比較好的狀況是去到一個保密要求低的地方,對方願意提供無線網的密碼讓 Jetbot 進行,我們可以先透過 USB 連線方式,透過 SSH 對 Jetbot 下達無線網連線的指令,這樣還是能完成連線的任務。
如果前往的地方,安全要求高,甚至是在戶外沒有無線路由的地方,這樣無線網就完全無用武之地了。
本文的重點就是要解決這樣的麻煩問題,根據不同使用狀況提供以下兩種建議方式:
1. 將 Jetbot 或控制檯 PC 的無線網絡卡設定為“熱點”模式:
2. 自帶一個掌上型便攜無線路由:
不管使用哪種方式,首先我們還是得為 Jetbot 先安裝一片合適的無線網絡卡。
- 安裝無線網絡卡
Jetson Nano 提供 M.2 Key-E 與 USB 兩種網絡卡介面,而 2GB 版本並不提供 M.2 介面,因此只能使用 USB 的網絡卡。以下簡單說明以下兩種網絡卡以及安裝的方式:
(1)M.2 Key-E 介面:
這種網絡卡的訊號質量比較好,不過存在以下缺點:
A. 安裝過程複雜:必須拆卸 Jetson Nano 核心模組的兩個螺絲,並將其取下之後才能安裝上這個無線網絡卡,然後再裝上核心模組。以下是簡化過的 6 個安裝步驟的圖片,提供參考:
B. 需要有額外天線:這個部分看似簡單,但實際上是有複雜度的,因為銷售網絡卡的供應商大部分沒有提供配套的 IPX 天線,需要根據採購的網絡卡的介面,再自行到淘寶上採購配套的天線,這種 IPX 的規格從第一代到第四代的介面都不相容。
(2)USB 介面:
這種網絡卡非常方便,只要插上 Jetson Nano 2GB 的其中一個 USB 口就行,唯一的缺點就是有效距離較短,不過在 30~50 米範圍內的操作,大致上是能滿足 Jetbot 的使用,推薦使用這類的無線網絡卡會比較方便。
NVIDIA 官方在 https://elinux.org/Jetson_Nano#Wireless 提供一份 Jetson Nano(含2GB)的網絡卡推薦列表,包括 M.2 介面與 USB 介面的都有,不過請注意一下 USB 無線網絡卡的外形,最好選擇下圖左邊這種“短”型的比較好,右邊這種長度對 Jetbot 的執行與旋轉會造成麻煩。
為了統一實驗的過程,接下去的部分全部都使用 USB 無線網絡卡的方式來配合說明,而 M.2 網絡卡的設定方式也是一樣的。
- 用USB資料線進行連線
接下去我們先使用具備資料傳輸並帶有 Micro B 介面的 USB 線,將控制檯 PC 與 Jetson Nano(含2GB)如下圖一般地進行連線。這裡必須再三強調的,就是所使用的 USB 線必須具備資料傳輸功能,很多初學者經常反映會出現連線失敗的狀況,追究原因,都是因為使用了只具備充電功能的 USB 線,當然無法完成連線,但是這從外觀上也沒法識別,只能實際嘗試之後才能確認。
如果連線正常,在 Windows 操作環境下,會聽到 USB 裝置連線的提示聲,在 Ubuntu 作業系統下會彈出一個型別下圖的視窗,就表示形成連線:
確認連線的方法,最好直接在指令視窗執行“ping 192.168.55.1”,如果能能通(如下圖),就能用 ssh 或者 Jupyter 來操作 Jetson Nano(含2GB)。
如果您的 Jetbot 使用前面文章所教導的 Docker 容器建立的話,在 Jupyter 所操控的範圍是在容器內部,無法對 Jetson Nano(含2GB)進行配置,因此後面的操作全部以 SSH 遠端命令視窗進行。
現在就開啟一個命令終端,執行以下指令:
ssh <jetbot< span=""></jetbot<>裝置使用者名稱>@192.168.55.1 => 輸入密碼
如果您使用 Jetbot 提供的映象燒錄 TF 卡的話,這裡的使用者名稱與秘密都是“jetbot”。Windows 使用者請自行在網上找到合適的 SSH 工具。登陸上 Jetbot 裝置之後,請執行以下指令檢查無線網絡卡是否已經被系統檢測到:
ifconfig | grep wlan
如果出現以下資訊表示安裝成功;如果沒有出現資訊,表示無線網絡卡的安裝有問題,需要檢查網絡卡本身是否為 Jetson Nano(含2GB)所支援的:
“wlan0: flags=4099 mtu 1500”
- 將Jetbot的WIFI與控制檯PC都連上同一個無線熱點
雖然 Jetbot 現在關閉圖形桌面,會讓很多操作必須透過指令方式來處理,大部分讀者會覺得不太習慣。不過在網路設定方面,可以用 nmtui 提供的選單式工具來協助,現在直接在 SSH 命令視窗裡執行以下指令:
sudo nmtui
這裡的選單操作(如下圖),主要依賴“上下鍵”與“ESC/Enter/Tab”五個鍵。下圖中間為這個工具的主目錄,點選“編輯連線”會進入到右邊選單、點選“啟用連線”會進入左邊選單。
這個功能很簡單,只要進入“啟用連線”選單後,在“Wi-Fi 引數”下面選擇您要連線的熱點,按下“Enter”就能進入連線這個熱點所需要輸入的密碼視窗,輸入秘密之後就能連上這個熱點:
左圖中的“階梯狀”表示接收到該熱點的訊號強度,連上之後會在該熱點最左邊出現“*”作為識別,如果要修改或檢視這個網絡卡或熱點的詳細資訊,就從“編輯連線”進入,選擇要檢視的熱點後按下“Enter”,就能進入下圖右邊的視窗。
可以在控制檯 PC 上另外開啟一個 SSH 命令視窗,登陸到 Jetbot 後執行以下指令,看看得到的 MAC 地址是否一致?
ifconfig
下面只截圖無線網絡卡相關的資訊:
如果 Jetbot 與您的控制檯 PC 都連上同一個路由的時候,請在控制檯 PC 上開啟瀏覽器,然後輸入 :8888 看看是否能連上 Jetbot?
例如前面連上路由之後,wlan0 裡的 inet 地址(上圖藍色方塊遮蔽的地方)為 192.168.0.13,現在就在瀏覽器上輸入“192.168.0.13:8888”,如果能正常開啟 Jetbot 操作介面,就表示這個無線網的連線是成功的。
後面就能將 USB 線取下,因為只要是在這個路由環境下,每次 Jetbot 開機就能自動連上這個無線路由,但如果您更換過網絡卡、或者面對新路由的時候,就需要重新執行一次這個連線的步驟。
- 將Jetbot或控制檯PC的無線網絡卡設定為熱點:
如果當您的 Jetbot 經常需要在不同地方做測試或演示,自然不能透過一臺固定的無線路由為控制用 PC 與 Jetbot 進行無線連線,這時候可以將二者中的 WIFI 網絡卡設為熱點,讓另一個訪問過來。
由於控制用 PC 是比較容易操作的,因此通常會用 Jetbot 的 WIFI 網絡卡設定成熱點,這樣就能讓 Jetbot 端的連線 IP 固定為“10.42.0.1”,當然前提是您使用的網絡卡必須支援“熱點”功能,如果遇到不支援熱點功能的網絡卡,那就只能用控制檯 PC 的無線網絡卡來作為熱點,讓 Jetbot 的 WIFI 訪問過來,然後對 Jetbot 的 WIFI 設定為固定 IP 的方式,也是可行的。
現在我們以 Jetbot 無線網絡卡設定為熱點的方式來做說明,同樣的步驟也能在 Ubuntu 操作做系統的 PC 上執行,如果使用 Windows 作業系統的請自行在網上查詢設定的方式。
由於前面的 nmtui 工具要操作熱點設定需要相當繁瑣的步驟,因此這裡使用 nmcli 指令來操作,只需要兩道指令就能處理好。以 Jetbot 的無線網絡卡設為熱點的指令如下:
sudo nmcli device wifi hotspot con-name << span="">內部識別名稱> ifname << span="">網絡卡的名稱> ssid << span="">外部識別名稱> password << span="">登陸密碼>
sudo nmcli connection down << span="">內部識別名稱>
這裡簡單說明一下幾個名稱的用法與範例:
- 內部識別名稱:這是給第二道指令去啟動/關閉熱點的識別名稱,例如“USB-HS”
- 網絡卡名稱:這必須對用網絡卡的實際名稱,用 ifconfig 查詢到這個無線網絡卡的名稱為 “wlan0” ,因此這裡就必須提供一樣的名稱。
- 外部識別名稱:就是讓外面裝置能搜尋到的 SSID 名稱,例如 “jetbot-HS”
- 登陸密碼:8 碼以上
如果將上面的名詞都對應上,那完整的指令就可以如下面:
sudo nmcli device wifi hotspot con-name USB-HS ifname wlan0 ssid jetbot-HS password 11111111
sudo nmcli connection up USB-HS
如果執行第一個步驟時,出現“錯誤:裝置 'wlx24050f289fa2' 既不支援 AP 也不支援 Ad-Hoc 模式”,就表示這個網路不支援熱點功能。如果一切順利的話,就能用 ifconfig 指令檢查這個無線網絡卡的 IP 變成 ”10.42.0.1” (如下圖),這就表示熱點設定已經成功。
接著到控制檯 PC,將無線網路連上 “jetbot-HS” 熱點,成功之後就可以在瀏覽器上輸入 “10.42.0.1:8888” 進入 Jetbot 的 Jupyter 控制介面。
假如 Jetbot 無線網絡卡不支援熱點,但控制檯 PC 支援的話,就將上面的操作放在 PC 上執行,然後將 Jetbot 連上 PC 熱點的 WIFI 設定成 “IP=10.42.0.2/GW=10.42.0.1”的固定 IP 模式,這樣也能在控制檯 PC 的瀏覽器輸入“10.42.0.2:8888”去訪問 Jetbot。
- 透過便攜(迷你)式無線路由的協助:
假如控制檯 PC 與 Jetbot 的無線網絡卡都不支援熱點功能時,那該怎麼辦呢?最好用的方法就是如下圖的方式,透過一個獨立的行動式迷你路由的輔助,使用網路線連線 PC 與迷你路由,這樣就沒有一開始連線網路的設定問題。
第一次要設定 Jetbot 的 WIFI 連上這個無線路由時,需要先透過 USB 連線方式去操控 Jetbot,一旦配置好之後就能將 USB 線拿掉,不用再受其約束,這是我們最為推薦的一種方式,包括在訊號穩定性與操作難易度著兩方面的經驗。
至於路由的設定是個標準的路由配置問題,請針對您所挑選的路由器在網上就能輕易找到設定的細節,這裡沒有特殊需要設定的地方。
現在配置好 Jetbot 的 WIFI 連線之後,就能開始更得心應手地操作後面的內容。