2021年6月13日 星期日

[DT-BL10 開發板] 使用 Arduino IDE 撰寫程式

如果您尚不瞭解 DT-BL10 開發板強大的功能,您可以參考這篇文

http://pizgchen.blogspot.com/2021/06/bl602-bl602.html


DT-BL10 開發板可以讓專業工程師在 Linux 環境裡撰寫程式、編譯並燒錄,而一般非專業人士也可以使用 Arduino IDE 來撰寫程式,關於這部分的原廠資料在下列網址

https://github.com/pine64/ArduinoCore-bouffalo

底下我們將為您說明如何建置這個環境。



Step1 在 Arduino IDE 的 [偏好設定] > [額外的開發板管理員網址] 內加入下面這一行

https://nutcracker.pine64.org/arduino/package_bouffalo_index.json

如下圖


Step2 點擊 [確定],關閉 Arduino IDE 後再重新開啟。

Step3 點擊下拉功能表 [工具] > [開發板] > [開發板管理員],出現下列視窗


Step4 在欄位內鍵入 [RISC-V],找到 [Arduino for Bouffalo Labs RISC-V MCUs],並安裝它。


Step5  選擇開發板型號。點擊下拉功能表 [工具] > [開發板] > [Bouffalo Arduino Core] > [PINE64 PineCone]。


Step6 選擇上傳速度。點擊下拉功能表 [工具] > [Upload speed] > [2000000]。 


Step7 選擇序列埠。點擊下拉功能表 [工具] > [序列埠] > [COM6]。我的是 COM6,您的可能是其他的。

DT-BL10 開發板是使用 CH340x USB2TTL,您必須先安裝這部分的驅動程式,我們不在此說明。


Step8 開始撰寫 Hello World! 程式。開啟一個新檔案,並鍵入下列程式,如下

void setup() {

  Serial.begin(115200);

}


void loop() {

  Serial.println("Hello wolrd!");

  delay(1000);

}


Step9 DT-BL10 開發板有兩種模式,一種是上傳模式,另一種是執行模式。在上傳程式之前需要先按住 [D8] 按鍵,然後再按一下 [EN] 按鍵,之後同時放掉這兩顆按鍵。此時會進入上傳模式,您就可以點擊 [上傳]。如果正確無誤,訊息欄會出現 [上傳完畢]。


提醒您:

上傳完畢後,DT-BL10 開發板會自動轉為執行模式,如果下一次還要再上傳程式,仍需要再使用 [D8] 與 [EN] 按鍵轉換為上傳模式。


Step10 點擊下拉功能表 [工具] > [序列埠監控視窗],鮑率要設為 115200,您就可以看到 Hello World!,如下圖。


相關資料

Linux 開發環境建置 https://www.cnblogs.com/doiting/p/14124068.html

Linux 燒錄程式 https://www.cnblogs.com/doiting/p/14124131.html


採購資訊

Aliexpress  https://www.aliexpress.com/item/1005001652077181.html

蝦皮 https://shopee.tw/-RWG-DT-BL10-BL602-%E9%96%8B%E7%99%BC%E6%9D%BF-%E4%BD%8E%E5%8A%9F%E8%80%97-WiFi-BLE-ESP32-%E9%80%B2%E9%9A%8E-i.14363185.6291609262

露天(S&R) https://www.ruten.com.tw/item/show?22123054264056

露天(RWG) https://www.ruten.com.tw/item/show?22123054067406



2021年6月12日 星期六

[DT-BL10 開發板] 博流BL602&BL604開發板介紹

      2020年在對岸松山湖論壇上,博流智能科技(南京)有限公司銷售副總裁劉占領介紹了一款比 ESP32 還物美價廉的開發板,它基於 RISC-V 核的低功耗、高可靠 Wi-Fi+BLE 二合一 SoC 芯片 BL602。主要應用領域包括人工智能與工業互聯網,特別是電工照明、門鎖遙控與智能家電。


  • BL602 / BL604是用於超低功耗應用的Wi-Fi + BLE組合芯片組。
  • 無線子系統包括2.4G無線電、Wi-Fi 802.11b/g/n和藍牙LE5.0基帶/MAC設計。
  • 微控制器子系統包含低功耗32位RISC-V CPU、高速緩存和存儲器.電源管理單元控制低功耗模式.此外,還支持各種安全特性。
  • 外圍接口包括SDIO、SPI、UART、I2C、IR Remote、PWM、ADC、DAC、ACOMP、PIR等。
  • 支持靈活的GPIO配置。BL602共有16個GPO,BL 604共有23個GPO。



芯片主要特點

  1. 無線 (第1層RF性能)
  • Wi-Fi 802.11 b / g / n
  • 低功耗藍牙R5.0
  • 具有BLE協助的Wi-Fi快速連接
  • Wi-Fi和BLE共存
  • Wi-Fi安全WPS / WEP / WPA / WPA2 / WPA3
  • STA,SoftAP和嗅探器模式
  • 多雲連接
  • 2.4 GHz射頻收發器
  • 集成射頻巴倫,PA / LNA 
    2. 周邊設備

  • SDIO 2.0從站(AP主機)
  • SPI主/從
  • 兩個UART
  • I2C主/從
  • 五個PWM通道
  • 10位通用DAC
  • 12位通用ADC
  • 兩個通用模擬比較器
  • PIR(被動紅外)檢測
  • 紅外遙控硬件加速器
  • 靈活的16個GPIO(BL602)/ 23個GPIO(BL604)
  1. 微控制器子系統
  • 帶FPU的32位RISC CPU
  • L1快取
  • RTC計時器長達一年
  • 兩個32b通用定時器
  • 四個DMA通道
  • 1MHz至192MHz的動態頻率
  • JTAG開發支持
  • XIP QSPI閃存支持
  1. 存儲
  • 276KB SRAM
  • 128KB ROM
  • 1Kb電子保險絲
  • 嵌入式Flash(可選)
  1. 安全性 (完整的安全性功能)
  • 安全啟動
  • 安全調試
  • XIP QSPI即時AES解密(OTFAD)
  • AES 128/192/256
  • SHA-1 / 224/256
  • TRNG(真隨機數生成器)
  • PKA(公鑰加速器)
  1. 時鐘
  • 支持XTAL 24/26/32 / 38.4 / 40MHz
  • 支持XTAL 32 / 32.768KHz
  • 內部RC 32KHz和32MHz振蕩器
  • 內部系統PLL
  1. 功耗模式 (超低功耗模式)
  • Off * Hibernate * Power Down Sleep (flexible)
  • Active


使用 Arduino IDE 撰寫程式

請詳 https://github.com/pine64/ArduinoCore-bouffalo



相關資料

Electronics-Lab https://www.electronics-lab.com/dt-bl10-low-power-iot-development-board-powered-by-risc-v-core/

BL602 開發手冊 https://bouffalolab.github.io/bl_iot_sdk/

BL602 開發板使用教學 https://www.cnblogs.com/doiting/category/1899101.html

BL602 入門指南 https://github.com/SmartArduino/Doiting_BL


採購資訊

Aliexpress  https://www.aliexpress.com/item/1005001652077181.html

蝦皮 https://shopee.tw/-RWG-DT-BL10-BL602-%E9%96%8B%E7%99%BC%E6%9D%BF-%E4%BD%8E%E5%8A%9F%E8%80%97-WiFi-BLE-ESP32-%E9%80%B2%E9%9A%8E-i.14363185.6291609262

露天(S&R) https://www.ruten.com.tw/item/show?22123054264056

露天(RWG) https://www.ruten.com.tw/item/show?22123054067406



2021年4月24日 星期六

[ESP32] 探討 ESP32 開發板的供電方式

ESP32 開發板是以 3.3V 為邏輯電壓,但一般 USB 接口是 5V 電壓,不同的電壓常造成初學者不小的困擾。本文即在探討如何供電給 ESP32 開發板,ESP8266 開發板也同樣適用。




從板載 USB 接口供電

一般 USB 接口電壓都是 5V,您可以使用電腦的 USB 提供 5V 電源,也可以使用行動電源盒提供 5V 電源。當 5V 電源從 ESP32 開發板的 USB 接口進到板子時,開發板上有降壓電路會將 5V 電壓降為 3.3V。這樣的方式是比較常見的一種。



從板載 PH 端子供電

有一種 ESP32 開發板新增了一個 PH 端子接口,這種端子的針腳間距是 2.0mm,您可以從這個接口直接接上 3.7V 的鋰電池。 


市售 PH 端子導線有兩種接法,它們的正負極性是相反的(如下圖),這一點務必要注意。如果正負極性錯誤(如上圖),可能會損壞開發板。


如果電線的正負極性錯誤,你可以使用鑷子的尖銳端輕輕撬開塑膠殼,對換極性後再重新插入。


從板載針腳供電

像 ESP32-CAM 這樣的開發板沒有 USB 接口,也沒有 PH 端子,此時只能從板載針腳的 Vcc 、3.3V 或 5V 供電。

如果是使用行動電源盒,你可以拿公排針和 micro 轉接板自製一個電源擴充板,然後用杜邦線連接到開發板 5V 針腳。



如果是使用鋰電池,則建議如下接法:

鋰電池  ---  充放電保護板  ---  升(降)壓模組  ---  電源擴充板  ---  開發板

下圖是一種集充放電保護和升壓為一體的模組,個人覺得這個還蠻好用的。


採購資訊

PH 端子導線 露天(S&R) https://www.ruten.com.tw/item/show?22116962008962

PH 端子導線 露天(RWG) https://www.ruten.com.tw/item/show?22116958617862

PH 端子導線 蝦皮(RWG) https://shopee.tw/-RWG-PH2.0-%E7%AB%AF%E5%AD%90-%E6%8E%A5%E6%8F%92%E4%BB%B6-%E9%81%A9%E7%94%A8%E6%96%BC-ESP32-%E9%96%8B%E7%99%BC%E6%9D%BF-i.14363185.8047559134

Micro USB 轉接板 露天(S&R) https://www.ruten.com.tw/item/show?22002184102877

Micro USB 轉接板 露天(RWG) https://www.ruten.com.tw/item/show?21650742731727

Micro USB 轉接板 蝦皮(RWG) https://shopee.tw/-RWG-USB-Micro-%E6%AF%8D%E5%BA%A7B%E5%9E%8B-%E8%B2%BC%E7%89%87%E8%BD%89%E7%9B%B4%E6%8F%92-%E8%BD%89%E6%8E%A5%E6%9D%BF-i.14363185.5087096768

充放電保護升壓模組 露天(S&R) https://www.ruten.com.tw/item/show?22116964518173

充放電保護升壓模組 露天(RWG) https://www.ruten.com.tw/item/show?22116964306987

充放電保護升壓模組 蝦皮(RWG) https://shopee.tw/-RWG-3.7V%E5%8D%879V-5V-%E8%90%AC%E7%94%A8%E8%A1%A8%E6%94%B9%E8%A3%9D18650%E9%8B%B0%E9%9B%BB%E6%B1%A0%E5%85%85%E9%9B%BB%E5%8D%87%E5%A3%93%E6%94%BE%E9%9B%BB%E4%B8%80%E9%AB%94%E5%8F%AF%E8%AA%BF%E6%A8%A1%E5%A1%8A2A-i.14363185.8247640771


2021年4月19日 星期一

[ESP32-CAM] 使用 ESP32-CAM 開發板檢查伺服馬達(舵機)與設定角度

 ESP32 系開發板與 Arduino 系開發板對於伺服馬達在程式撰寫上有所差異,ESP32 系開發板會稍微麻煩一些,但只要有程式庫,一切都會變簡單。


下載程式庫

Step1 在 Arduino IDE 裡點擊下拉功能表 [工具] > [管理程式庫...]。


Step2 在文書欄位內鍵入「ESP32Servo」,然後安裝 ESP32Servo 程式庫。


上傳程式

打開範例程式「Sweep.ino」或開啟程式「ESP32CAM_Servo.ino」並上傳。


ESP32CAM_Servo.ino

//ESP32CAM_Servo.ino by Robot Wolf Group

#include <ESP32Servo.h>


Servo myservo1, myservo2;

#define servoPin1 2  //Angle 90

#define servoPin2 13 //Sweep


void setup() {

  // Allow allocation of all timers

  ESP32PWM::allocateTimer(0);

  ESP32PWM::allocateTimer(1);

  ESP32PWM::allocateTimer(2);

  ESP32PWM::allocateTimer(3);

  

  // using default min/max of 1000us and 2000us

  // different servos may require different min/max settings

  myservo1.setPeriodHertz(50);    // standard 50 hz servo

  myservo1.attach(servoPin1, 1000, 2000); // attaches the servo to the servo object

  myservo1.write(90); 

  

  // for an accurate 0 to 180 sweep  

  myservo2.setPeriodHertz(50);

  myservo2.attach(servoPin2, 1000, 2000);

}


void loop() {

  for (int pos = 0; pos <= 180; pos += 5) { // goes from 0 degrees to 180 degrees

    // in steps of 1 degree

    myservo2.write(pos);    // tell servo to go to position in variable 'pos'

    delay(15);             // waits 15ms for the servo to reach the position

  }

  for (int pos = 180; pos >= 0; pos -= 5) { // goes from 180 degrees to 0 degrees

    myservo2.write(pos);    // tell servo to go to position in variable 'pos'

    delay(15);             // waits 15ms for the servo to reach the position

  }

}


電路接線

GPIO2 可以將伺服馬達設定為 90 度,

GPIO13 可以檢查伺服馬達是否正常轉動。

依照您的需求,將伺服馬達 S 端分別連接 GPIO2 或 GPIO13,然後伺服馬達 V 和 G 端接外部電源 5V 和 Gnd。

不要忘了,也需要從 ESP32-CAM 開發板的 Gnd 拉一條線連到外部電源的 Gnd。

上述如果拉線困難,可以使用麵包板。


採購資訊

ESP32-CAM 雙軸人體偵測器(豪華版)套件 http://pizgchen.blogspot.com/2021/04/esp32-cam.html


2021年4月17日 星期六

[ESP32-CAM] 雙軸人體偵測器(豪華版)套件組裝說明

這是一款適合 ESP32-CAM 開發板使用的輔助套件,它可以讓您的 ESP32-CAM 成為一個鏡頭可移動的人體監視器。


準備材料

下列賣場有販售套件:

露天賣場

露天賣場

蝦皮賣場


準備工具

1. 烙鐵、焊錫

2. 斜口鉗

3. 尖鑷子

4. M2/M3 十字螺絲起子和扳手

5. 吹風機(或打火機)


組裝步驟

在從事組裝步驟前,請先做下列兩件事情:

1. 請參考這方法,將舵機角度保持在 90 度。

2. 將壓克力表面護膜移除乾淨。


Step1 將公排針焊接到 USB micro 轉接板上,並剪下電阻上的鐵絲,焊出 5 組具有 5V 和 Gnd 的小小擴充板。

提醒您:焊接到 USB micro 轉接板上的排針主要是作為固定用,它不具有任何用途。而中間那一排為 5V,另一排為 Gnd。  




Step2 使用 M3*10 螺絲、螺帽和墊片各 2 只,將 USB micro 轉接板固定到壓克力板上。墊片放在壓克力和轉接板中間。


Step3 使用蓋帽 4 只,將尼龍柱固定到壓克力板上。



Step4 使用 M2*12螺絲、螺帽各 2 只,將人體偵測模組固定到壓克力板上。




Step5 預留船型開關孔位,如果有船型開關,可以將它插入到壓克力板上;如果沒有,則略過此步驟。



Step6  使用 M2*8 螺絲、螺帽各 2 只,將舵機固定到壓克力板上。

提醒您:請注意舵機轉軸的位置。




Step7  使用 M2*8 螺絲、螺帽各 2 只,將舵機固定到壓克力板上。

提醒您:請注意舵機轉軸的位置。




Step8  使用舵機自攻螺絲,將搖臂固定到壓克力板上。





Step9  使用舵機自攻螺絲,將搖臂固定到壓克力板上。




Step10   使用 M3*10 螺絲、螺帽,組合兩片壓克力板。



Step11 使用 M3*10 螺絲、螺帽,將兩組舵機組合在一起。



Step12 使用舵機之 M2.5 螺絲,將兩組壓克力組合在一起。



Step13 使用 M3*10 螺絲、螺帽,先將小壓克力板固定到 ESP32-CAM 底板上。

再用 M3*10 螺絲穿過大側板和螺帽後鎖到小壓克力板,

最後再用 M3*10 螺絲、螺帽,將大側板固定到舵機底板上。





Step14  使用舵機之 M2.5 螺絲,將兩組壓克力組合在一起。



Step15 稍微整理一下電線。將垂直舵機之杜邦線由外向內穿過側板。



Step16 用 Arduino IDE 打開 ESP32CAMservo2.ino ,將 Wifi 名稱和密碼改為你家的,然後將程式上傳到 ESP32-CAM 開發板。



Step17 用黑色束帶將 ESP32-CAM 開發板固定到壓克力板上。



Step18 ESP32-CAM 開發板電路接線。

使用 20cm 長母母頭杜邦線連接下列電路:
ESP32-CAM   micro 轉接板
        5V                      +
        Gnd                    -   


Step19 人體偵測模組電路接線。


使用 10cm 長母母頭杜邦線連接下列電路:
人體偵測模組   micro 轉接板 
Vcc                         + 
Gnd                         - 

使用 20cm 長母母頭杜邦線連接下列電路:
人體偵測模組   ESP32-Cam 開發板
Out                            GPIO12


Step20 水平舵機電路接線。

使用 10cm 長公母頭杜邦線連接下列電路:
舵機   micro 轉接
V                  +
G                  -

使用 20cm 長公母頭杜邦線連接下列電路:
舵機   ESP32-Cam 開發板
S                 GPIO2


Step21 垂直舵機電路接線。

使用 10cm 長公母頭杜邦線連接下列電路:
舵機   micro 轉接
V                  +
G                  -

使用 20cm 長公母頭杜邦線連接下列電路:
舵機   ESP32-Cam 開發板
S                 GPIO13


Step22 再次稍微整理電線。

舵機和杜邦線接頭處可使用熱縮膜固定(使用吹風機熱風或打火機烤一下),以防止鬆脫。



可使用白色束帶整理電線。


Step 23 組合下部件。

正面板預留一個孔,您可以裝上 1 只 3mm 的紅色 LED 當作電源燈或錄影中指示燈。

提醒您:人體偵測模組有 2 個橘色的可調電阻必須朝向下方,等組裝完成後,您可以使用十字螺絲起子透過底板的兩個孔洞調整偵測的靈敏度。

這是正面


這是背面


這是側面


Step24 將外露的電線全部塞進下部件方盒中,以不妨礙舵機轉動為原則。使用 M3*8 螺絲 4 只,將上部件固定到下部件。至此全部完成。

提醒您:請自行整理下部件方盒內的電線,以避免鬆脫或短路。



使用步驟

Step1 從 USB micro 模組處供給 5V 電源。


Step2 打開手機 Wifi,搜尋並登入「ESP32-CAM」,密碼為「12345678」。


Step3 打開瀏覽器,在網址列輸入「192.168.4.1」,點按「Start Stream」鈕,然後您就可以看到如下畫面。


Step4 您可以試著勾選「Hide control panel」,隱藏搖桿。也可以點觸「Servo H」、「Servo V」來調整水平和垂直舵機的角度。

另外,您會發現到影像畫面是上下顛倒,此時可以打開「V-Flip」和「H-Mirror」,就可以讓它正常。



結論

1. 這個程式並未有人體觸發的功能,可以參考其他程式自行加入。

2. 未來尚可加入臉部辨識與追蹤功能,自動調整舵機角度。

3. 為使 ESP32-CAM 能長時間正常工作,建議使用 1A 以上之穩定電源,並在MCU上加裝散熱片。

4. 鏡頭會也產生高熱,建議使用導熱膏將鏡頭緊貼在SD卡匣上。

5. 建議加裝外接天線,可增進影像傳輸速率。


參考資料

robotzero https://robotzero.one/pan-and-tilt-control-for-an-esp32-cam/

randomnerdtutorials  https://randomnerdtutorials.com/esp32-cam-pan-and-tilt-2-axis/