狠狠撸

狠狠撸Share a Scribd company logo
嵌入式作業系統設計與實作
電吉他調音器
楊震
向澐
丁士宸
李昆憶
呂科進
鄭聖文
二十六小時的堅持 , 雖然尚未完成
成果 - 電吉他調音器
系統架構
Stm32F429
Discovery
Guitar
Battery
ADC
USB
Buzzer Timer
Operating System:
Rtenv Plus
調音器程式流程
音訊輸入
ADC 轉換
快速傅立葉轉換 (FFT)
音調頻率 , 可表示為音名
電吉他
電吉他的拾音器是由磁鐵和線圈構成,會產生磁場
當弦被撥動時,磁場會收到干擾,產生電壓
聲音頻率、音名
C D E F G A B
Do Re Mi Fa Sol La Si
不同的音調及音高會對應至不同之頻率 , 以鋼琴中央
C 而言 , 頻率約為 261.6Hz
類比數位轉換 (ADC)
●
透過 ADC 將外部類比訊號轉成離散數位訊號
●
採用單一頻道連續取樣模式
●
利用 DMA 來搬移 ADC 產生的資料來減少 CPU 花費在讀
寫的時間
●
將取樣的結果做快速傅立葉轉換來取得頻率
開發問題
●
DMA 的模式無法搞定, Normal mode 搬移資料完成後
無法重新啟動。
●
若不以 DMA 完成後再計算,則勢必要定時取樣
●
更動排程時間造成作業系統無法預知的行為
開發問題
●
從示波器上看到,電吉他會產生一個正負約 0.2mV
的正弦波來回振動
●
然而硬體的 ADC 只能量到最多 0 ~ 3.6V 之間的電壓,
導致負電壓量測不到
問題:如何量到完整的波形?
●
答案:調整基準點、波形 -> 以平移放大電路解決
●
將完整波形 level-shift 到正電壓區
●
利用放大電路增加波形的可分辨力
平移、放大電路 , 使用 OAP
測試 , 感謝工科系、電機系支援 !
电路成品
平移、放大電路 , 使用 OAP
原讯号
调整后
快速傅立葉轉換 (Fast Fourier Transform)
與 Discrete Fourier Transform 一樣,將訊號從
time domain 轉換成 frequency domain
DFT 的缺點:運算量過大: N^2
FFT : N lg N
快速傅立葉轉換 (Fast Fourier Transform)
? ?
快速傅立葉轉換 (Fast Fourier Transform)
? ?
快速傅立葉轉換 (Fast Fourier Transform)
? ?
FFT 概念:將 DFT 拆成奇偶兩部分
快速傅立葉轉換 (Fast Fourier Transform)
F(0)
F(1)
F(2)
F(3)
F(4)
F(5)
F(6)
F(7)
0
1
2
3
4
5
6
7
0
2
4
6
1
3
5
7
0
4
2
6
1
5
3
7
開發問題
ARM 有提供 CMSIS DSP Library ,可是在開發上
遇到重重困難
VFP Register 問題
將 compiler 版本更新至 4.8.4 以上
需要開啟 FPU
-DARM_MATH_CM4
-D__FPU_USED=1
-D__FPU_PRESENT=1
-mfpu=fpv4-sp-d16 -mfloat-abi=hard
開發問題
ARM 有提供 CMSIS DSP Library ,可是在開發上
遇到重重困難
VFP Register 問題
將 compiler 版本更新至 4.8.4 以上
需要開啟 FPU
-DARM_MATH_CM4
-D__FPU_USED=1
-D__FPU_PRESENT=1
-mfpu=fpv4-sp-d16 -mfloat-abi=hard
開發問題
編譯 flag 的優化層級為 – O0 ,造成部分 Library
程式碼沒有被優化 -> 硬作 !
開發問題
ARM FFT 調用函式:
arm_cfft_f32() 所需的 arm_bitreversal_32.s ,一
直沒有被 link 進來 , 試過很多方法,依然無解
-> 毅然決然,到網路上找尋 FFT 4096 的原始碼
開發問題
板子的 floatint point extension 沒有被開啟
-> 還是硬幹
/libraries/CMSIS/Include/core_cm4.h
/libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c
開發問題
ARM 有提供 CMSIS DSP Library ,可是在開發上
遇到重重困難
VFP Register 問題
將 compiler 版本更新至 4.8.4 以上
需要開啟 FPU
-DARM_MATH_CM4
-D__FPU_USED=1
-D__FPU_PRESENT=1
-mfpu=fpv4-sp-d16 -mfloat-abi=hard
節拍器程式流程
計算節拍週期
設定定時器發聲 ( 蜂鳴器 )
延遲
單位 :BPM (Beat Per Minute)
表示一個指定的音符,例如四分音符在一分鐘內出
現的次數 ( 例如四分音符在一分鐘內出現的次數 ,
120 為 BPM 值,表示每分鐘演奏 120 個四分音符 )
樂譜上常記有音樂速度標記如 :
Allegro - 快板( 120 - 168 bpm )
Moderato - 中板( 90 - 115 bpm )
Andante - 行板( 76 - 108 bpm )
...Etc
蜂鳴器 (Buzzer)
利用 timer 對一個 GPIO 以固定頻率輸出即可發出聲音
因此改變 timer 的時間就能發出不同高低的聲音
LCD 模組 ( 觸控螢幕 )
優點 : 使用者互動界面
缺點 : 電阻式觸控螢幕 , 流暢度有待加強
LCD 繪圖原理
Layer
圖層是一排排的 Pixel 刷新
如果在更新完就立即顯 , 就會出現閃爍情況
開發問題
圖形更新問題 ( 圖層閃爍 )
解決方案 :Double buffer
硬體過新 , 軟體 Library 有 bug (ST Library)
開發問題
圖形更新問題 ( 圖層閃爍 )
解決方案 :Double buffer
硬體過新 , 軟體 Library 有 bug (ST Library)
解決畫面閃爍 - Double buffer
Show layer Hidden layer
解決畫面閃爍 - Double buffer
Hidden layer
Show layer
圖案先繪製到下面的 buffer
解決畫面閃爍 - Double buffer
Hidden layer
Show layer
繪圖完畢
解決畫面閃爍 - Double buffer
Show layer
Hidden layer
圖層交換
Thanks for listening!
Demo Time!

More Related Content

What's hot (10)

COSCUP 2016: 開源軟硬體實做全套電子鼓(python + RPi)
COSCUP 2016: 開源軟硬體實做全套電子鼓(python + RPi)COSCUP 2016: 開源軟硬體實做全套電子鼓(python + RPi)
COSCUP 2016: 開源軟硬體實做全套電子鼓(python + RPi)
Jen Yee Hong
?
2014年HFD硬件自由日活动清华站-GNURadio x HackRF - 王康 / scateu
2014年HFD硬件自由日活动清华站-GNURadio x HackRF  -  王康 / scateu 2014年HFD硬件自由日活动清华站-GNURadio x HackRF  -  王康 / scateu
2014年HFD硬件自由日活动清华站-GNURadio x HackRF - 王康 / scateu
Wang Kang
?
NTHU Comm Presentation
NTHU Comm PresentationNTHU Comm Presentation
NTHU Comm Presentation
Pei-Che Chang
?
用Raspberry Pi 完成一個智慧型六足機器人
用Raspberry Pi 完成一個智慧型六足機器人用Raspberry Pi 完成一個智慧型六足機器人
用Raspberry Pi 完成一個智慧型六足機器人
艾鍗科技
?
認識 RoBoard 硬體
認識 RoBoard 硬體認識 RoBoard 硬體
認識 RoBoard 硬體
roboard
?
2009.03 _TI-DSP簡報_slide_share
2009.03  _TI-DSP簡報_slide_share2009.03  _TI-DSP簡報_slide_share
2009.03 _TI-DSP簡報_slide_share
Harry Wang
?
机械手臂应用
机械手臂应用机械手臂应用
机械手臂应用
艾鍗科技
?
COSCUP 2016: 開源軟硬體實做全套電子鼓(python + RPi)
COSCUP 2016: 開源軟硬體實做全套電子鼓(python + RPi)COSCUP 2016: 開源軟硬體實做全套電子鼓(python + RPi)
COSCUP 2016: 開源軟硬體實做全套電子鼓(python + RPi)
Jen Yee Hong
?
2014年HFD硬件自由日活动清华站-GNURadio x HackRF - 王康 / scateu
2014年HFD硬件自由日活动清华站-GNURadio x HackRF  -  王康 / scateu 2014年HFD硬件自由日活动清华站-GNURadio x HackRF  -  王康 / scateu
2014年HFD硬件自由日活动清华站-GNURadio x HackRF - 王康 / scateu
Wang Kang
?
用Raspberry Pi 完成一個智慧型六足機器人
用Raspberry Pi 完成一個智慧型六足機器人用Raspberry Pi 完成一個智慧型六足機器人
用Raspberry Pi 完成一個智慧型六足機器人
艾鍗科技
?
認識 RoBoard 硬體
認識 RoBoard 硬體認識 RoBoard 硬體
認識 RoBoard 硬體
roboard
?
2009.03 _TI-DSP簡報_slide_share
2009.03  _TI-DSP簡報_slide_share2009.03  _TI-DSP簡報_slide_share
2009.03 _TI-DSP簡報_slide_share
Harry Wang
?

Similar to 嵌入式作業系統設計與實作 - 電吉他調音器 (20)

uRock @ SITCON 2015
uRock @ SITCON 2015uRock @ SITCON 2015
uRock @ SITCON 2015
宗凡 楊
?
视频编码原理介绍厂辞丑耻版
视频编码原理介绍厂辞丑耻版视频编码原理介绍厂辞丑耻版
视频编码原理介绍厂辞丑耻版
pluschen
?
5--芯片规划与设计(3学时)000000000000000000000.辫辫迟
5--芯片规划与设计(3学时)000000000000000000000.辫辫迟5--芯片规划与设计(3学时)000000000000000000000.辫辫迟
5--芯片规划与设计(3学时)000000000000000000000.辫辫迟
ssuserc8ad8a1
?
Ad9850 mc145151
Ad9850 mc145151Ad9850 mc145151
Ad9850 mc145151
kcarring
?
2009.05.Windows Media 网络直播 Howto
2009.05.Windows Media 网络直播 Howto2009.05.Windows Media 网络直播 Howto
2009.05.Windows Media 网络直播 Howto
caipenglong
?
Tiny6410um hw-20101026
Tiny6410um hw-20101026Tiny6410um hw-20101026
Tiny6410um hw-20101026
syed_sifa
?
王團 03-19 考題
王團  03-19 考題王團  03-19 考題
王團 03-19 考題
罢客邦
?
王團 03-19 考題
王團  03-19 考題王團  03-19 考題
王團 03-19 考題
罢客邦
?
王團 03-19 考題 & 解答
王團  03-19 考題 & 解答王團  03-19 考題 & 解答
王團 03-19 考題 & 解答
罢客邦
?
王團 03-19 考題 & 解答
王團  03-19 考題 & 解答王團  03-19 考題 & 解答
王團 03-19 考題 & 解答
罢客邦
?
STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1
Jack Wang
?
AMA 中級術科實作IV
AMA 中級術科實作IVAMA 中級術科實作IV
AMA 中級術科實作IV
吳錫修 (ShyiShiou Wu)
?
MS 7095 - P4MAM2-V2
MS 7095 - P4MAM2-V2MS 7095 - P4MAM2-V2
MS 7095 - P4MAM2-V2
JORGE SCHLEE
?
Monitouch Express Vol04
Monitouch Express Vol04Monitouch Express Vol04
Monitouch Express Vol04
monitouch
?
础惫尘2虚拟机浅析与补蝉3性能优化
础惫尘2虚拟机浅析与补蝉3性能优化础惫尘2虚拟机浅析与补蝉3性能优化
础惫尘2虚拟机浅析与补蝉3性能优化
Harvey Zhang
?
uRock @ SITCON 2015
uRock @ SITCON 2015uRock @ SITCON 2015
uRock @ SITCON 2015
宗凡 楊
?
视频编码原理介绍厂辞丑耻版
视频编码原理介绍厂辞丑耻版视频编码原理介绍厂辞丑耻版
视频编码原理介绍厂辞丑耻版
pluschen
?
5--芯片规划与设计(3学时)000000000000000000000.辫辫迟
5--芯片规划与设计(3学时)000000000000000000000.辫辫迟5--芯片规划与设计(3学时)000000000000000000000.辫辫迟
5--芯片规划与设计(3学时)000000000000000000000.辫辫迟
ssuserc8ad8a1
?
Ad9850 mc145151
Ad9850 mc145151Ad9850 mc145151
Ad9850 mc145151
kcarring
?
2009.05.Windows Media 网络直播 Howto
2009.05.Windows Media 网络直播 Howto2009.05.Windows Media 网络直播 Howto
2009.05.Windows Media 网络直播 Howto
caipenglong
?
Tiny6410um hw-20101026
Tiny6410um hw-20101026Tiny6410um hw-20101026
Tiny6410um hw-20101026
syed_sifa
?
王團 03-19 考題
王團  03-19 考題王團  03-19 考題
王團 03-19 考題
罢客邦
?
王團 03-19 考題
王團  03-19 考題王團  03-19 考題
王團 03-19 考題
罢客邦
?
王團 03-19 考題 & 解答
王團  03-19 考題 & 解答王團  03-19 考題 & 解答
王團 03-19 考題 & 解答
罢客邦
?
王團 03-19 考題 & 解答
王團  03-19 考題 & 解答王團  03-19 考題 & 解答
王團 03-19 考題 & 解答
罢客邦
?
STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1
Jack Wang
?
Monitouch Express Vol04
Monitouch Express Vol04Monitouch Express Vol04
Monitouch Express Vol04
monitouch
?
础惫尘2虚拟机浅析与补蝉3性能优化
础惫尘2虚拟机浅析与补蝉3性能优化础惫尘2虚拟机浅析与补蝉3性能优化
础惫尘2虚拟机浅析与补蝉3性能优化
Harvey Zhang
?

嵌入式作業系統設計與實作 - 電吉他調音器