# AutoTeaMaker 自動泡茶器
###### tags: `project`
## Introduction 介紹
跟大家分享一下近期發想的一個 side project
我最近在構思一個自動泡茶器,功能主要是,自動計時並吊起茶杯中的茶包
初步的構想的核心大概是,用 Raspberry Pi 再加上步進馬達及 Z 軸螺桿,實作計時跟垂直升降的動作
再加一個觸控螢幕來作顯示跟按鈕
概念示意草圖如下:

雖然以 Raspberry Pi 跟步進馬達相對高階的硬體元件來作這樣簡單的功能,顯然像是用牛刀來殺雞
但 prototype 先講求作得出來,再看有無優化空間
因此就先以有摸索過,且能駕馭的動的東西當基礎來出發
回到 idea 的本身,談談為什麼會想作這樣的東西,
緣起是
以前的我泡茶都隨便亂泡,拿到茶包常常就是裝個熱水泡個5分鐘、10分鐘,以為茶要泡越久才越有味道
從來沒有仔細閱讀茶包上的說明
直到有一天,我突然好奇,這個茶包的真正原味是什麼樣子?
於是,我就試著以最嚴謹的方式來計水量、算溫度、跟控制時間,完全照茶包上的標準方法來泡一杯
這才發現,原來簡單便宜的茶包,以正確的方法泡起來,味道會這麼好喝,幾乎不輸給外面的手搖飲料店
之後才明白到自己泡錯了這麼多茶
像是我原先都泡個 3~5 分鐘的高山茶,其實只要泡 45 秒
一個茶包大約給 250cc 的水,常常馬克杯一裝就 400~500cc
不同的溫度,也直接影響茶味的香澀程度
長此一智之後,後來喝茶都會用手機倒數計時泡茶的時間
雖然茶比以前好喝多了,但有多了一份麻煩
就是我放進茶包後,就得懸在那邊等個 3~5 分鐘,不夠懶人化
因此,就動念想作一個能倒數計時,並自動吊起茶包的小裝置,來解決自己泡茶的癢處。
有了動機、有了構想,接下來就是實踐的部份了。
煮菜前要先備料,經過1~2個月的等待跟收集,終於一一購買並收集到必要的設備
- [ ] 螺桿
- [ ] L298N
- [ ] Power Bank , 18650 x 2
- [ ] 5V 的 NEMA17 步進馬達
- [ ] 光軸 x 4
- [ ] 限位開關
- [ ] RPi3 x 1
- [ ] 5 吋觸控螢幕
- [ ] Go!Temp 溫度探針

其中這個在 Digikey 上訂的觸控螢幕,最花時間,下單後,交期原本要 85 天。

幸運的是,前幾週它提前出貨收到了。
因為不想花時間在驅動程式上掙扎,所以事前作了一些功能,想買 Plug&Play 的裝置
還好真如預期般一樣,插了就可以用,省了一翻功夫
上上週,在 H4 聚會時,也實驗成功驅動了步進馬達。

最核心的硬體驅動有通了,下一步預計是設計 3D 的骨架模型,以及起草 RPi 上的 UI
這些都是需要時間跟毅力一磚一瓦堆砌起來的部份。
我預計在接下來的時間,大概固定在參加每週 H4 聚會時邊聊天邊作一點,慢慢將積木堆起來。
預計會以 open source 的方式進行,歡迎對這 topic 有興趣的人也一起來動動手作點小東西。
## How to participate 如何參與
目前參加的方式主要如下:
- 加入 H4 Discord 及其子頻道 **#autoteamaker-自動泡茶器** 討論互動
- H4 Discord 連結: <https://discord.gg/sUFfn6kvYK>
- project chat channel: [按此前往](https://discord.com/channels/781442554951499777/819436839685062656) (需要先登錄 Discord 帳號並加入 H4 Discord)
- 參加 H4 每週四晚上的固定聚會,和專案發起人面對面聊聊天交流
- 關注&更新線上共筆頁面: <https://hackmd.io/o0PFb9mUTXOwEVcy68hTAA>
## BOM & Skill (WIP)
### BOM 硬體備料清單
| Item 品項 | Amount 數量 | Model 型號 | Where to buy 哪裡買 | price 多少錢 |
|--|--|-- | -- | --: |
| Raspberry Pi 3B+/4 | 1 | RPi3B+ | https://www.digikey.tw/product-detail/zh/raspberry-pi/RASPBERRY-PI-3-MODEL-B-/1690-1025-ND/8571724 | 1152 TWD |
| 觸控螢幕 | 1 | DFR0550 | https://www.digikey.tw/product-detail/zh/dfrobot/DFR0550/1738-1453-ND/9608214 | 1317 TWD|
| 紅外測溫感測器模組 | 1 | GY-906 BCC MLX90614ESF | https://www.ruten.com.tw/item/show?22030961833298 | 900 TWD |
| USB power bank | 1 | | https://shopee.tw/product/63901499/2700715582 | 145 TWD |
| 電池 18650 | 2 | Panasonic 平頭 | 今華電子 | 500 TWD |
| 步進馬達(已下架) | 1 | HMS-42D3010 | https://shop.cpu.com.tw/product/61340/info/ | (含運) 420 TWD |
| 步進馬達 | 1 | HMS-45000 | https://shop.cpu.com.tw/product/61680/info/ | 290 TWD |
| 步進馬達驅動器 | 1 | L298N | https://shopee.tw/product/2447432/529179469 | 75 TWD |
| 限位開關 | 1 | Unknown | https://shopee.tw/product/8191378/6416167859 | 45 TWD |
| T8 螺桿 | 1 | 300 mm | https://shopee.tw/product/8191378/1903771425 | 110 TWD |
| 光軸 | 4 | 300mm | https://shopee.tw/product/16028084/7735212423 | 192 TWD |
| M3螺絲 | 8 | 20mm | 螺絲總匯 | TBD. |
| 彈性聯軸器 | 1 | 5mm孔x8mm孔 | https://shopee.tw/product/8191378/598994119 | 40 TWD |
### Skill 技能清單
- Linux & Raspberry Pi experiences
- 3D model design
- onshape.com 由 wycc 推薦的線上 3D 建模軟體
- 推薦教學影片: [Teching Tech -- Onshape 3D Modelling](https://www.youtube.com/playlist?list=PLGqRUdq5ULsMDOxmu10AGPDIOkzNYu7D7)
## Changelog 演進歷史
### 2023-04-05
FlySkyPie commit 了修改後的 Pull Request:
[New GUI with Typescript+React+Mui+Vite by FlySkyPie · Pull Request #1 · hacking-thursday/autoteamaker](https://github.com/hacking-thursday/autoteamaker/pull/1)
目前測試,在 laptop 上可以執行,不過放進 Raspberry Pi 執行後,有錯誤訊息而沒有順利跑出 GUI.
### 2023-04-01

把新拿到的料理溫度計也拆了
想讀取數值,但感覺難度頗高
ref:
- [Direct Reading of LCD Using General Purpose IO : 12 Steps - Instructables](https://www.instructables.com/Direct-Reading-of-LCD-Using-General-Purpose-IO/)
- [IoT Coffee Pot Monitor : 9 Steps (with Pictures) - Instructables](https://www.instructables.com/IoT-Coffee-Pot-Monitor/)
- [How to read data directly from lcd display - Arduino Stack Exchange](https://arduino.stackexchange.com/questions/57026/how-to-read-data-directly-from-lcd-display)
- [How to read data directly from LCD](https://reedpaper.wordpress.com/2018/08/30/how-to-read-data-directly-from-lcd/)
### 2023-03-31
拿到 TMC2208 的步進馬達驅動元件了。
從 A4988 換到 TMC2208 後,噪音不只是減少,而簡直像是消失一樣,MAGIC!!!

另外,也拿到了訂的料理用溫度計,預計找個機會拆開研究。

### 2023-03-30
H4 聚會時, FlyPie 即興重構了 GUI。以 Electron + React + Typescript 重做了一份 GUI。 GUI 的質感有了飛躍性的提升。
不過卡在新的 code base 和原本 code base 還有不小的差異,還需要解決一些問題才能融合。
### 2023-03-28
將 GUI 的目前 code 整理了一下,推上 H4 的 GitHub:
<https://github.com/hacking-thursday/autoteamaker>
實測 MLX90614 非接觸式測水溫的方式不可靠,主要有二:
- 對照料理溫度計的讀數,差了 5 ~ 10 度C
- 數值容易跳動不穩定
### 2023-03-27
到今華電子買了右彎 90 度的 micro USB 接頭,讓電源接線。
另外,在光華商場的仙得曼咖啡,買到了合適尺寸的茶濾網。
這對泡傳統茶葉更加簡單了。
### 2023-03-26
揪著眼睛打了一整天的接線,終於將接線整到可以輕鬆帶着走的程度了。


罩上透明外殼的樣子如下:

### 2023-03-25
畫了用於固定 A4988 的殼

### 2023-03-24
實際使用上的問題:
- 當螢幕休眠黑屏狀態,碰觸螢幕時,不確定會不會誤觸按鈕。
- 接線仍外露,要作固定。(優先)
- RPi 要連 WiFi 時,需要打字還是需要接鍵盤,要解決的話需要螢幕鍵盤。(optional)
### 2023-03-23
以 Electron 搭配 javascript 及 shell script 弄出簡單版 GUI。
初步完成,讓 prototype 可以獨立運作,不需依賴外部電腦。
只要接上 USB 電源即可運作。

### 2023-03-23
修正 DFR0550 觸控板的觸控問題。目前試出的解法是:
`/boot/config.txt` 檔案修改如下:
```
#dtoverlay=vc4-kms-v3d
dtoverlay=rpi-ft5406,touchscreen-swapped-x-y=1,touchscreen-inverted-x=1
display_lcd_rotate=1
```
要點:
- 取消 `vc4-kms-v3d` 改爲 `rpi-ft5406`
- 設 `display_lcd_rotate`
- 加上 `touchscreen-swapped-x-y=1,touchscreen-inverted-x=1` 以修正觸控翻轉的問題
### 2023-03-23
- 成功驅動 A4988。可取代 L298N, 體積更小,且閒置狀態可關電避免過熱。
### 2023-03-22
- 今天收到新的 L9110 元件,實測後,還是有晶片發燙的問題。
- L9110 的 spec 裏寫的上限是 800mA
- 有量過 Vcc 的電流,約 0.5A ~ 0.6A 左右
- 也拿到了 A4988 的元件,預計試試看能否取代 L298N
- 關於步進馬達,推薦影片如下:
- [步進馬達 - 軟體與A4988 - YouTube](https://www.youtube.com/watch?v=2SMFfHa2Tqw)
- [步進馬達 - 硬體 - YouTube](https://www.youtube.com/watch?v=I69kyQiQNrc)
- 另外,查到有人推薦 RpiMotorLib 。裏面剛好有清楚的文件說明。
- [RpiMotorLib/Nema11A4988.md at master · gavinlyonsrepo/RpiMotorLib](https://github.com/gavinlyonsrepo/RpiMotorLib/blob/master/Documentation/Nema11A4988.md)
### 2023-03-22
觸控螢幕 DFR0550 在新的 Raspberry Pi 上,觸控有問題。
在 Raspberry Pi 的 issue tracker 找到對應的討論串:
[Official Raspberry DSI 7" Display not working · Issue #4686 · raspberrypi/linux](https://github.com/raspberrypi/linux/issues/4686)
經測試,將 `/boot/config.txt` 的 `dtoverlay=vc4-kms-v3d` 註解掉(如下):
```
# Enable DRM VC4 V3D driver
#dtoverlay=vc4-kms-v3d
max_framebuffers=2
```
再重新開機即可。
### 2023-03-17
發現 `autoteamaker.com`, `autoteamaker.org` 的網域還沒被註冊,決定先投錢註冊了。
### 2023-03-17
用條碼機作了 QRcode 標籤,方便別人好奇時,自己連網頁看介紹,節省介紹時間。

### 2023-03-16
於 H4 聚會時,第二次實測。意外發現一個 Bug。
茶葉放下去時很順利,但拉上來時,卻拉不太動,因爲**茶葉吸飽水之後變很重**,跟模擬測試或是小茶包不一樣。



下一步,預期要做:
- 用 Electron 作簡單按 button 執行動作的 GUI
- 想辦法固定 L298N 的接線
如此一來,才能切斷臍帶,讓他先成爲一個獨立自主的單元。
不然,每一次重新測試,都要重新接一次線及連線 console 下指令。
很容易耐心沒電了,專案就推不動了。
### 2023-03-15
設計了提把

可以提

也可向內收納

下午坐車殺去內湖買 M3 螺絲現貨,來回花了快3小時。
雖然,網購下單螺絲只要 10 分鐘,但等個 2~3 天送到家後鬥志也涼了。
有時要推進就是摒住一口氣,垃圾時間該花的還是得花。
拿到前天下單的 SD 卡, 裝了 Raspberry Pi OS , 有 GUI 方便測試。
另外,花了時間測試替代驅動板 L9110 。
中間有接錯線,只看到步進馬達有顫抖,沒轉動。
後來修正接線後就動了,但拉電流時會發燙,可能有元件已毀損。
### 2023-03-14
費了九牛二虎之力,終於把螺桿過長礙眼的部分給鋸了。

睡前一直上網搜尋茶葉濾網,但一直沒看到非常合適的。
不是太大就是太小,多半也不適合吊掛用。
### 2023-03-13
幫頂盤加上預留溝槽

### 2023-03-11
幫底盤加上可提住的掛勾,然後重印一個。

晚上下單買零件

### 2023-03-08
花了一兩天的時間,印了小一點的底盤跟上蓋
能塞進透明管內了

下方是跟舊尺寸的對比(一個不會想帶出門的尺寸)

### 2023-03-07
邊整理資料邊試組裝測試,不知不覺就前進了一小步。
[AutoTeaMaker prototyping 2023-03-07 - YouTube](https://www.youtube.com/watch?v=vFakK0eN9e8)
### 2023-03-02
帶了零件及其最新狀態至 H4 做簡單單的介紹
### 2023-02-23
聚會時聊到這個專案
思考了一下之前拖延的原因有那些
- 其中的 RPi 3B+ 被自己借調去支援 3D 列印的用途
- 取得透明外管的時機拖太久
- 尺寸問題
- 價格問題(因爲比想像中貴多了,一時下不了決心)
- 有其他的事情搶佔自己的關注(工作、聚會、...)
### 2022-12-13
收到新透明管了。
### 2022-12-08
看到新透明管的報價了。
### 2021-03-27
拿到訂製的透明管了,但實物尺寸比想像中大。
動力好像被打了好幾折。
(非店家的錯,完全是自己的設計失誤)
### 2021-03-18
Mat 成功驅動 I2C 的非接觸式溫度計

參考文件有:
- https://www.youtube.com/watch?v=4V0_PBwg4c0
- https://pypi.org/project/PyMLX90614/
wycc 現場直接畫出概念設計草圖 v1

### 2021-03-14
週五得知溫度感測器出貨比預期還要久,可能要 1~2 週後才拿到貨
立馬就找其他 source
後來發現**樂意創客**有現貨,立馬就下訂:
- https://www.ruten.com.tw/item/show?22030961833298
週六晚上睡前就收到貨了,讚。

註: 此次是第二次在**樂意創客**買東西,值得信任的好賣家
### 2021-03-13
Thinker 在聊天室提到個有趣的東西 [Low Temperature Stirling Engine](https://www.youtube.com/watch?v=xQi6Gh5DOC8)。
另外,也提到了關於阻尼應用的 idea ,可能會用到的元件:
- <https://www.ruten.com.tw/item/show?21751471642954>
- <https://www.ruten.com.tw/item/show?21507484058936>
### 2021-03-11
建立專案的 hackmd 專頁,並上 H4 Facebook group 分享專案訊息,收到一些 feedback:
- teamosa 智能泡茶機 (shared by Kd Tsai)
- 有人詢問如何報名
### 2021-03-07
hychen 分享了一個有趣的訊息,泡茶也有 ISO 標準:
- <https://zh.wikipedia.org/zh-tw/ISO_3103>
另外也發現 gslin 在他的 blog 上提到這件趣事:
- https://blog.gslin.org/archives/2021/03/07/10050/%E6%B3%A1%E8%8C%B6%E6%96%B9%E5%BC%8F%E7%9A%84-iso-%E6%A8%99%E6%BA%96%EF%BC%9Aiso-3103/
### 2021-02-25
參加 H4 固定聚會,嘗試把觸控螢幕、馬達、及 USB power bank 串接起來作概念測試。
不過臨時少了幾個線材,RJ 提議去對街的摩茲工寮借工具來用。
加上發現當晚的 odoo 活動主講人是 marr ,剛好是 wycc 認識的老朋友,於是就整群人過去串門子了。
當晚邊聊邊弄,在結束離開前 Mat 依下述文件的指引,成功驅動了步進馬達
- https://www.electronicshub.org/raspberry-pi-stepper-motor-control/

### 2021-02-24
觸控螢幕到貨。(註: 於 2021-01-14 下單)

### 2021-01-08
湊足第一波基礎硬體元件

### 2020-12-21
下單購買 5V 步進馬達 (一般較常見的是 12V)
- https://shop.cpu.com.tw/product/61340/info/
### 2020-12-16
下一步是於**創客市集**下單購買硬體元件。

### 2020-12-08
靈感源起的最早時間已不可考。最早的行動是始於購買光軸開始。
