發表文章

奶克菲爾 milk kefir

克菲爾的來源有兩種,一種是從別人手中取得菌種,一種是買乾燥菌粉。 兩者最大的差異是菌種可以不斷複製產生新的奶克菲爾製品,乾燥菌粉只能一次性製作。 (1) 取得菌種法: 外型像是白色花椰菜,觸感像是凝膠的多醣體,是酵母菌(真菌)與各種益菌的共生體。 (2) 乾燥菌粉: 各家生化公司自己的菌株配方,菌的種類相對比較單純。 多醣體表面變成粉紅色,橘色,紅色,綠色,或是黑色,就是已經被汙染了。 表面如果呈現黃色或淡黃色,是正常現象。 參考資料 https://www.culturesforhealth.com/learn/milk-kefir/how-to-find-milk-kefir-grains/ https://www.culturesforhealth.com/learn/milk-kefir/milk-kefir-grains-troubleshooting-faq-advice/

照片的後製觀點

圖片
有很多人不支持相片的後製,或者是在討論照片顏色的過程中,常常聽到我比較喜歡N家的發色(或是C家/P家/O家...等)。 首先討論顏色,CMOS或是CCD的感光元件的確因為製程的不同在相同的拍照條件設定下會有不同的顏色呈現差異,但是顏色說穿了就是RGB這三原色在一個點上所呈現的比例。不同的感光元件產生的差異性,理想狀況下,如果RAW檔記錄下資訊足夠,是可以將各家的顏色後製到一致的。 再來就是討論支不支持後製。事實上相機拍到的圖片直出JPEG就已經經過後製了,只不過後製者是相機本身,真正沒經過後製的是RAW檔案(客觀的直出檔),不過相機針對RAW處理程JPEG其實也是做小幅度的修改(例如頂多銳利化與降雜訊),所以多數人針對JPEG檔案就是直出檔其實也沒有錯得很離譜。不過這一群人不支持後製最主要有兩個原因,其中一個原因就是沒有這個時間後製,這個我也覺得後製很花時間。不過另外一個原因就是"後製不真實",我就比較不同意了。 下面三張圖是在阿塱壹古道靠近旭海端拍的,第一張就是所謂的直出檔,沒經過任何的處理。這一張圖下半部幾乎是暗到看不到了,我相信一個稍微有生活經驗的人可以理解這樣的畫面,是視覺不曾體驗過的。 第二張圖是我經過回想,認為當時的畫面比較符合的情況調出來的圖。 第三張圖就是為了讓畫面更華麗所調出來的,如果這一張圖放在網路上相信很多人都會被吸引住,然而這已經太超過了。 我會分享給朋友的圖都會是第二張。然而多數的人會最喜歡第三張圖(要是我我也會最喜歡第三張),耐人尋味。

PSoC1 中斷控制

圖片
PSoC比較常用的中斷為GPIO中斷。GPIO中斷大多數的情況是需要接收使用者按下按鍵所觸發的中斷。另外一種中斷是各個使用者模組中(User Module, UM)提供的中斷功能。可能我的作品數量還不夠多,經驗還不是很足夠,UM提供的中斷功能目前還不是很常用到。以下就以這兩種中斷功能做介紹: [前置作業] 先到PSoC Designer的Project\Setting...\Chip Editor\ 勾選"Enable interrupt generation control"。這個預設已經打開了。 再來就是在main.c裡面,要加上 M8C_EnableGInt; 開啟這個程式的中斷功能。 不過要注意的是, 宣告變數需要在執行"M8C_EnableGInt;"之前先做好 ,不然會在編譯的時候出錯。 [中斷方法一:GPIO中斷] 程式碼加上這一行啟用GPIO中斷: M8C_EnableIntMask(INT_MSK0, INT_MSK0_GPIO); 將想要做為按鍵的GPIO腳位啟動中斷功能(預設是DisableInt),可以選用訊號的下緣觸發(Falling Edge)、上緣觸發(Rising Edge),或是電壓準位只要有變動就觸發(ChangeFromRead) 不過通常按鍵的做法都是平常的時候GPIO以電阻上拉,按鍵按下為GPIO接地。所以這個時候可以選擇驅動方式為Pull UP(同時省掉一顆上拉電阻)並且中斷方式為Falling Edge [中斷方法二:使用者模組提供中斷] 例如PWM的需要在每個周期結束的時候接發送中斷,這時候需要在使用者模組(User Module, UM)中,將InterruptAPI啟用中斷功能(預設是disable) [接收中斷後續動作] 中斷接收後,系統將要有進一步處理中斷的動作。只要中斷一觸發,main()中執行的動作將被中斷並且跳到對應中斷該有的動作,這個動作稱之為interrupt service routine(ISR),在PSoC也可以用C function來實現。 要寫ISR的C function需要將以上兩種中斷方法擇一開啟後,PSoC designer才會產生相對應的.asm檔案進行接下來的步驟。

Bitwise TRUE and FLASE

今天發現的錯誤,底子太弱了。找到問題之後接下來就順多了。 這個敘述句不能正常執行我想要的動作 if (( PRT0DR & 0x40 ) != 0) 但是換成下面這一行就可以了 if (( PRT0DR & 0x40 ) == 1) 當時一直把0與1當作是布林代數,後來才想到既然操作元是bitwise的操作,自然後面也要跟著是bitwise的形式而不能是布林代數。(PSoC的&是bitwise AND, &&才是logic AND) 所以if (( PRT0DR & 0x40 ) == 1 ) 要改成 if (( PRT0DR & 0x40 ) == 0x40 ) 才會得到預期的動作。

IIC2USB bridge讀i2c裝置

圖片
最近長官因為客戶不斷問hall sensor的問題,希望我弄一個報告可以在未來客戶問起時,直接把報告寄給客戶減少信件的往來浪費時間。這種問題的簡單答案就是請hall sensor廠商提供application note出來即可,但是客戶實在是求學心切,將應用市場當學院,導致我也不得不花一些時間在hall sensor上。但是現在有個問題就是客戶還沒定下機構尺寸造成磁鐵大小不清楚的前提下我沒辦法做報告,敝公司也沒有什麼量磁力的儀器,導致我也很無奈,陷入一種雞生蛋,蛋生雞的泥沼。 後來想到我手上有磁力感測IC(magnet sensor)又稱為eCompass(電子羅盤),他是i2c介面,主要是拿來量地磁用的,雖然最大可以量到的高斯值只有8.1,但是針對磁鐵大小與磁力的簡單評估堪用了。再來就是本來打算接到我上次弄的cy8c27443+LCD模組去看高斯值的,但是由於手上還有個i2c to USB bridge,所已決定用這個bridge讀值。回想起來,我跟Cypress還挺有緣的,從一開始接觸的8pin的chip開始,中間Cypress也有來到我們公司介紹我也拿到一些sample可以拿來練習,還有就是某天在實驗室撿到一個看起來怪怪的東西: 上網查是Cypess出的I2C to USB bridge。然而這個bridge可能中間有其他廠商經手,所以裡面的firmware已經被改掉(bridge control panel讀不到這一條bridge),不過還好Cypress很佛心有提供原本的frimware,所以還是可以藉由miniprog再重新裝回原本的firmware,因此後來開啟bridge control panel可以正常讀到這一條bridge了。 藉由這個i2c to USB bridge可以將eCompass讀到的磁力值show在電腦螢幕上,這樣我就可以用比較有彈性的方式做報告了。

1602 LCD for PSoC

圖片
玩了一陣子的Cypress PSoC1 cy8c21123之後,雖然覺得8pin的IC竟然可以塞那麼多模組很驚豔,但是終究8pin的IC可用的IO才6pin,並且flash size才4KB,用了幾個內建函式庫會發生塞不下的窘況(例如要做i2c to UART功能需要將i2c device讀到的浮點數轉成字元印在電腦的終端機上,只是加個ftoa功能就把flash塞了一大半)。所以後來弄了幾顆cy8c27443來試試看,畢竟28pin可以利用的資源與彈性都比較大。首先就從內建的LCD user module用起,畢竟人家都寫好了protocol,只需要呼叫很方便... 雖然理想情境是這樣,但事實上發現點不亮,一度是以為我買的1602 LCD跟PSoC內建user module函式多少有出入,所以搞到最後自己去寫protocol。然而,寫完protocol後仍然不亮,用邏輯分析儀分析的結果也是感覺良好,到最後才發現是LCD的Vo訊號應該要下拉一個小電阻或是接地才會有畫面,因為Vo分壓後電壓越低液晶畫面越明顯(所以很多demo board會將Vo腳位直接拉地),真的是有點粗心。 結論是,其實PSoC內建的LCD模組雖然說支援Hitachi HD44780 ,但是其實類似這種LCD的protocol都是一樣的,所以都可以支援,包含 pvc160203 與 STC2E16DRG 。 試完這個後,接下來很多訊號的輸出基本上就可以不用用電腦讀UART了,直接顯示在LCD螢幕上即可。

縮時攝影 西巒山&郡大山

圖片
其實我覺得我的Olympus XZ-1已經發揮到了他的極致(畢竟應該很少人會把一台DC拿來玩縮時攝影),因為已經開始再挑剔他的畫質了。常常有人說我怎麼不買一台單眼... 雖然曾經有過這個念頭,但是一想到平常鮮少有機會把一台厚重的相機拿出來用,覺得很不切實際就作罷了。不過背後其實還有個主要的原因就是這個世界上沒多少人可以將隨身DC發揮成這樣,還蠻有成就感的,不排除哪天要將他除役時,把它拆了裝在其他的裝置上,繼續以其他的形式貢獻他的良能。