本文將採用《超圖解Python物聯網實作入門:使用ESP8266與MicroPython》書本裡的範例,介紹Raspberry Pi Pico RP2040(以下簡稱Pico)、ESP8266和ESP32的MicroPython程式,在讀取類比輸入以及輸出PWM訊號的異同。Pico麵包板示範接線如下:

書本的補充內容
本文將採用《超圖解Python物聯網實作入門:使用ESP8266與MicroPython》書本裡的範例,介紹Raspberry Pi Pico RP2040(以下簡稱Pico)、ESP8266和ESP32的MicroPython程式,在讀取類比輸入以及輸出PWM訊號的異同。Pico麵包板示範接線如下:

就像上個世紀70年代個人電腦萌芽時期,蘋果電腦兩位史提夫創辦人,把電腦所需的要素全都整合成一台Apple I,而非提供單板電腦給少數專業玩家一樣,樹莓派基金會終於也推出了自己的「個人電腦」:Raspberry Pi 400(以下簡稱Pi 400)。

在Thonny IDE的互動環境(Shell)操作MicroPython開發板的方式,跟使用其他序列埠通訊軟體(如:PuTTY)不太一樣。使用序列埠通訊軟體連線,貼入程式碼之前,需要先按一下Ctrl+E鍵,互動環境(Shell)不支援Ctrl+E鍵,直接在其中按Ctrl+V鍵貼入程式碼即可:

Thonny最初由愛沙尼亞塔爾圖大學(University of Tartu)的計算機科學研究所開發,後來陸續收到許多在電子Maker圈赫赫有名的機構和公司的支援,包括樹莓派基金會(Raspberry Pi Foundation)、Micro:bit教育基金會、Adafruit、M5Stack…等等。

允許外部裝置連入本機Mosquitto伺服器的辦法是修改mosquitto.conf設置檔,在裡面加入幾個參數,你可以直接修改C:\Program File\mosquitto路徑裡的mosquitto.conf設置檔,筆者是將它命名成mosquitto.conf.bak備份,然後新增一個mosquitto.conf。
Arduino Leonardo板上傳搖桿程式之後,開發板的晶片(Atmega32u4)內建的USB介面,將變成人機介面通訊埠,而非燒錄程式用的UART序列介面,所以無法再透過Arduino IDE上傳新程式。解決辦法是替Leonardo板重新燒錄Bootloader(開機啟動程式)。Arduino開發板的bootloader是透過SPI介面燒錄,而非序列埠。

最近透過PyTube3程式庫下載YouTube影片,會出現KeyError: ‘assets’錯誤:

把PyTube3更新到目前最新的3.7.4.1版,仍舊會出現相同錯誤。到pypi.org網站搜尋pytube關鍵字,可找到21個相關專案,其中包含10月31日才更新的pytube 9.7.0版。另外還可以看到一個新的下載YouTube影片的專案程式“mhyt”,還有PyTubeX和PyTube4。
前幾天我把下載YouTube影片的PyTube3程式庫更新到最新版:
pip install pytube3 --upgrade
結果之前寫的YouTube影片下載程式出現錯誤,不能用了。經修改幾個地方,程式即可正常運作,而且測試下載幾個影片,原本無法下載的音樂影片都能正常下載了。
Python的subprocess程式庫在Python 3.5版新增了run()方法,它能擷取外部命令的輸出(stdout)或錯誤訊息(stderr),可替代原本的call()以及Popen()方法。run()其實是把Popen()重新包裝、簡化的方法。以擷取ping命令的輸出為例,跟Popen()方法一樣,外部命令預設採用字串列表格式,並透過stdout參數把外部命令的輸出導入Python程式。
本文將補充說明YouTube影片下載(一)的原始碼當中的subprocess程式庫的call()及Popen()方法;介紹subprocess程式庫之前,首先要知道什麼是process和thread。以瀏覽「視訊直播」網頁為例,目前開啟的瀏覽器視窗是一個Process(程序),網頁中的文字、影像和視訊,則是由程序裡的不同Thread(執行緒)同時連結到網站伺服器擷取而來的。

上一篇文章的下載YouTube影片程式裡面的「檢測影片是否有聲音」與「合併視訊和聲音」,以及《超圖解Python程式設計入門》第5章的批次轉換多媒體檔案格式和MP3聲音檔的功能,全都仰賴FFmpeg工具程式完成。本文將補充說明上一篇文章使用到的ffmpeg命令和操作。

本文旨在補充《超圖解Python程式設計入門》第5章的YouTube影片下載單元,採用新版PyTube程式庫,修正部份影片無法下載的問題,並且新增合併視訊和音軌的功能。

Begin typing your search term above and press enter to search. Press ESC to cancel.