樹莓派最小安裝
啟動後執行raspi-config
設定wifi
設定autologin
安裝樹莓派的xwindow、顯示驅動、桌面管理員以及chromium
sudo apt-get install --no-install-recommends xserver-xorg libgles2-mesa-dev xorg-dev chromium-browser matchbox-window-manager
reboot之後
在~/.bashrc 添加 startx
創建~/.xinitrc 添加欲自動執行的xwindow程式
2019年12月11日 星期三
2019年5月17日 星期五
2019年5月7日 星期二
在stm32f407搭配SW開發dsp程式的程式庫設定
但是在SW裡面開發時需要設定一些地方
首先看看STM32065裡面有什麼
下載並解開後的資料夾名稱(版本1.8)
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0
裡面有個Lib資料夾,裡面有DSP相關標頭檔以及程式庫,以下標示程式庫所在位置,我們需要的是GCC版本,將整個Lib資料夾拉到專案的Drivers/CMSIS資料夾裡面
再來找到標頭檔(.h)所在位置,將這幾個拉到專案的Drivers/CMSIS/Include資料夾裡面
補充:在刷新cubeMX的時候這裡面的.h會被刷新,新加入的.h會消失需要重新拉入,目前正在找新的資料夾位置
目前SW專案資料夾會多上面這兩個
接著打開專案設定,點選Libraries設定(-l)新增arm_cortexM4lf_math,設定(-L)新增程式庫所在路徑,這裡示範的程式庫是放在專案的相對位置:Drivers/CMSIS/Lib/GCC
至於include的部份因為我們放的是已經存在專案中的include資料夾,因此在專案設定方面無需更動。
最後加入ARM_MATH_CM4的巨定義以便讓前置處理器能夠開通標頭檔中相對應的巨集設定
然後就可以在程式中呼叫相關DSP 的API
記得引入相對應標頭檔:
#include <arm_math.h>
arm_sin_f32(2*PI*10*i/Fs)
參考資料:
首先看看STM32065裡面有什麼
下載並解開後的資料夾名稱(版本1.8)
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0
裡面有個Lib資料夾,裡面有DSP相關標頭檔以及程式庫,以下標示程式庫所在位置,我們需要的是GCC版本,將整個Lib資料夾拉到專案的Drivers/CMSIS資料夾裡面
再來找到標頭檔(.h)所在位置,將這幾個拉到專案的Drivers/CMSIS/Include資料夾裡面
補充:在刷新cubeMX的時候這裡面的.h會被刷新,新加入的.h會消失需要重新拉入,目前正在找新的資料夾位置
目前SW專案資料夾會多上面這兩個
接著打開專案設定,點選Libraries設定(-l)新增arm_cortexM4lf_math,設定(-L)新增程式庫所在路徑,這裡示範的程式庫是放在專案的相對位置:Drivers/CMSIS/Lib/GCC
至於include的部份因為我們放的是已經存在專案中的include資料夾,因此在專案設定方面無需更動。
最後加入ARM_MATH_CM4的巨定義以便讓前置處理器能夠開通標頭檔中相對應的巨集設定
然後就可以在程式中呼叫相關DSP 的API
記得引入相對應標頭檔:
#include <arm_math.h>
arm_sin_f32(2*PI*10*i/Fs)
arm_cfft_radix4_init_f32(&Base4fft,Length,0,1);
arm_cfft_radix4_f32(&Base4fft,Inputdata);
arm_cmplx_mag_f32(Inputdata,Outputdata,Length);
參考資料:
CFLAGS += -I$(CMSISPATH)/CMSIS/DSP/Include
LDFLAGS += -L$(CMSISPATH)/CMSIS/Lib/GCC/ -larm_cortexM4lf_math
出處:https://stackoverflow.com/questions/49237484/stm32f-discovery-undefined-reference-to-arm-sin-f32
2019年5月1日 星期三
在7688duo的後台shell裡面,如何使用avrdude及其注意事項
1. 要在avr ide產生正確的7688duo的32u4 hex檔,需要記得載入7688duo的板子管理員
2. avr ide產生的hex在什麼地方,可以將avr ide的詳細輸出打開,編譯訊息中會指出位置
3. 呼叫 /usr/bin/run-avrdude 後面帶hex檔即可後台燒錄
4. 二次呼叫如果出現下列錯誤訊息
set pinmux spi_s -> gpio
Can't export GPIO 3, already exported/busy?: Device or resource busy
2. avr ide產生的hex在什麼地方,可以將avr ide的詳細輸出打開,編譯訊息中會指出位置
3. 呼叫 /usr/bin/run-avrdude 後面帶hex檔即可後台燒錄
4. 二次呼叫如果出現下列錯誤訊息
set pinmux spi_s -> gpio
Can't export GPIO 3, already exported/busy?: Device or resource busy
則需要將 /sys/class/gpio/裡面的gpio3 unexport掉
2019年3月23日 星期六
ubuntu升級當機修復記
這一次ubuntu升級原本利用圖形介面,但升級到一半電腦當機只好重置重開機。但之後開機畫面一片黑只剩下游標,再開機一次後進入安全模式但也無法修復,只好正常開機後用ctrl-alt-F1進入終端機試圖用指令修復,但是用指令
ifconfig
發現網路裝置eth0消失只剩下lo裝置。
用指令
ip a
可以發現裝置存在但是狀態是DOWN
於是找到指令
sudo ip link set eth0 up
這樣可以把eth0開啟
但這樣可以把裝置開啟還是沒有取得ip
於是再用指令
sudo dhclient eth0
取得ip位置
到此系統終於可以連上網路
然後再用指令
sudo dpkg --configure -a
試圖修復系統繼續升級
ifconfig
發現網路裝置eth0消失只剩下lo裝置。
用指令
ip a
可以發現裝置存在但是狀態是DOWN
於是找到指令
sudo ip link set eth0 up
這樣可以把eth0開啟
但這樣可以把裝置開啟還是沒有取得ip
於是再用指令
sudo dhclient eth0
取得ip位置
到此系統終於可以連上網路
然後再用指令
sudo dpkg --configure -a
試圖修復系統繼續升級
2019年3月7日 星期四
發想:7688的擴展版,增加易用性
7688是一款自帶wifi的linux單板
其linux版本是openwrt,一種用在路由器的作業系統
由於linux系統的關係,使得7688能夠執行多樣的應用程式
例如搭配webcam可以做為網路影像監視器
同時也可以安裝執行python、node等程式
7688原始設計中,如果要設定7688的wifi組態,需要將7688的組態先回復成原始狀態
其原始狀態是將自己成為無線基地台並同時執行網頁伺服器,
然後使用者可以連接進去7688的首頁進行相關設定
這裡設想幾個情境
只有7688:使用者直接與7688連接與操作
處在wifi環境:7688可切換成Client端模式,將7688連接到區域無線網路中,使用者與7688同處一處區域wifi便可以連接7688,此時必須知道7688的ip,或者在電腦具備Bonjour協定能力情況下,以domain name方式登入7688進行操控
於是,我想設計一款擴展版,上面具備顯示幕,能將顯示7688目前的狀態或ip,這樣就可以方便讓使用者連線
同時擴展板上的為控制器除了負責顯示7688狀態與溝通,也可以負擔一些周邊擴充的任務,例如GPIO擴展,PWM擴展以及ADC,DAC等類比輸出入

其linux版本是openwrt,一種用在路由器的作業系統
由於linux系統的關係,使得7688能夠執行多樣的應用程式
例如搭配webcam可以做為網路影像監視器
同時也可以安裝執行python、node等程式
7688原始設計中,如果要設定7688的wifi組態,需要將7688的組態先回復成原始狀態
其原始狀態是將自己成為無線基地台並同時執行網頁伺服器,
然後使用者可以連接進去7688的首頁進行相關設定
這裡設想幾個情境
只有7688:使用者直接與7688連接與操作
處在wifi環境:7688可切換成Client端模式,將7688連接到區域無線網路中,使用者與7688同處一處區域wifi便可以連接7688,此時必須知道7688的ip,或者在電腦具備Bonjour協定能力情況下,以domain name方式登入7688進行操控
於是,我想設計一款擴展版,上面具備顯示幕,能將顯示7688目前的狀態或ip,這樣就可以方便讓使用者連線
同時擴展板上的為控制器除了負責顯示7688狀態與溝通,也可以負擔一些周邊擴充的任務,例如GPIO擴展,PWM擴展以及ADC,DAC等類比輸出入
2019年2月18日 星期一
安裝python與pycharm
pycharm是一款python整合開發環境軟體(IDE)
有付費版以及自由開源版
安裝python:
就是去官網直接點python install,直接執行就可以了
然後預設安裝無腦下一步
安裝pycharm:
也是官網點選安裝,直接執行
預設安裝
有付費版以及自由開源版
安裝python:
就是去官網直接點python install,直接執行就可以了
然後預設安裝無腦下一步
安裝pycharm:
也是官網點選安裝,直接執行
預設安裝
2019年2月14日 星期四
使用了stm32duino usb bootloader(from roger clark)但是無法編譯firmata
根據Roger Clark的Arduino_STM32以及stm32duino-bootloader所述安裝
可以順利使用stm32的usb作為程式上傳的管道(省去st-link)
但是如此一來無法編譯firmata
經調查,firmata 可以在stm32duino的Arduino_Core_STM32的程式庫中成功編譯,但是這個程式庫沒有usb bootloader
一開始因為Roger Clark就是在stm32duino.com的討論版出現,所以搞混了這兩個程式庫
現在就是繼續調查有沒有辦法在usb bootloader情況下編譯firmata...
可以順利使用stm32的usb作為程式上傳的管道(省去st-link)
但是如此一來無法編譯firmata
經調查,firmata 可以在stm32duino的Arduino_Core_STM32的程式庫中成功編譯,但是這個程式庫沒有usb bootloader
一開始因為Roger Clark就是在stm32duino.com的討論版出現,所以搞混了這兩個程式庫
現在就是繼續調查有沒有辦法在usb bootloader情況下編譯firmata...
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
這裡有說明
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設定新板子
之前是使用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是兩個不一樣的東西
要這個傢伙的兩個專案 搭配使用
https://github.com/rogerclarkmelbourne
步驟:
1.先在STM32F103板子上安裝BOOTLOADER
位置就是上述的
https://github.com/rogerclarkmelbourne/STM32duino-bootloader
目前無法從arudino ide透過serial上傳
板子管理員有更新,更新後再測試
這裡指出應該是因為在mac的環境造成底層韌體無法設定造成stm32flash報錯
https://sourceforge.net/p/stm32flash/tickets/68/
以下是確定會動的步驟
目前在windows10電腦測試可以,可以用STM32F103的USB當作BOOTLOADER
原來我裝的板子管理員跟我看的stm32duino是兩個不一樣的東西
要這個傢伙的兩個專案 搭配使用
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上傳方法,進行編譯與上傳了
訂閱:
文章 (Atom)