2017年6月13日 星期二

GPS以uart與樹莓派Raspberry Pi 3連接使用紀錄

使用材料:
  1. 樹莓派Raspberry Pi 3 (以下簡稱為RasPi3)
  2. GPS Receiver - LS20031 5Hz (66 Channel),
    https://www.sparkfun.com/products/8975 
    1. 預先焊接針腳, 使用4條雙母杜邦線與樹莓派連接
      可參閱SparkFun網頁上的Connection Tutorial
    2. 留意GPS模組使用電壓3.3V
    3. GPS模組的TX連接到RasPi3的GPIO Pin10(RXD)、
      RX連接到RasPi3的GPIO Pin8(TXD)。
      詳細的RasPi3 GPIO針腳定義請參閱: https://pinout.xyz/#

樹莓派的作業系統, 我是以AiGO 2017 v1為架構, 再新增軟體套件
$ sudo apt-get update && sudo apt-get upgrade -y
$ sudo apt-get install build-essential gpsd gpsd-clients python-gps joe
$ sudo reboot



其中joe是我個人在linux系統下慣用的文字編輯器, 作業系統內建有nano 或 vi可以使用。

針對GPS使用RasPi3的UART連線, 作業系統要新增設定/boot/config.txt,
$ sudo joe /boot/config.txt
在文件的最後一行加入
enable_uart=1
存檔後, 重新開機
$ sudo reboot 

在RaspPi3的系統中, 是以/dev/ttyAMA0與 UART0連線的, 所以啟動gpsd時, 要指向這個裝置

$ sudo gpsd /dev/ttyAMA0 -n -F /var/run/gpsd.sock
$ cgps  -s


參考網頁都是像上面寫的指令一樣, 但是我一直無法在cgps中看到gps傳資料進來, 因此我執行cgps時, 不加-s參數, 可以監視GPS模組的訊息是否傳入。
後來發來gpsd有一支程式gpscat, 也可以直接讀取gps模組傳入的訊息, 使用方式如下:
$ gpscat -s 57600 /dev/ttyAMA0
其中 -s 57600是傳輸速率(baud rate), 我試過57600 bps是這款gps模組的上限。

令我疑惑的是, 若我沒有執行 "gpscat -s 57600 /dev/ttyAMA0" 則 cgps 無法正常讀取GPS模組的訊息, 因此我推論是沒有設定 /dev/ttyAMA0 的傳輸速率所致。
最後在gpsd的faq網頁中, 查到可以使用 "stty speed 57600 < /dev/ttyAMA0" 來設定傳輸速率。其餘的執行程序如下:
sudo systemctl stop gpsd.socket
sudo systemctl disable gpsd.socket
sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service
sudo killall gpsd
stty speed 57600 < /dev/ttyAMA0

sudo gpsd -n /dev/ttyAMA0 -F /var/run/gpsd.sock
cgps

終於可以從 cgps 讀到GPS模組的定位資訊。
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqklqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x    Time:       2017-06-12T15:52:14.000Z   xxPRN:   Elev:  Azim:  SNR:  Used: x
x    Latitude:    24.XXXXXX N               xx 193    66    048    26      Y   x
x    Longitude:  120.XXXXXX E               xx  15    63    277    00      N   x
x    Altitude:   167.7 ft                   xx  13    62    019    33      Y   x
x    Speed:      0.5 mph                    xx 129    54    138    26      N   x
x    Heading:    192.6 deg (true)           xx  20    50    343    23      N   x
x    Climb:      0.0 ft/min                 xx   5    40    056    39      Y   x
x    Status:     3D FIX (266 secs)          xx   2    39    141    24      Y   x
x    Longitude Err:   +/- 46 ft             xx  29    36    254    19      Y   x
x    Latitude Err:    +/- 67 ft             xx  24    27    182    00      N   x
x    Altitude Err:    +/- 73 ft             xx  21    17    320    15      N   x
x    Course Err:      n/a                   xx  30    10    044    00      N   x
x    Speed Err:       +/- 92 mph            xx  18    03    290    00      N   x
x    Time offset:     -872.718              xx                                 x
x    Grid Square:     PL04gc                xx                                 x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj



參考資料
  1. https://medium.com/@phutidus/%E7%94%A8-raspberry-pi-gps-%E6%A8%A1%E7%B5%84%E5%BB%BA%E7%AB%8B-stratum-1-%E7%9A%84-ntp-server-cb1b501a5f91 
  2. http://www.catb.org/gpsd/faq.html
  3. http://spellfoundry.com/2016/05/29/configuring-gpio-serial-port-raspbian-jessie-including-pi-3
  4. https://learn.adafruit.com/adafruit-ultimate-gps-on-the-raspberry-pi/using-uart-instead-of-usb 

2015年11月13日 星期五

幫Time Capsule (Apple)更換新硬碟

幫Time Capsule (Apple)更換新硬碟

上一回幫自己的Time Capsule更換新硬碟, 好像沒留下任何記錄, 昨天第2次更換Time Capsule的硬碟, 把過程紀下來。以下步驟只是個人的過程紀錄, 僅供網友們參考, 實際更換步驟, 請自行斟酌, 恕不負任何責任。

  1. 先將Time Capsule的設定備份到電腦端, 以免更換後設定被清除掉...
  2. 關閉所有電腦端的Time Machine的還原機制。
  3. 關閉Time Capsule電源, 其實就只是移除電源線和網路線。
  4. 拆開Time Capsule, 取出舊硬碟, 更換新硬碟。(請自行參閱:Apple Time Capsule Model A1302 Hard Drive Replacement- https://www.ifixit.com/Guide/Apple+Time+Capsule+Model+A1302+Hard+Drive+Replacement/2750)
  5. Time Capsule重新開機, 由AirPort工具程式進入Time Capsule系統, 將新硬碟清除(重新格式化), 設定好磁碟名稱和檔案共享。
  6. Time Capsule會將硬碟分割成3個磁區: APconfig、APswap(前2個為系統內部用的, 不用理會)和資料分割區(名稱是在Time Capsule磁碟中設定的)。我們只需要將資料分割區, 由舊硬碟複製到新硬碟。
  7. 將舊硬碟複製到新硬碟中, 有兩種方法:
    1. 將舊硬碟以外接盒與電腦連接, 透過網路(會很慢), 將檔案複製到Time Capsule的新硬碟中。我這次是因為手上沒有可以讀取4TB硬碟的外接盒或外接線, 因此用這個方法, 將近2TB的資料透過Giga bits網路傳輸花了1天多的時間複製資料。
    2. 我想還有另外一個更快的方法: 關閉Time Capsule電源, 取出新硬碟, 將這兩顆硬碟分別接上外接盒。舊硬碟有3個分割區, 我們只需要將資料分割區的所有檔案, 由舊硬碟複製到新硬碟。
    3. 但上述的2個方法, 無論是那一種, 若硬碟中有Time Machine的電腦備份檔案, 則須留意複製的方法, 請參閱:ime Machine:如何將備份檔從目前的備份磁碟傳送到新的備份磁碟- https://support.apple.com/zh-tw/HT202380

2015年8月23日 星期日

Openoffice.org Writer 如何整批壓縮文件內的圖檔解析度

身為Openoffice.org Writer愛用者,一直以來被這個問題困擾:文件要插入大量的圖片時,總是要先縮小解析度,再來插入文件內。萬一忘記了,就麻煩了。
 今天請出google大神,找到另外一篇介紹如何將Impress簡報圖片壓縮的文章,步驟為:

  1. 開啟 Impress/工具/擴充軟體管理程式
  2. 以線上方式取得更多擴充軟體,開啟網頁找Oracle Presentation Minimizer,下載。
  3. 在擴充軟體管理程式中,增加/將下載的.oxt檔案新增/為所有使用者/溜覽全部合約/接受。
  4. 重啟 Impress 。會在工具中出現/最小化工具。
  5. 但是這是給Impress用的,那Writer呢?
方法有了,再來就是找合用的擴充軟體,來壓縮Writer文件中的圖片囉~
  1. http://extensions.services.openoffice.org/en/search網站中,找到PixCompress,下載[Download extension]。
  2. 在Openoffice.org Writer/工具/擴充軟體管理程式
  3. 在擴充軟體管理程式中,增加/將下載的.pixcompress.1.x.x.oxt檔案新增/為所有使用者/溜覽全部合約/接受。
  4. 重啟 Writer 。會在工具中出現/Minimize pictures。
  5. 執行 工具/Minimize pictures,出現PixCompress對話框/按一下[All pictures],將所有圖片最小化。
  6. 存檔前請三思,一旦存檔後,所有圖片就無法恢復原來的尺寸。
  7. 若是反悔的話,要按很多次的Ctrl+Z,回復到圖片縮小前的狀態;或者直接關閉檔案不要存檔。

2015年8月22日 星期六

Windty 數值模擬預報

沒想到資料開放,網頁技術神速的進步,現在也有數值天氣預報的網站可以使用。
https://www.windyty.com
而且還很大放的給你使用鑲嵌網頁的功能:https://embed.windyty.com/embedmake.html



可以鑲嵌在網頁中,呈現某區某固定時間的預報資料,例如2015/08/25 00:00台灣附近海拔1500公尺:

2015年7月5日 星期日

百元望遠鏡

百元望遠鏡

游大立 2015/07/5;2015/11/05更新


『百元望遠鏡』的目的在於用便宜的成本製作科學教具。拙作的摺紙光譜儀,就是其中一個作品。
本次發表『百元望遠鏡』做法,在去年第一之試做和幾次課程實施經驗中,可以在每支望遠鏡花費1百多元最多不超過1千元的前提下,完成製作折射式望遠鏡。當然我相信這決對不是最便宜的做法,也不是最佳光學品質的做法,但我想將這個階段的做法公開,希望能有拋磚引玉的效果。
當然鏡筒的材質不一定要用水管,使用硬紙筒也是一種方法,用厚紙板捲起來也是一種方法。台北市立天文館的張桂蘭小姐也提供類似的經驗,使用塑膠製的放大鏡組合而成,真的可以做出成本不到新台幣100元的望遠鏡。
我接下來要介紹的以水管來製作百元望遠鏡,除非使用回收水管,才可能將製作成本控制在新台幣100多元。若是整班教學製作(4050人),每人的材料費大約在200400元之間。當然玻璃鏡片用好一點的,成本會再往上加。仍能將成本控制在少於新台幣1000元,還是可以號稱『百元望遠鏡』。

望遠鏡本體材料:
材料名稱及規格
數量
用途
備註
10公分(4")口徑 2.5倍的放大鏡
一支
物鏡,焦距約30公分

4公分(1.5")口徑3倍的放大鏡
一支
目鏡,焦距約10公分

異徑接頭3"x1.5"
1
連接目鏡筒的水管零件

1.5"水管,裁切5公分長
(E41
,外徑48mm、內徑41mm)
1
目鏡筒

1.25"水管,裁切1公分長
(B35
,外徑42mm、內徑35mm)
2
目鏡固定環

異徑接頭3.5"x3"
1
物鏡筒,物鏡的水管零件

3.5"水管,裁切1公分長
(A90
,外徑100mm、內徑41mm)
2
物鏡固定環

3"水管(A80)
1
鏡筒
裁切29~31公分長(南亞異徑接頭)。
裁切24.5公分長(CJS異徑接頭)


請留意水電材料行的每一管徑的水管,都是以4公尺為單位來賣。每段的其中一端會有大約10公分是口徑擴大不能使用在課程的部份。另外以砂輪機切割水管,每切割一次會損耗3~4mm。請備料時要特別考慮到。

組裝工具:
  1. 水管強力膠些許(黏著水管零件用),棉花棒一支(塗抹強力膠用)

工具:
  1. 裁管器(切割小口徑水管)
  2. 砂輪機(切割大口徑水管)
  3. 300號砂紙

組裝步驟:
  1. 2段目鏡固定環剪開,剪掉1mm~2mm寬度,使能壓縮塞入目鏡筒內。
    剪掉的兩端切口要能互相咬合。要先確認能輕地鬆將目鏡固定環塞入目鏡筒。
  2. 目鏡筒若以裁管器切開,則兩端會略為膨脹,先用300號砂紙將兩端磨平。研磨訣竅在於手握砂紙,水管前端以大約45度角接觸砂紙,緩慢旋水管研磨,則能將水管兩端均勻磨平。
  3. 先將其中1段目鏡固定環塞入目鏡筒1mm~2mm深度,以棉花棒塗抹水管強力膠在固定環外側,將目鏡筒往桌面輕輕垂直平壓,使固定環均勻塞入目鏡筒,並且能與目鏡筒貼平。桌面記得先墊一張回收紙,以免強力膠沾黏在桌面。
  4. 放入4公分放大鏡於目鏡筒內,再以棉花棒塗抹水管強力膠於鏡面上方1公分範圍,將第2段目鏡固定環塞入目鏡筒,朝向另1段固定環方向壓緊固定,使能將鏡片固定
    以上完成目鏡的組裝。
  5. 物鏡固定環先試試能否輕鬆放入異徑接頭3.5"x3" (物鏡筒)的3.5"端。若您使用的是南亞的異徑接頭,一定要將固定環剪開。我使用的是其他廠的固定環剪開,可以輕鬆將物鏡固定環放入,因此不用剪開。若須要剪開,請執行下個步驟。若不用剪開,請跳過下個步驟。
  6. 2段物鏡固定環剪開,剪掉1mm~2mm寬度,使能壓縮塞入物鏡筒內。
    剪掉的兩端切口要能互相咬合。要先確認能輕地鬆將物鏡固定環塞入物鏡筒。
  7. 先將其中1段物鏡固定環塞入物鏡筒3cm~4cm深度,以棉花棒塗抹水管強力膠在物鏡筒內側,使固定環均勻塞入物鏡筒,並且能與物鏡筒外沿等距貼平。可以預先用鉛筆描繪貼齊的位置線,若趁強力膠還沒固化前,以直尺沿著物鏡筒內緣繞一圈量測固定環的黏著位置,確認與外沿等距。這個步驟是讓物鏡的鏡片能垂直於鏡筒。
  8. 放入10公分放大鏡於物鏡筒內,再以棉花棒塗抹水管強力膠於鏡面上方1公分範圍,將第2段物鏡固定環塞入物鏡筒,朝向另1段固定環方向壓緊固定,使能將鏡片固定。以上完成物鏡的組裝。
  9. 將目鏡筒塞入異徑接頭3"x1.5",再塞入裁切好的28.5公分長3"水管(鏡筒)。鏡筒另一端再與物鏡筒接好,就完成百元望遠鏡的組裝工作。
  10. 透過望遠鏡,若只能看清楚近的景物時,遠方景物模糊時,代表物鏡與目鏡的距離過長,可以試著將水管壓緊,縮短間距。如果問題仍然沒有解決,則將鏡筒以砂輪機再切掉1公分。
結構圖:
這個結構圖是我最近使用的CJS異徑接頭所推算的長度數據。鏡筒所須要的長度為24.5公分。若您使用南亞的異徑接頭,則鏡筒長度為29~31公分。

鏡筒長度L的測量方法:
  1. 先測量A80水管分別與異徑接頭的重疊長度SoSe
  2. 測量物鏡鏡片中心到異徑接頭的3"開口的長度Do
  3. 測量目鏡鏡片中心到異徑接頭的3"開口的長度De
  4. 計算公式:
    物鏡焦距+目鏡焦距=Do+(LSoSe)+De以我們這次使用的鏡片組來說,物鏡焦距=300mm、目鏡焦距=100mmSo40mmSe15mmDo85mmDe125mm
    300
    10085+(L40125)+15, 代入方程式求得L245mm