顯示具有 arduino 標籤的文章。 顯示所有文章
顯示具有 arduino 標籤的文章。 顯示所有文章

2019年2月13日 星期三

將stm32f103寫入arduino bootloader然後用arduino ide開發測試(stm32duino)

讓stm32f103利用自帶的usb搭配bootloader韌體成為arduino ide可以直接下載的板子

之前是使用stlinkv2作為下載工具
現在則是可以免用stlinkv2

1.使用st-flash 安裝bootloader
如何使用st-flash
https://github.com/texane/stlink/blob/master/doc/man/st-flash.md
st-flash write firmware.bin 0x8000000
bin檔所在位置
這裡有說明
http://wiki.stm32duino.com/index.php?title=Burning_the_bootloader
裡面會提到如何在f103系列上燒錄bootloader

bootloader是一個名為
generic_boot20_pb12.bin
的檔案
來源自:
https://github.com/rogerclarkmelbourne/STM32duino-bootloader

2.在arduino ide設定新板子
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
在板子管理員選擇安裝一個名為STM32 Core的管理員

還在測試,還沒成功
目前無法從arudino ide透過serial上傳

板子管理員有更新,更新後再測試

這裡指出應該是因為在mac的環境造成底層韌體無法設定造成stm32flash報錯
https://sourceforge.net/p/stm32flash/tickets/68/

以下是確定會動的步驟
目前在windows10電腦測試可以,可以用STM32F103的USB當作BOOTLOADER
原來我裝的板子管理員跟我看的stm32duino是兩個不一樣的東西
要這個傢伙的兩個專案 搭配使用
  1. Arduino_STM32
  2. STM32duino-bootloader
https://github.com/rogerclarkmelbourne

步驟:
1.先在STM32F103板子上安裝BOOTLOADER
位置就是上述的
https://github.com/rogerclarkmelbourne/STM32duino-bootloader
檔名內的接腳編號是指LED所在位置

2.在ARDUINO IDE板子管理員找到並安裝 Arduino SAM Boards By Arduino 包含 Arduino Due

3.安裝bootloader的usb裝置驅動
https://wiki.stm32duino.com/index.php?title=Windows_driver_installation
其實就是註冊個名字,好讓裝置管理員可以辨識

4.關於Arduin IDE的板子管理員新增方法必須手動,詳情看這裡
https://wiki.stm32duino.com/index.php?title=Installation
前面提到新增板子的方法不是stm32duino設計的,結果會造成 上傳方法 裡面沒有 stm32cuino bootloader這個選項,以至於無法上傳

5.接著重新啟動Arudino IDE後就可以選擇正確的板子以及設定stm32duino bootloader上傳方法,進行編譯與上傳了

2018年8月22日 星期三

LED蠟燭實驗

網路這幾天流傳一則影片,有人用Arudino連接一顆0402的SMD LED,然後對著點亮的LED吹氣,最後竟然可以吹熄,過一會又亮起來,如此反覆操作著。
這個作者也在instructables.com上面發表做法,甚至在Arduino官網上也有上頭條,這麼有趣的專題,我也來跟風做做看。

矽二極體每升高一度C,則障壁電壓會下降2.5mV

這是電子學課本一開始就會教的知識,如今可以用在這個小專題上,這個專題利用微小封裝的LED,使得該LED內的二極體接面能夠快速感受到溫度的變化,利用點亮LED時產生的溫度升高與吹氣時帶走溫度這兩者之間的溫差,預計可以獲得一個明顯的障蔽電壓電壓變化,然後搭配Arduino內的ADC將二極體的障壁電壓讀取出來,接著用軟體模擬蠟燭點亮與吹熄的效果。

首先接一個簡單可以點亮發光二極體的電路,一個有限流電阻的發光二極體迴路,發光二極體在迴路中的低側,如此就可以從發光二極體的陽極拉出導線量測電壓。電壓變化如此的小,除了在硬體電路上加以改進外,是否還有其他解法能得知這個微弱變化呢?

為了解決在電壓量測的軟體技巧上使用了累加法,將微小的電壓變化放大出來。當直接讀取單次的ADC數值時,只有看到個位數在跳動,但完全無法得知目前微弱電壓的數值,但是這個跳動的個位數本身就隱含著微弱電壓的訊息,於是我們只要每次讀取固定數量且大量的數據累加起來,就可以將這個隱含的訊息予以放大。這個過程有點像是累進誤差這個概念的反義應用,本來累進誤差是我們不要的,但是如果逆向思考則成為有效的工具。另外,這裡也有另一層意義需要思考,就是單筆ADC數值上的個位數跳動與累加之後產生了明顯的差別,非常貼切地驗證了「見樹不見林」這句話。在解決問題之前我們通常要先觀察問題,而觀察問題的時候則是是需要不斷改變高度甚至是維度,這時候就要依賴數學課教我們的那一堆數學工具來觀察了。

2018年5月9日 星期三

如何使用arduino IDE開發stm32f103晶片

根據這裡指出:https://github.com/stm32duino/Arduino_Core_STM32

在arduino IDE裡面新增板子管理員,「額外的開發板管理員網址」如下
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json

接著就可以在 IDE的工具->開發板: 看到 Generic STM32F103 serials選項
點選後就會在 工具選單內出現新板子的新選項
基本上維持預設值選項
然後將STM32F103的板子以ST-LINK工具連接好,接上電腦
這個板子管理員會將程式編譯好然後上傳並執行,跟傳統arduino的上傳過程一樣,只是編譯時間會久一點

STM32F103這邊完全不用做任何設定或預先安裝,上述的開發過程與其他也ST-LINK工具開發的過程一樣,只是改用Arudino IDE作為介面而已,然後他也相容原本Arudino的程式,他會在編譯過程中搭配一些程式庫將程式碼編譯成STM32F103的ARM code。

至於原本arduino的接腳與STM32F103的接腳如何對應,我還在研究
2019-2-13
關於接腳對應
直接寫接腳名稱就可以,例如:PB8