若不想一天到晚重灌系windows系統. 那麼這個功能是一定要啓用的~
2020年12月14日 星期一
2020年11月27日 星期五
TelegramBot 傳送貼圖的方法
TelegramBot 傳送圖片的方法
def start(update: Update, context: CallbackContext) -> None:
update.message.reply_text('Hi!')
update.message.reply_sticker('http://e2412fdcd657.ngrok.io/sticker.png')
而參數是圖片的URL位址
可以在windows 上利用MobaXterm 啓動HTTP Server 並把圖片(stciker.png)放在資料匣下. . 用瀏覽器存取 http://127.0.0.1/sticker.png
sticker.png要放在C:\Users\Joseph下
但telegram Server 無法存取此網址 127.0.0.1 ? 怎麼辧呢? 我們可以利用ngrok 在電腦上打一個洞. 讓外面Telegram Server 可以連進來我們在本機(Localhost)的HTTP Sever
下載ngrok Windows版本, 並點擊執行ngrok.exe, 接著鍵入 ngrok 80 , 將會出現底下畫面
在瀏覽器上打入 http://e2412fdcd657.ngrok.io/sticker.png , 若可以存取到. 則Telgram Server 就可以存取到了,這個網址就是貼在程式碼中的圖片位址
註: 免費的MobaXterm只有180秒啓動時間就會自動關閉, 可以自己架設其他的web Server. 或註冊MobaXterm
2020年11月17日 星期二
iPAS 物聯網應用工程師認證(葵花寶典)
0.) 關於iPAS 物聯網應用工程師考試簡介
1.) IoT 技術架構簡介
- IoT 架構: 感知層,網路層,應用層
- Cloud computing: IaaS,PaaS,SaaS. BaaS
- 物聯網規格標準四大陣營
2.) IoT 通訊技術
- LPWAN 長距離低功耗通信技術 : NB-IoT vs LoRa
- 物聯網應用層通訊協定標準比較 CoAP vs MQTT
- MQTT Lab
- IoT Gateway (WSN,IEEE 802.15.4,Zigbee)
- 什麼是RSSI、SNR、dbm ?
- Project: Zigbee 無線自動燈光及溫度調控系統
- Project: BLE室內定位技術
3.) IoT Cloud平台
- Cloud Platform: MediaTek Cloud Sandbox, ARM mbed Cloud,WISE-Paas,Xively, ThingSpeak,..
- ARM mbed Connector
- ARM mbed OS
4) 物聯網感測層
- 開源硬體
- MPU v.s. MPU ==> Raspberry Pi v.s. Arduino
- 其他: micro:bit , Rasperry Pi Pico, LinkIt
- 開源軟體規劃與授權規範: GPL,LGPL,Apache,CC
- I/O 通訊與控制
- Analog v.s. Digital
- UART,
- UART over TTL/RS232 , RS485/Modbus
- SPI
- I2C , Linux I2C Driver
- RFID Project: https://www.slideshare.net/itembedded/rfid-15614650
- 以瀏覽器作為IoT的進入點
- 第一頁通常是設計一個DashBoard, 呈現豐富的資訊量
- 用40分鐘了解什麼是HTML
- NoSQL-MongoDB
- 【物聯網應用實務】IoT裝置註冊的網頁設計方式-使用 Handlebars.js Template
6.) IoT Project Demo:
ARM mbed 物聯網平台實戰(課程節錄)
https://youtu.be/sslJLgOPfCM
ARM mbed Cloud 平台架構簡介
https://youtu.be/GrMD8Me5qg0
IoT Gateway Demo
https://youtu.be/tZFMY5UIG6s
智慧POS機-人臉自動結帳
https://youtu.be/DHTQCF6t1Jw
AIoT智能居家燈控系統
https://youtu.be/Dcz28sASv0w
Control your Raspberry Pi using Line Bot
https://youtu.be/WL2RrYrGB1Q
Iot自動販賣機
https://youtu.be/9jxIuyiIXko
ARM mbed 物聯網平台實戰(課程節錄)
https://youtu.be/sslJLgOPfCM
ARM mbed Cloud 平台架構簡介
https://youtu.be/GrMD8Me5qg0
IoT Gateway Demo
https://youtu.be/tZFMY5UIG6s
智慧POS機-人臉自動結帳
https://youtu.be/DHTQCF6t1Jw
AIoT智能居家燈控系統
https://youtu.be/Dcz28sASv0w
Control your Raspberry Pi using Line Bot
https://youtu.be/WL2RrYrGB1Q
Iot自動販賣機
https://youtu.be/9jxIuyiIXko
2020年10月5日 星期一
AI邊緣運算實作: TensorFlow Lite for MCU
AI邊緣運算
隨著物聯網與人工智慧發展,工作負載開始由雲端移轉至終端,AI也隨之進入到嵌入式系統及物聯網終端裝置中。在終端或所謂邊緣裝置這類的超低功耗微處理器上所實現的深度學習,被稱呼為微型深度學習。然而在MCU本身運算速度就不快,記憶體空間也有限的情況下,AI模型也不能太大,因此要能確保AI 效能,同時兼顧低功耗、成本與縮短開發時間,都是研發人員所必須面對的挑戰。
什麼是TensorFlow Lite
TensorFlow Lite for MCU正是專為邊緣裝置設計的TensorFlow模型預測框架,是TensorFlow的精簡版本,讓開發者可以在物聯網與嵌入式裝置中部署微型機器學習模型。
AI模型佈署於微控制器,需要那些知識 ?
首先,必須先知道TensorFlow Lite for MCU 在實作上會涉及Deep Learning 觀念及MCU開發技術,然而這是兩個截然不同的技術領域的人, 故要能有效整合出好的AI系統,必須能同時理解這兩邊的技術。簡而言之,你會需要對於Deep Learning 有一定的概念、還要有模型優化(如Quantization)、TensorFlow Lite的框架以及MCU程式開發的相關知識。技術不能說很難,但對於初學者,沒有人引導,是有困難度的,因為開發環境包含AI環境與MCU的BSP環境都不太熟悉的情況下,產生的錯誤常常搞不清楚問題在那 。
在板子跑AI和我在電腦跑AI有何差別?
在電腦上跑AI,對於輸入資料多半是.csv或圖片,以檔案方式存在。 然而在邊緣運算上, 輸入的資料通常是來自硬體的感測器,因此要能正確且即時的對資料預處理並且轉換成模型所須要的x輸入型狀(x input shape)才能代入模型。但資料抓取上要如何切成一個剛好完整的x 來進行推論呢? 例如聲音訊號是連續波, 不可能每次都剛好切出一段完整的聲音丟入模型,而得到很好的正確率。還有,像是感測器訊號也可能有雜訊產生,也會造成模型誤判。所以在系統上,需要有一個處理的機制來讓我們的AI系統達到穏定。
在板子上讀取硬體訊號,作為模型輸入的資料 $x$
然後對原始訊號做訊號處理 (即數據的前處理) ,獲得訊號的特徵向量 $x'$ 後 ,再餵入模型 $\hat{y}=f(x')$
在Sparkfun edge board 讀取G-Sensor X, Y,Z 的變化
在Sparkfun edge board 讀取Microphone 左右聲道變化
Tiny DL Demo
底下Demo 幾個AI邊緣運算分別在圖像、聲音、感測訊號的應用
2020年10月2日 星期五
Quick guide for building Raspberry Pi kernel 4.4.x
For Driver course (www.ittraining.com.tw)
1) 安裝toolchain (Cross compiler)
# For 32 位元Linux
export PATH=/home/student/pi/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin:$PATH
# For 64 位元Linux
export PATH=/home/student/pi/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi-x64/bin:$PATH
root@ubuntu:/home/student/pi# arm-linux-gnueabihf-gcc -v
..
gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03)
2) Linux kernel 編譯
#進入kernel source tree
cd linux
# 產生 .config
For Raspberry Pi 2, Pi 3, Pi 3+, and Compute Module 3 default build configuration
KERNEL=kernel7
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
For Raspberry Pi 4
KERNEL=kernel7l
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2711_defconfig
#編譯 Linux kernel、kernel module 及 device tree
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs -j 2
# 安裝 kernel modulemake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=../modules modules_install
sudo cp arch/arm/boot/zImage /boot/
$KERNEL.img
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
#複製 kernel modules 到 Raspberry Pi
tar zcvf modules.tar.gz modules
scp modules.tar.gz root@192.168.1.141:/root
tar zxf modules.tar.gz
解開後將 <kernel version> 目錄放到 /lib/modules/
----------------------------------------------------
在 Raspberry Pi 編譯kernel module
1.) copy kernel source to Raspberry Pi
scp linux-rpi-4.14.98-v7.tar.gz root@192.168.1.157:/root
tar zxf linux-rpi-4.14.98-v7.tar.gz
2.)建立連結到 kernel source
cd /lib/modules/4.14.98-v7
ln -sf /root/linux-rpi-4.14.98-v7 build
------------------------------------------------------------------------------------
3.) build driver module from source
cd kernel_driver/01_LED
.
├── chr_led.c
├── Makefile
└── test.c
make
├── chr_led.c
├── chr_led.ko
├── chr_led.mod.c
├── chr_led.mod.o
├── chr_led.o
├── Makefile
├── modules.order
├── Module.symvers
└── test.c
發生 fixdep error! Exec format error
進入kernel source 重新產生ARM版本的工具集
cd /root/linux-rpi-4.14.98-v7
make scripts
4.) 測試 module
#載入模組sudo insmod chr_led.ko
#顯示所有模組
lsmod
#用user應用程式測試driver
gcc test.c -o test
sudo ./test ==> 你會看見LED 在閃礫
#卸載模組
rmmod chr_led
2020年9月18日 星期五
好用的SSH Client : MobaXterm
在windows上用Virtual Box 建置Linux主機
下載VirtualBox 軟體: https://www.virtualbox.org/wiki/Downloads
下載 Ubuntu Image (取得一個已經包含完整系統的虛擬應用裝置檔案ova檔)
*ova 為VirtualBox使用的開放虛擬機器格式OVF (Open Virtualization Format)
啓動 VirtualBox , 並在 [File->Import Appliance]
選擇xxxx.ova檔, 載入後, 之後此VM系統及運作中在檔案系統所產生的檔案, 預設是放在
C:\Users\<user>\VirtualBox VMs\LinuxVMImages\xxxx下, 此即為Machine Folder 的位置。 若要變更預設Machine Folder位置, 則在Import Appliance時要點選
Expert Mode, 則可以在Import Appliance時, 變更Machine Folder的預設位置.
![]() |
匯入需要一些時間....wait ..wait ..

STEP 3. Start Virtual Machine
接著點選剛匯入的VM, [Start]
以使用者帳號 ubuntu (password: ubuntu) 登入, 大功告成.
1.若看到錯誤訊息像是CPU虛擬化的問題, 就要進入BIOS 設定畫面,將 "Intel virtualization
technology" 給打開
其他
1.) 在windows使用SSH Client登入Ubuntu在Ubuntu 下 , 開啓 terminal 執行 ifconfig 可以看到Ubuntu IP, 接著在windows 啓動SSH Client (如MobaXterm) 連入。接著用 SSH 的SFTP 功能, 如同FTP一樣, 可以很方便的讓Host 和 Guest 交換檔案。 ==> 更多關於Mobaxterm的使用


設定時區
sudo timedatectl set-timezone Asia/Taipei
date
2.) Shared Folder
可以讓Host OS( Winodws) 分享資料匣給Guest OS (Ubuntu), 則Host可以和Guest共用此資料匣來交換檔案. Host 啓動Shared Folder 並勾選自動mount , 則Guest OS (Ubuntu) 會mount 此 資料匣在 /media路徑下, 或者開啓檔案管理員 (nautilus) 也看到此共用的資料匣。

相關文章:
訂閱:
文章
(
Atom
)