1. ESP32/ESP8266介紹與相關軟體安裝

1.1 ESP32 pin-out

基本上ESP32提供了兩種電源可以使用,36個GPIO(input/output)pin腳,包含了WiFi與BLE模組(這便是它吸引我的原因,體積小功能齊全)。上圖是我所使用的ESP32接腳圖,每個廠牌做出來的多少有點差異,只要注意你所使用的pin腳跟程式上有對應到就應該不會有什麼問題了。
下面為ESP8266 GPIOs腳位簡圖,基本上與ESP32很類似。但這裡特別注意,通常在MCU上面寫得編號不一定就是GPIO的腳位號碼。

1.2 軟體安裝

在此我們會把後面相關的主要使用軟體一併安裝(包括machine-learning需要的套件)。以下是要安裝的套件與相關的說明。
  • Arduino/ESP32 platform  — 驅動ESP32 MCU相關套件的平台
  • Nvidia Driver & CUDA Toolkit — 機器學習使用GPU卡的驅動程式與資料庫
  • Anaconda虛擬機器  — 為了建立機器學習用的虛擬環境

1.2.1 ESP32 Board in Arduino IDE 安裝

Arduino目前是一種開放性平台,主要提供非常多驅動MCU資料庫。基本上,只要找得到想要用到功能(比如:溫度感測/WiFi/BLE…等等)的資料庫,你的MCU便可以做一些操控。我們先開始安裝Arduino平台吧!

1.2.1.a Arduino IDE

1)到Arduino官網網頁上方點選SOFTWARE/DOWNLOADS進入下載頁面

2)選擇適合你系統的套件後,下一個頁面便會詢問你是否要贊助(在此便由個人決定了^_^)。

3)直接執行並安裝下載的執行程式。
基本上只要你是Arduino的MCU到這裡就可以了,但我們要使用的ESP32還有一些工作要做(此時只安裝完Arduino你會發現無法與ESP32連結)。

1.2.1.b 在Arduino安裝ESP32/ESP8266套件

 1)In your Arduino IDE, go to FilePreferences
2)輸入 https://dl.espressif.com/dl/package_esp32_index.json,http://arduino.esp8266.com/stable/package_esp8266com_index.json“額外開發板管理員網址”. Then, click the “OK” button:

3) Open the Boards Manager. Go to Tools > Board > Boards Manager
4) Search for ESP32 and press install button for the “ESP32 by Espressif Systems“:

5) Search for ESP8266 and press install button for the “ESP8266 by ESP8266 Community“:

1.2.2 ESP32 Board Testing

連結你的ESP32至電腦,並遵照下列步驟進行:
1) Select your Board in Tools > Board menu (in my case it’s the ESP32 Dev Module/NodeMCU 1.0 (ESP-12E Module))
2) Select the Port (if you don’t see the COM Port in your Arduino IDE, you need to install the CP210x USB to UART Bridge VCP Drivers / CH340 Driver for ESP8266):
3) Open the following example under File > Examples > WiFi (ESP32) > WiFiScan
4) A new sketch opens in your Arduino IDE:

5) Press the Upload button in the Arduino IDE. Wait a few seconds while the code compiles and uploads to your board.
6) If everything went as expected, you should see a “Done uploading.” message.
    我在這裡碰到了一個無法upload的問題,在訊息視窗會出現 “Failed to connect to ESP32: Timed out… Connecting…“。這是因ESP32 is not in flashing/uploading mode,
  • 這時只要按住“BOOT” button in your ESP32 board
  • Press the “Upload” button in the Arduino IDE to upload your sketch
  • After you see the  “Connecting….” message in your Arduino IDE, release the finger from the “BOOT” button:
7) Open the Arduino IDE Serial Monitor at a baud rate of 115200:



COM Port not found 問題

在有些ESP32照上述步驟安裝後,會發現無法找到連接阜問題。主要原因是:1. USB drivers missing or 2. USB cable without data wires.
1)ESP32 DEVKIT board 使用 CP2102 chip,你可以利用google去找相關CP2102 driver下載

2)找到適合自己系統安裝軟體下載並安裝

3)重新啟動Arduino IDE,ESP32應該就會出現連接阜了(通常Windows是‘COMX’而MAC是‘/dev/cu.xxxx’)。
4)如果還是沒找到,換一條USB連接線吧~~~


1.2.2 Nvidia Driver & CUDA Toolkit 安裝(option)

這裡其實是為了要做加速Machine-learning所做的軟體驅動安裝。
1)Nvidia driver 下載並安裝,選擇適合你硬體(GPU)的軟體安裝。
2)CUDA Toolkit下載並安裝,這裡要注意你的硬體相對應的Toolkit是否吻合。
安裝完後要在環境變數做設定(控制台/系統/進階系統/環境變數/系統變數/path/編輯),將下面路徑加入。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\V10.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\V10.0\libnvvp
3)Cudnn下載與解壓縮,這裡要注意你選擇的CudNN與CUDA Toolkit的版本要相符。
解壓縮會產生bin/lib/include三個資料夾,把三個資料夾複製到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0下
ps: 我這裡好像只做了把bin資料夾的cudann64_7.dll複製至….\CUDA\v10.0\bin資料夾底下也可以。

1.2.3 利用Anaconda建立虛擬環境(windows system)

Anaconda特點便是它已經包含了各種的科學數學和數據分析的套件是專門用於數據分析用途。
在這裏我們將利用Anaconda建立兩種虛擬環境,差別只在於有無GPU的運算功能。

1)下載並安裝Anaconda,在這裏我Python 3.7 version。
2)安裝完成後,開啟DOS終端機。開始建立第一個擬機環境(tensorflow)。
#conda create –name tensorflow python=3.5 anconda (會依照擬定python版本建立環境)
3)建立環境完成後。開啟DOS終端機啟動虛擬機器。

4)安裝tensorflow  & keras CPU版本 + OpenCV

 

5)開啟jupyter notebook測試

6)開啟新python專案

7)在執行的區塊中執行以下程式,查看是否可以得到tensorflow/keras的安裝版本。



Numpy_modular無法載入問題

原因是因為Anaconda使用了較低版本的numpy,解決方式如下:



WolfLin 2019/03/29

發表留言