[FabNotes37]專治手殘癥的畢業(yè)設計:特雷·瓦力機器人

起源

在開始的開始,我打算做一個特雷門琴 Theremin俄精。它是一種奇葩樂器询筏,1919年由俄國物理學家 Theremin 教授發(fā)明,也是世界上第一種不需要身體接觸就可以演奏的樂器(電子音樂的鼻祖)竖慧。

但是嫌套,在研究特雷門琴的原理時,被復雜的電路和聲學原理嚇得有點懵:

認慫了以后,調整原計劃為一個簡化版本:做一個迷你機器人痒谴,如果在機器人面前移動手的位置碾篡,機器人就會根據(jù)手掌距離自己的距離,發(fā)出不同聲調的音符痹筛。你可以在不碰機器人的情況下,指揮它演奏一段樂曲廓鞠。

因為既不是完整的特雷門琴帚稠,也不是機器人瓦力,只好叫做特雷·瓦力 (英文名 Mini Soundbot 又名迷你騷包)

草得不能再草的草圖:

項目計劃

期末作業(yè)的截止完成時間是 6.22床佳,時間不多滋早,必需做好時間計劃。

我把項目分成 4 個部分:設計砌们,編程杆麸,外觀和測試。從 6.8 正式開始準備浪感,當時只有一張草圖昔头,其余都是一片空白,意味著我需要用 10 天時間影兽,把這個課程學到的東西運用到項目中减细,完成期末作業(yè)。要命的是赢笨,我離實驗室有三個小時的路程 —— 我在廣州未蝌,實驗室在深圳。所有東西必須在出發(fā)前計劃和設計好茧妒,才能保證去實驗室的時間真正有所產出萧吠。

列出關鍵任務后,給它們分配具體的時間:

任務 日期 輸出
研究特雷門原理 6.9-6.11 原理圖桐筏,項目結構圖
編程 6.12-6.18 在 Arduino 上可以正常運行的程序
電路元器件規(guī)劃 6.12 PCB 設計文件
電路板設計 6.13 PCB 設計文件
購買元器件和其他材料 6.15 淘寶訂單
設計外型組裝部分 6.13-6.15 Fusion 360 設計源文件
雕刻電路板 6.18 電路板
焊接元件 6.18 電路板
測試輸入和輸出組件 6.19 基本功能可運作
制作外殼 6.18-6.19 激光切割和 3D 完成的部件
組裝 6.19 把所有部分組裝成完整的作品
調試 6.20-6.21 調試和演示準備

過程

1. 整體設計

輸入 : 使用超聲波測距模塊 HC-SR04 檢測距離:

輸出: 最開始打算用小喇叭纸型,但是效果不好,遂放棄。

改成用軟件的方式實現(xiàn)聲音的控制狰腌,把 macbook 作為揚聲器除破,用程序將距離轉換為 C 調音符:

材料和開銷

硬件

  • ATTiny 45 芯片
  • 超聲波測距模塊 HC-SR04
  • AVRISP SMD
  • FTDI-SMD-HEADER
  • 電阻 10.0K OHM 1206 SMD
  • 電容 1UF 1206
  • 杜邦線

軟件

外殼

  • 椴木板
  • 3D 打印部件

硬件和外殼部分總共花費約 $17 。

物品 數(shù)量 花費
Attiny 45 1 $ 2
HC-SR04 1 $ 1
AVRISPSMD 1 $ 1
FTDI-SMD-HEADER 1 $ 1
RES 10.0K OHM 1206 SMD 2 $ 0.1
CAP CER 1UF 1206 1 $ 0.1
Dupont Line 5 $ 0.1
basswood 2 $ 10
3D Printing PLA 1 $1
glue 1 $ 1
TOTAL $ 17

2. 編程

為了實現(xiàn)用電腦作為聲音轉化器琼腔,我使用開源的 C++ 套件 openFrameworks瑰枫。這個庫簡化了很多音頻處理的工作。

OpenFrameworks 下載 以及 xcode 安裝指南丹莲。

openFrameworks 有一個叫做 micknoise/Maximilian的 C++ 插件光坝,專門用來做聲音合成以及音樂數(shù)字信號處理和轉換,這樣我就能直接將傳感器的信號轉換成為可播放的音階:

下載源代碼.

在制作電路之前甥材,我先用 Arduino 來測試基礎功能:

Hello world 視頻:

https://youtu.be/4Pd2nPjEf1U

3. 電路設計

因為使用了軟件實現(xiàn)主要的模擬信號轉換盯另,所以電路方面就變得簡單很多,只需要實現(xiàn)傳感器的數(shù)據(jù)傳輸就行:

電路設計源文件 / from box.net.

4. 制作電路板

使用 RSM-20 雕刻電路板并且焊接元器件:

燒程序 sudo make -f hello.HC-SR04.make program-usbtiny

avr-objcopy -O ihex hello.HC-SR04.out hello.HC-SR04.c.hex;\
    avr-size --mcu=attiny45 --format=avr hello.HC-SR04.out
AVR Memory Usage
----------------
Device: attiny45

Program:     526 bytes (12.8% Full)
(.text + .data + .bootloader)

Data:          2 bytes (0.8% Full)
(.data + .bss + .noinit)


avrdude -p t45 -P usb -c usbtiny -U flash:w:hello.HC-SR04.c.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9206
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "hello.HC-SR04.c.hex"
avrdude: input file hello.HC-SR04.c.hex auto detected as Intel Hex
avrdude: writing flash (526 bytes):

Writing | ################################################## | 100% 0.92s

avrdude: 526 bytes of flash written
avrdude: verifying flash memory against hello.HC-SR04.c.hex:
avrdude: load data flash data from input file hello.HC-SR04.c.hex:
avrdude: input file hello.HC-SR04.c.hex auto detected as Intel Hex
avrdude: input file hello.HC-SR04.c.hex contains 526 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.11s

avrdude: verifying ...
avrdude: 526 bytes of flash verified

avrdude: safemode: Fuses OK (H:FF, E:DF, L:62)

avrdude done.  Thank you.

5. 制作外殼

超聲波測距模塊長得很像機器人的眼睛洲赵,所以干脆給它整了一個機器人 Wall-E 的造型鸳惯。 在 Fusion 360 里做好部件的設計:

然后導出成 dxf 文件到 Coraldraw 里,發(fā)送到 GCC 激光切割機叠萍。使用的參數(shù)是: speed 2.7 芝发, power 100:

切割完成:

開始組裝:

還補充了一些 3D 打印的小部件:

設計和切割源文件 / from box.net.

測試

看起來萬事俱備,測試走起俭令!

Test video for UI when playing

在移動過程中,音符的識別容易抖動部宿,需要做進一步的濾波處理抄腔。

演示

期末項目的演示材料

Slide:

Video:

Mini SoundBot - Youtube

Mini SoundBot - Vimeo

復盤經驗

  1. 項目管理

    項目管理很重要,即便只是個人項目理张。如果沒有確切的時間表和關鍵任務列表赫蛇,整個過程會變得地獄般忙亂。一旦把看似復雜的整個項目拆解成任務列表雾叭,并且明確每個任務的期限悟耘,每一步行動就有了目標,也就沒有太多的時間去焦慮织狐。更重要的是暂幼,把每個任務需要產出的結果和標準給出來,會更明確下一步要做什么移迫,以及做到什么程度就應該繼續(xù)下一個任務旺嬉,而不是無休止的糾纏于細節(jié)。

  2. 學習了音頻和音樂制作的一些原理

    如何通過程序將傳感器信號轉換成為有規(guī)律的音符厨埋。音階和頻率都很有意思(有時候也讓人摸不著頭腦)邪媳,當然,還有不少音樂制作的基礎概念,比如 propagation 傳播雨效, amplitude 振幅迅涮,frequency 頻率和timbre 音色。

  3. 使用第三方框架和插件來提高效率

    在開源的世界和神奇的 github徽龟,不用再重復造輪子叮姑,有大量的優(yōu)秀的項目和組件庫等著被挖寶,雖然仔細地讀文檔和看例子挺費時間顿肺,但相比自己去實現(xiàn)復雜的功能戏溺,這個投入的性價比實在太高了。

待完善部分

  • 程序的穩(wěn)定性依然有待改善
  • 目前只做到了音階的轉換屠尊,但是沒有實現(xiàn)特雷門琴的另一個主要特性:用手掌距離的遠近控制音量大小
  • 更有趣的做法是旷祸,做一個可以自動播放旋律的裝置,而不是手工去演奏讼昆。

參考

特雷門原理圖:

[圖片上傳失敗...(image-b7703b-1514346070595)]

課程資源

致謝

這半年托享,要感謝很多人:實驗室的小伙伴,guru 們浸赫,工作上的小伙伴闰围,被我拒絕周末約飯的小伙伴們,謝謝大家對我的理解和支持既峡。

特別感謝在我發(fā)出攢學費帖之后羡榴,慷慨贊助的各位 ,以及給每一篇筆記打賞和留言的朋友們运敢。過程很難熬校仑,好在有你們的鼓勵。

鞠躬传惠,謝謝F!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末卦方,一起剝皮案震驚了整個濱河市羊瘩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盼砍,老刑警劉巖尘吗,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浇坐,居然都是意外死亡摇予,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門吗跋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侧戴,“玉大人宁昭,你說我怎么就攤上這事⌒锼危” “怎么了积仗?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蜕猫。 經常有香客問我寂曹,道長,這世上最難降的妖魔是什么回右? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任隆圆,我火速辦了婚禮,結果婚禮上翔烁,老公的妹妹穿的比我還像新娘渺氧。我一直安慰自己,他們只是感情好蹬屹,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布侣背。 她就那樣靜靜地躺著,像睡著了一般慨默。 火紅的嫁衣襯著肌膚如雪贩耐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天厦取,我揣著相機與錄音潮太,去河邊找鬼。 笑死虾攻,一個胖子當著我的面吹牛铡买,可吹牛的內容都是我干的。 我是一名探鬼主播台谢,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼寻狂,長吁一口氣:“原來是場噩夢啊……” “哼岁经!你這毒婦竟也來了朋沮?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤缀壤,失蹤者是張志新(化名)和其女友劉穎樊拓,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塘慕,經...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡筋夏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了图呢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片条篷。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡骗随,死狀恐怖,靈堂內的尸體忽然破棺而出赴叹,到底是詐尸還是另有隱情鸿染,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布乞巧,位于F島的核電站涨椒,受9級特大地震影響,放射性物質發(fā)生泄漏绽媒。R本人自食惡果不足惜蚕冬,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望是辕。 院中可真熱鬧囤热,春花似錦、人聲如沸免糕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽石窑。三九已至牌芋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間松逊,已是汗流浹背躺屁。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留经宏,地道東北人犀暑。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像烁兰,于是被迫代替她去往敵國和親耐亏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內容