使用 Arduino EEPROM 來儲存變數值

特性: 一般執行 Arduino 時,如果正常供電的狀態下,一些變數會隨著電源消失也會跟著不見了,而 EEPROM 內的資料並不會隨著關機而消失。當我們要儲存用戶密碼或者一些變數值,期待下一次 Arduino 開機後又能讀取到上一次最後運作時的設定,那您就會需要將資料寫入到 EEPROM 內,不會隨著斷電後資料就遺失的問題。 (閱讀全文…)

樹莓派(raspberry)啟用root 帳號

樹莓派使用的linux是debian系統,所以樹莓派啟用root和debian是相同的。

debian裡root帳號默認沒有密碼,但賬帳號鎖定。

當需要root權限時,由默認賬戶經由sudo執行,Raspberry pi 系統中的Raspbian

默認用戶是pi 密碼為raspberry

重新開啟root帳號,可由pi用戶登錄後,在命令行下執行

sudo passwd root

執行此命令後系統會提示輸入兩遍的root密碼,輸入你想設的密碼即可,然後在執行

sudo passwd -- unlock root

這樣就可以解鎖root帳號了。

數莓派 2 安裝 Chrome 瀏覽器與 Google 注音輸入法

樹莓派系統安裝好之後還要裝上一些必須的的工具才能用啊,比如說中文輸入法和瀏覽器。

Ubuntu Mate for Raspberry Pi 2 雖然支持中文,但是是沒有中文輸入法的,於是我們需要自己安裝一個。

我安裝了Google拼音,一個命令就可以裝好fcitx和Google拼音。

sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin

重啟一下就可以使用中文輸入法了。這篇的東西就是在樹莓派上用Google 拼音敲出來的:)


系統自帶的是FireFox,用起來也還挺流暢,但是我個人習慣用Chrome,於是我安裝了Chromium瀏覽器。
Ubuntu Mate自帶的源里是沒有Chromium的,於是我們要先添加一個源,用以下命令。

sudo tee /etc/apt/sources.list.d/i386.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi 
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
deb http://mirrors.neusoft.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
deb-src http://mirrors.neusoft.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi

THIS IS THE ONLY WAY TO GET CHROMIUM ON JESSIE!
THIS WILL ONLY WORK ON A Pi2!

1. Install and configure Raspbian. There are plenty of guides on how to do this.

THIS HAS BEEN UPDATED FOR JESSIE. SORRY, BUT NO WHEEZY INSTRUCTIONS. JESSIE IS THE FUTURE.;) 
2. Download and install updated Chromium and dependencies:
For anyone who doesn't trust me, these are the same exact files gotten from here:
http://ports.ubuntu.com/pool/universe/c/chromium-browser/
If you feel more secure getting the relative files there, by all means. But those files may disappear at any time, which is why I host them on my DropBox. 
CODE: SELECT ALL
wget https://dl.dropboxusercontent.com/u/87113035/chromium-browser-l10n_45.0.2454.85-0ubuntu0.15.04.1.1181_all.deb
wget https://dl.dropboxusercontent.com/u/87113035/chromium-browser_45.0.2454.85-0ubuntu0.15.04.1.1181_armhf.deb
wget https://dl.dropboxusercontent.com/u/87113035/chromium-codecs-ffmpeg-extra_45.0.2454.85-0ubuntu0.15.04.1.1181_armhf.deb
sudo dpkg -i chromium-codecs-ffmpeg-extra_45.0.2454.85-0ubuntu0.15.04.1.1181_armhf.deb
sudo dpkg -i chromium-browser-l10n_45.0.2454.85-0ubuntu0.15.04.1.1181_all.deb chromium-browser_45.0.2454.85-0ubuntu0.15.04.1.1181_armhf.deb


You should have Chromium 45 now installed!

 

樹莓派-Raspberry,內置的防火牆ufw設置和啟用

ufw是一個主機端的iptables類防火牆配置工具,比較容易上手。如果你有一台暴露在外網的樹莓派,則可通過這個簡單的配置提升安全性。

安裝方法

sudo apt-get install ufw

當然,這是有圖形界面的(比較簡陋),在新立得里搜索gufw試試……   使用方法

啟用

sudo ufw enable
sudo ufw default deny

作用:開啟了防火牆並隨系統啟動同時關閉所有外部對本機的訪問(本機訪問外部正常)。
關閉

sudo ufw disable

查看防火牆狀態

sudo ufw status

開啟/禁用相應端口或服務舉例

sudo ufw allow 80 允許外部訪問80端口sudo ufw delete allow 80 禁止外部訪問80 端口sudo ufw allow from 192.168.1.1 允許此IP訪問所有的本機端口sudo ufw deny smtp 禁止外部訪問smtp服務sudo ufw delete allow smtp 刪除上面建立的某條規則ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 要拒絕所有的流量從TCP的10.0.0.0/8 到端口22的地址192.168.0.1

可以允許所有RFC1918網絡(局域網/無線局域網的)訪問這個主機(/8,/16,/12是一種網絡分級):

sudo ufw allow from 10.0.0.0/8sudo ufw allow from 172.16.0.0/12sudo ufw allow from 192.168.0.0/16

推薦設置

sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny

這樣設置已經很安全,如果有特殊需要,可以使用sudo ufw allow開啟相應服務。

LinkIt Smart 7688 Duo安裝與韌體升級指引

LinkIt Smart 7688 Duo安裝與韌體升級指引 作者:George Yeo

非常感謝有這機會透過MakerPRO搶先試用到 MediaTek的LinkIt Smart 7688 Duo。其實從它的介紹上,我就感覺它是個功能強大的開發板,可以幫我處理較複雜的運算。我是使用 Microsoft Windows 7—64 位元電腦進行測試的,以下分享安裝建置上的一些心得。

LinkIt Smart 7688 Duo和 LinkIt ONE 不同,開始前必須做好前置作業,做這些工作時,電腦必須連到 internet:

  • 安裝 LinkIt Smart 7688 COM port 驅動程式
  • 安裝 VCP ( Visual COM port) 驅動程式
  • 升級 Arduino IDE 到 1.6.4 或更新的版本
  • 更新韌體
  • 更新 boot loader (非必要)

安裝 LinkIt Smart 7688 COM port 驅動程式

把 LinkIt Smart 7688 和電腦以 USB線連接,電腦會顯示找到新硬體並自動幫它安裝驅動程式,不過,過一陣子後,電腦並未裝好驅動程式,打開裝置管理員,畫面如下所示:

Figure 1. 裝置管理員顯示未裝好驅動程式

Figure 1. 裝置管理員顯示未裝好驅動程式

http://download.labs.mediatek.com/mediatek_linkit_smart_7688_duo-windows-com-port-driver.zip 下載驅動程式,解壓縮後,得一 linkit_smart_7688.inf 檔,對著這個檔案按滑鼠右鍵選『安裝』出現這個畫面,按『仍然安裝此驅動程式軟體』。

Figure 2 Windows 安全性

Figure 2. Windows 安全性

它會下載並安裝好驅動程式,裝好後的畫面如下所示:

Figure 3 裝置管理員顯示已裝好驅動程式

Figure 3. 裝置管理員顯示已裝好驅動程式

安裝 VCP ( Virtual COM port ) 驅動程式,到 http://www.ftdichip.com/Drivers/VCP.htm 下載 VCP 驅動程式

Figure 4.下載 VCP 驅動程式-1

Figure 4.下載 VCP 驅動程式-1

Figure 5. 下載 VCP 驅動程式-2

Figure 5. 下載 VCP 驅動程式-2

下載後,解壓縮,得一目錄 CDM v2.12.06 WHQL Certified,點進去,以系統管理員身分執行 dpinst-x86.exe (請注意: 「不」是 amd64 那個)

Figure 6. 安裝 VCP 驅動程式

Figure 6. 安裝 VCP 驅動程式

Arduino IDE

要使用 Board Manager 的 third party board integration,我以為我之前裝的 Arduino IDE 1.5.8 可以用,結果它的 Preferences 沒地方可輸入 Boards Maneger URL,只好移除 1.5.8 改裝目前最新的 1.6.5 r5。

裝好後,打開偏好設定 (Preferences) 的畫面,在 Additional Boards Manager URLs 輸入這個網址後按『好』
http://download.labs.mediatek.com/package_mtk_linkit_smart_7688_test_index.json

Figure 7.Arduino-IDE-1

Figure 7. Arduino-IDE-1

它會安裝 third party 板子進來,往下拉,找到 MediaTek LiniIt Smart Boards by Seeed Studio and MediaTek Labs,按 『Install』。

Figure 8. 在 Arduino IDE 1.6.5 r5 Boards Manager 安裝板子

Figure 8. 在 Arduino IDE 1.6.5 r5 Boards Manager 安裝板子

安裝好後,畫面如下所示:

Figure 9.在 Boards Manager 裝好板子

Figure 9.在 Boards Manager 裝好板子

按 『關閉』 回到 Arduino IDE 主畫面,『工具』 → 『板子』 → 『Boards Manager』,往下尋找 『LinkIt Smart 7688 Duo』並選擇。

Figure 10. 點選 LinkIt Smart 7688 Duo

Figure 10. 點選 LinkIt Smart 7688 Duo

在 『序列埠』 點選 『COM 5 ( LinkIt Smart 7688 Duo )』。

Figure 11.點選 COM 5 ( LinkIt Smart 7688 Duo )

Figure 11.點選 COM 5 ( LinkIt Smart 7688 Duo )

更新韌體

更新韌體是重要的,特別是剛開始時,可修正許多 bug、加入或去除功能;推出一陣子後,視您的需要決定是否要更新韌體。

在 LinkIt Smart 7688 和電腦以 USB 線連接的情況下,尋找 Wi-fi 環境裡的 LinkIt Smart 7688,我這裡只有一片 7688,掃瞄出 『LinkIt_Smart_7688』 後,點擊 『連線』。

自韌體版本 0.9.1 起,預設 SSID 由 LinkIt_Smart_7688 改為 LinkIt_Smart_7688_MAC地址後三個位元組,方便無線環境有多片時辨認出這是哪一片。

Figure 12. 在 Wi-fi 環境尋找 LinkIt Smart 7688

Figure 12. 在 Wi-fi 環境尋找 LinkIt Smart 7688

LinkIt Smart 7688 會發一組 IP 給我,結果如下圖所示,如果取得 IP 有問題,可能是您的無線網卡被設成固定 IP,請您先把固定 IP 改為動態取得,再試試看。

Figure 13 從 LinkIt Smart 7688 取得 IP

在瀏覽器網址列輸入 http://192.168.100.1/ 按 enter,連到 LinkIt Smart 7688 登入頁,首次造訪登入頁,需要設定密碼,至少六個半形英數字,設好密碼後,以剛才設定的密碼登入。

Figure 14. LinkIt Smart 7688 登入頁

Figure 14. LinkIt Smart 7688 登入頁

Figure 14. LinkIt Smart 7688 登入頁

Figure 14. LinkIt Smart 7688 登入頁

登入後,全網頁截圖畫面如下所示:

Figure 15. LinkIt Smart 7688 首頁

Figure 15. LinkIt Smart 7688 首頁

由上圖中可知,目前的韌體版本是 0.8.4,不過,因為我要測試它是否可正常升級韌體,所以,我按了『UPGRADE FIRMWARE』,按了 『UPGRADE FIRMWARE』 後,韌體版本不知怎地變成 0.8,點擊 Firmware upgrade 虛線框區域,選取要升級的韌體,我選好了它的韌體檔,名叫 lks7688.img,按 『UPGRADE & RESTART』。

Figure 16. LinkIt Smart 7688 升級韌體

Figure 16. LinkIt Smart 7688 升級韌體

過程中,LinkIt Smart 7688 板子上的 Wi-fi 燈閃三下滅,閃三下滅,周而復始,因為韌體檔很大,以 0.8.4 版為例,有 17.2MB,所以它傳了很久,為了觀察它 『收封包 → 檢查 checksum → 抹除 → 寫入 → 系統自動 reboot,斷線重連 → 系統初始化』,的過程我連續 ping 它。

Figure 17. LinkIt Smart 7688 升級韌體時連續 ping

Figure 17. LinkIt Smart 7688 升級韌體時連續ping

Figure 18. LinkIt Smart 7688 升級韌體時網頁情形

Figure 18. LinkIt Smart 7688 升級韌體時網頁情形

MediaTek官方文件說升級韌體需要三分鐘,可是我覺得我等了好久還不見反應,它一直維持上圖這個樣子,連續 ping 也不見中斷再連。

我好奇地再開一頁進去看,發現它這裡的版本是 0.8.4。

Figure 19. LinkIt Smart 7688 升級韌體時再開一分頁的情形

Figure 19. LinkIt Smart 7688 升級韌體時再開一分頁的情形

我不知道這是什麼情況,我等了三十分鐘,只能猜測它抹除寫入後不會自己自動 reboot,需要手動 reboot,可是,我要怎麼 reboot它呢?

我在網頁裡找不到可以 reboot 的項目,心想,回復出廠預設值總該 reboot 了吧……於是,我按了『RESET』。

Figure 20. LinkIt Smart 7688 升級韌體時回復出廠預設值

Figure 20. LinkIt Smart 7688 升級韌體時回復出廠預設值

Figure 21. LinkIt Smart 7688 升級韌體時回復出廠預設值

Figure 21.LinkIt Smart 7688 升級韌體時回復出廠預設值

它不准我現在回復出廠預設值,按『確定』後回到了首頁。

Figure 22.LinkIt Smart 7688 升級韌體時不能回復出廠預設值

Figure 22.LinkIt Smart 7688 升級韌體時不能回復出廠預設值

Figure 23. LinkIt Smart 7688 升級韌體時不能回復出廠預設值

無奈之下只能斷電再通電,這個問題在韌體版本 0.9.1 獲得解決,韌體 0.9.1 檔案大小 21 MB,用網頁升級韌體系統重新啟動時,從連續 ping 可清楚看到它斷線重連。

若從 0.8.4 升到 0.9.1,因為 0.9.1 預設 SSID 和 0.8.4 不同,所以,它斷線後無法自動重連,必須手動重連,從 0.9.1 重灌到 0.9.1 或升級更新的版本就無此問題。

Figure 24. LinkIt Smart 7688 升級韌體時連續 ping (0.9.1)

Figure 24. LinkIt Smart 7688 升級韌體時連續 ping (0.9.1)

0.9.1 有這個畫面可按,『斷線』重連後按『SIGN IN』可回到登入頁。

Figure 25.LinkIt Smart 7688 升級韌體後畫面 (0.9.1)

Figure 25. LinkIt Smart 7688 升級韌體後畫面 (0.9.1)

升級到 0.9.1 後,最好順便回復出廠預設值並重設密碼,以免遇到無法login(總是說我密碼錯誤)的窘境。

更新boot loader(非必要)

boot loader沒什麼功能,它僅供被升級韌體(firmware),韌體才有完整的功能。

因為boot loader 沒什麼功能,出廠後升級 boot loader 的機率很低,而且升級方式比較複雜,所有,這裡不講怎麼升級 boot loader,有興趣的人可以閱讀 developers guide。

MediaTek LinkIt Smart 7688 Duo 最讓我喜愛的是它不僅像其它 Arduino 板子一樣同時可接數位和類比,還有以下功能:

  • 內建 Linux 環境和 OPKG package manager
  • 內建 node.js 和 Python環境
  • 內建 UVC USB camera support
  • 內建 libmraa

內建 Linux 環境,讓我更能操控這個裝置,幾個簡單的指令都有,看記憶體使用情形,看網路情形都可以,還有令人發出『會心一笑』的 vi.

Figure 26. LinkIt Smart 7688 Linux 畫面

Figure 26.LinkIt Smart 7688 Linux 畫面

沒有main page,要下什麼指令,直接試,如果有這指令,它就會丟 help 出來。

內建 OPKG package manager,支援安裝、更新、移除套件,可安裝我比較喜歡使用的 nano。若要看目前已經裝了哪些套件,可下指令:#opkg list-installed

  • 更新套件清單
    #opkg update
  • 移除套件
    #opkg remove 套件
  • 安裝套件(需先設成 station mode 連到 internet)
    #opkg install 套件
  • 升級套件(需先設成 station mode 連到 internet)
    #opkg upgrade 套件

LinkIt Smart 7688 最令我欣賞的是內建 node.js 和 Python開發環境,這比 Arduino Yún 要強大很多,不過,和 SBC (single board computer) 相比,我們不適合直接在 LinkIt Smart 7688 上開發程式,建議大家在 Windows電腦或 SBC 上寫好程式,上傳到 LinkIt Smart 7688 上執行。

剛拿到 LinkIt ONE 時,我試著接 camera 上去,不過沒成功,換 LinkIt Smart 7688 後,可以動了,能收到影像是很棒的事,這樣就可做後段處理和應用。

Libmraa 是在 IoT 板上用以繫結 Python、JavaScript、Java 當 I/O 介面的C/C++ 函式庫,有了 libmraa,在 IoT 板上整合硬體就簡單多了。

 文章來源: http://makerpro.cc/2015/12/linkit-smart-7688-duo-installation-guide/
作者:George Yeo 游持毅 (George Yeo),軟體工程師十六年,經歷嵌入式系統程式、產測程式、資料庫程式撰寫、技術支援等職,接觸 Arduino 和 Raspberry Pi 一年。喜歡閱讀、書法、欣賞美術和音樂、與人交往交流。