pretty code
2021年7月6日 星期二
KoboPageTurner v0.4.0 改版記錄
2021年6月30日 星期三
Kobo Elipsa 入手初體驗
2020年10月3日 星期六
Kobo 翻頁器 DIY 最終回
將 ESP8266 (ESP-12S) 裝進 3 x AAA 電池盒中,只使用 2 x AAA 共 3V 當做輸入,原本預計要加一顆 DC-DC 0.8V ~ 3.3V to 3.3V Converter,但因賣家送錯,故直接使用 3V 的電壓驅動 ESP8266 (ESP-12S),希望可以撐到 2.7V 的最低工作電壓為止。
原則上還是要讓 ESP8266 (ESP-12S) 工作在 3.3V 才對!我這是沒辦法中的辦法,在沒有任何外加電路下,工作電壓應該也不穩定,如果還能拿到 DC Converter 再說吧。
2020年9月26日 星期六
有時候放棄也是一種選擇
又是個不用補班日的週六,加上家裡的事終於告一段落,準備開開心心的來實作翻頁器成品。
早上先把 TX、RX、VCC、GND、GPIO0,焊到 ESP-12S 上,雖然焊的很醜,但也能順利燒錄程式,改了一下 Code 讓它連續翻頁好測試線路是否正常,實測半個小時,看起來沒有什麼問題。於是快中午時就殺去特力屋買齊我需要的東西,在等待 DC Converter 來的同時,準備下午先把能做的事做好。
好不容易自製焊台做好了,放置 ESP-12S 的洞挖了,兩個按鈕也鑽好洞放進電池盒內,這時悲劇發生了,原本配給向左翻頁的 GPIO14 在我喬線的時候,整個 PAD 被我扯掉,已經無法再把線焊上去,雖然還有其他 GPIO 可用,但我程式就需要改寫並重新燒錄,只好再比照早上把該焊的線焊一焊,不過這一次就沒有這麼順利了,沒有一根線可以順利焊上,偏偏屋漏又逢連夜雨,連 GPIO0 也被我扯掉,看看新買的 GOOT 烙鐵頭,似乎整個都氧化的很嚴重,連錫都無法順利吃上去。為了怕把我的 ESP-12S 整個報銷,果斷地放棄繼續下去。
到底是發生什麼事我也搞不清楚,究竟是我的大賣場錫條太差,還是我的使用方式不對才導致失敗?
想想軟體工程師還真是幸福,只要一台電腦就可以做事!不像硬體工程師,有準備不完的機斯。想不到我的 Kobo 翻頁器成品,竟然就這樣胎死腹中!
為了完成這個東西,目前為止花的錢大概又可以買一台五千元左右的翻頁器,這就是人生呀!
拍張照片為這個偽完成品留下記錄。
2020年9月23日 星期三
買新不買舊的最好範例 ESP-12S
一直提不起勁去研究 3D 列印,尤其在得知列印時產生出來的微粒對身體不好後就更是興趣缺缺,雖然網路上有幫忙 3D 列印的店家,收費也不貴,但就是少了一股衝勁。
偶然看到網路上有人實做 Kindle 翻頁器,其設計原理跟我一模一樣,巧的是他也是使用 ESP8266 來實現,又可以將相關元件放入一個 3 x AAA 的電池盒中,於是便想依樣畫葫蘆的做出我的版本。
由於是 5 年前的文章,對方使用的是 ESP-03,目前網路上已經找不太到。故我就直接選了一個比較新的型號 ESP-12S。
雖然知道 Boot Mode 的差別,但我一直以為安信可公司的模組已經處理完畢,預設就是正常開機模式,後來才發現,如果我是購買舊一點的版本,例如 ESP-12F,很多腳位都要自己處理上拉或下拉,對高手來說這些不是問題,但對焊接低手的我來說,能少焊幾根線就是舒服。
原來買新不買舊的意義就在這裡!只要商家的產品真的是越出越好就好。
2020年9月19日 星期六
Kobo 翻頁器 DIY 開發順序顛倒了
雖然這個專案已經告一段落,如果不做 3D 列印的話,其實也算是結束了!
但跟我當初預設的開發順序一點都不一樣?
為了回歸初心,還是花了一千塊錢,把當初想買的機斯備齊,也算是為這段時間留個記錄。
看似簡單的線路,如果沒有將 ESP8266 整個插進麵包板,完全沒有辦法工作,如果手邊有個三用電表,就能快速的排除問題。
其實任何學問都是相通的,雖然我還是個硬體菜鳥,但與程式解 Bug 的思路完全沒有兩樣,能夠細心思考問題並排除問題,這應該也算是工程師的浪漫一天吧。
2020年8月27日 星期四
WeMos D1 ESP Wroom 02 開發板 ESP8266+18650 電池座 初次使用記錄
為了 Kobo 硬體翻頁器的設計,最後選擇了這一塊開發版,這個開發版的好處是包含了 18650 電池座,也有供電及燒錄模組,我只要自己焊幾根線,3D 列印設計外殼,剩下的就是純軟體的工作了,應該可以加快開發速度。另外,其電路設計會讓 CHIP RESET 時進入燒錄模式,故不需要按下 FLASH 按鈕,似乎開發板都有內建這個功能。原理似乎是利用 UART 傳輸時,會觸發 RESET 並讓 GPIO0 拉 Low 好讓 CHIP 進入燒錄模式。下面是取自 NodeMCU 的電路圖。
下面是板子示意圖,隨手畫畫,元件相對位置是對的,但可能水平位置不一定有對齊。
#define LED_BUILTIN 16
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
編譯及上傳訊息
Executable segment sizes:
IROM : 228640 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 26756 / 32768 - code in IRAM (ICACHE_RAM_ATTR, ISRs...)
DATA : 1248 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 688 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 24880 ) - zeroed variables (global, static) in RAM/HEAP
草稿碼使用了 257332 bytes (24%) 的程式儲存空間。上限為 1044464 bytes。
全域變數使用了 26816 bytes (32%) 的動態記憶體,剩餘 55104 bytes 給區域變數。上限為 81920 bytes 。
esptool.py v2.8
Serial port COM6
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 24:62:ab:00:00:00
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 2MB
Flash params set to 0x0230
Compressed 261488 bytes to 193147...
Wrote 261488 bytes (193147 compressed) at 0x00000000 in 4.4 seconds (effective 475.9 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
實際測試結果,這樣的一個小程式,耗電量約為 40 ~ 80 mA 左右。
2020年8月19日 星期三
Release KoboPageTurner v0.2.0
昨天拿到 Logitech R500,看了快半本的書,試用起來沒什麼問題,雖然 Clara HD 的 Wi-Fi 很不給力,但既然都寫了,也許別人也有這個需求,還是寫個中文文件為這一個月留個紀念。
安裝
01. 運行 "KoboServer/makeKoboRoot.sh" 以獲取 "KoboRoot.tgz",也可以使用發行版。
02. 將 KoboRoot.tgz 放入 Kobo 設備的 ".kobo" 文件夾。
03. 重啟設備。
反安裝
01. 修改 "/mnt/onboard/.koboserver/koboserver.cfg",設定 "uninsall=true"。
02. 開啟 Wi-Fi。
03. 除了 "/mnt/onboard/.koboserver/ " 資料夾外,其他都會被移除。
使用方式
我使用 Kobo Clara HD 測試了這個概念。
系統:4.23.15548。
01. 將您的 Kobo 設備連接到 PC。
02. 在 "/mnt/onboard/.kobo/Kobo/Kobo eReader.conf" 中添加以下設置。
[DeveloperSettings]
EnableDebugServices = true
03. 到 "設定" -> "裝置資訊" -> "Developer options" 。
04. 勾選 "ForceWifiOn" 項目。
05. 將您的藍牙設備連接到手機。
06. 在 Kobo 設備上打開 Wi-Fi,Web 服務器將在端口 80 上運行。
07. 使用 Android(HTTPClient) 發送 HTTP 請求。
08. 修改設置。
Key Code:
21 - Left Arrow
22 - Right Arrow
24 - 音量 Up
25 - 音量 Down
您可以單擊 Key Code 的輸入區域,然後按下您想設定的按鍵,它將自動加入 Key Code。
09. 單擊 "LEFT PAGGE" 或 "RIGHT PAGE" 以測試通訊。
10. 關閉 Web 服務器後,取消 "ForceWifiOn" 項目。 然後關閉 Wi-Fi。
翻頁設定
2020年7月17日 星期五
Kobo Clara HD 翻頁器 DIY
Golang Cross-Compile 方式 on Windows
SET PATH=%PATH%;C:\Go\bin
SET GOPATH=%CD%
SET GOOS=linux
SET GOARCH=arm
SET GOARM=7
原本以為觸發 Linux Mouse Event 是一件很簡單的事,
幸好之前就有想到一招,就是在組 KoboRoot.tgz 時,裡面預留一道指令,把相關程式搬到 Kobo 顯示的電腦磁碟機內,則不論我是要抽換 HTTPServer 程式,或是要測試一些指令都會很方便,之後也可以如法泡製 udev 的 Script ,目前先留一個測試 Script 方便我除錯就好。
struct input_event {
struct timeval time;
unsigned short type;
unsigned short code;
unsigned int value;
};