2016年6月25日 星期六

raspberry pi3 Raspbian (九) Jessie 中文顯示


     Raspbian Jessie 是移植 Debian 8 (Jessie) 改進了軟體安裝的便利性但是對於非使用羅馬拼音字體的顯示卻出現了很怪的問題選中文字體卻沒中文雖然官方網站都說沒問題可是就我知道不只中文有問題幾乎整個亞洲的字形顯示都有問題還,還好有修正的解決方案

 在SSH視窗輸入

$ sudo raspi-config

 選擇語言選項



 選擇本地化


在字碼選項一直往下拉就可看到 zh xx  把zh都用空白鍵圈選 用Tab 鍵移到OK 按 " Enter"


會顯示目前可辨識的非英語系的字碼圈選 zh_TW.UTF-8 為系統預設字碼


      選好後Raspberry 會自動的下載字形與字碼 系統不會提醒但需重開Raspberry 才會套用新設定但是重開機後會出現更怪的現象所有中文字都變框框



要再安裝修補程式,

 $ sudo apt-get update
 $ sudo apt-get install task-chinese-t-desktop

安裝好後一樣須重開機 所有的顯示就變正常



Scratch 基礎( 一) 舞台

       
    Scratch 程式分為4大區域,1.舞台區,2.腳色區,3.材料區4.劇本區。今天先說明舞台區部分。所有的方向都是以操作者為主,右邊是你的右邊不是腳色的右邊!!




舞台區

     舞台區就是一個 480 X 360 的區域,所有的腳色的會在這個區域內演出,舞台的座標0,0在舞台正中央,右上角坐標為 240,180 右下角坐標為 240,-180左下角坐標為  -240,-180 左上角坐標為 -240,180
        腳色的方向 : 上方是 0度,右方是90度,下方是180度,左方是-90度



     Scratch  舞台預設是白色的,使用者可自己畫或從下載檔案或自己拍攝的檔案改變,也可以中途變換,舞台可在這裡設計 先點一下左邊的舞台在點一下材料區的背景,預設是自己畫舞台,使用方法法很像小畫家


  
點選 "從範例圖庫中選背景" 再去選擇想要的圖案背景就會換成選擇的圖案


        


         點選 " 上傳背景檔案" 可上傳電腦內的大部分格式的影像檔,要注意長寬比要是 480 X 360 的倍數,否則就會填不滿背景



選擇相機, 舞台背景來源是 WebCamera 



GIMP 繁體中文安裝


            GIMP 是 GNU Image Manipulation Program (GNU 影像處理程式) 的縮寫,是一款可以自由使用、複製、修改和發佈的影像處理軟體,也是一款跨平台的影像處理軟體,可以在 GNU/Linux、MS Windows、Mac OS X 等平台下運作,能夠實現多種影像處理方面的要求,包括照片潤飾、影像合成和影像建立。

      GIMP 是 遵循 GNU GPL 發佈,是自由軟體。如果僅就一般簡單修圖的功能來說,GIMP 幾乎可以媲美 Photoshop,較早期只有 Linux 版本,但現在 Windows 、 OS X作業系統也有支援的版本。

下載位置 :

http://www.gimp.org/downloads/


下載後點兩下安裝,只能選英文版。


  執行時會自動變成中文,第一次開啟會自動檢查版本需要一段時間。


 開啟後基本上是分屍狀態,工具箱 、筆刷 、圖片處理程式是分離的,可依自己喜好擺放。


也可以變成單一的模式  視窗 >> 單一視窗模式。


個人覺得這樣比較正常。


參考資料 :
       https://www.gimp.org/
       https://zh.wikipedia.org/wiki/GIMP

2016年6月23日 星期四

UDOO QUAD 安裝中文& 注音輸入法


  UDOO QUAD 預設連中文字型都沒,上網時會是這樣中文字都變框框 。






$ sudo apt-get install language-selector-gnome


執行套件選擇。

$ sudo gnome-language-selector

      會出現套件版本不相容警告需要重裝,就照畫面按一下重裝吧!!

        裝好套件後選 "Install/Remove Languages" 。


勾選 Chinese(traditional)繁體 Chinese(simplified)簡體 按 "Apply Changes" 。


就會開始安裝字形 。


安裝完成後須重新開機,重新開機後就可正常顯是中文字 。


我是習慣用hime輸入法但是UDOO輸入法選項沒hime 。

  只能在終端機安裝 hime  。

$ sudo apt-get install hime

   安裝好後要重新開機, 重新開機後就有 hime 中文輸入了。




參考資料:

http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?post_id=212346

UDOO QUAD 建立 VNC 連線


 UDOO QUAD 安裝 VNC 方法跟 Raspberry 是一樣的,如需客戶端的說明在這裡有。

用SSH登入UDOO,使用者 &密碼都是 udooer。



更新系統。

$ sudo apt-get   upgrade
$ sudo apt-get   update

安裝VNC 這過程要一段時間,跟網路速度有很大關係 。

$ sudo apt-get install tightvncserver

$ tightvncserver

第一次執行 vncserver 時會問幾個問題,包括登入的密碼和可供其他人流覽的 read-only 密碼, read-only 密碼可以不設定。

   執行 TightVNC Viewer 輸入UDOO 的 IP,我們使用埠號是5900就 :0 就可。



  要在開機時就啟動 VNC 伺服器 須在 /etc/init.d/ 下建立一個控制的腳本 (script),例如取名為 vncboot。

$  sudo nano /etc/init.d/vncboot

 script 內容如下。

#! /bin/sh
# /etc/init.d/vncboot

### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

USER=pi
HOME=/home/pi

export USER HOME

case "$1" in
 start)
  echo "Starting VNC Server"
  #Insert your favoured settings for a VNC session
  su - $USER -c "/usr/bin/vncserver :0 -geometry 1920x1080 -depth 24"
  ;;

 stop)
  echo "Stopping VNC Server"
  /usr/bin/vncserver -kill :1
  ;;

 *)
  echo "Usage: /etc/init.d/vncboot {start|stop}"
  exit 1
  ;;
esac

exit 0


須修改檔案權限。

$ sudo chmod 755 /etc/init.d/vncboot

將腳本加入預設的啟動程序。

$ sudo update-rc.d -f lightdm remove
$ sudo update-rc.d vncboot defaults

重開 UDOO 測試一次。

$ sudo reboot


UDOO QUAD 安裝 UDOObuntu 2.0


     UDOO QUAD 2013年時在 KickStarter 集資推出的,當時在開發版界UDOO絕對是無敵,但是隨著時間的流逝UDOO已經被很多開發版超越了,DUOO還是宣稱在功能上勝Raspberry Pi 3,UDOO到現在還有在更新OS,目前已經更新到UDOObuntu 2.0。

UDOO QUAD 硬體規格

Freescale i.MX 6 ARM Cortex-A9 CPU Quad core 1GHz
Integrated graphics, each processor provides 3 separated accelerators for 2D, OpenGL® ES2.0 3D and OpenVG™
Atmel SAM3X8E ARM Cortex-M3 CPU (same as Arduino Due)
RAM DDR3 1GB
76 fully available GPIO
Arduino-compatible R3 1.0 pinout
HDMI and LVDS + Touch (I2C signals)
Ethernet RJ45 (10/100/1000 MBit)
WiFi Module
Mini USB and Mini USB OTG
USB type A (x2) and USB connector (requires a specific wire)
Analog Audio and Mic
SATA (Only Quad-Core version)
Camera connection
Micro SD (boot device)
Power Supply 12V and External Battery connector

UDOObuntu 2.0安裝

  到這裡下載映像檔。
http://www.udoo.org/downloads/


     下載後建議用7-ZIP 解壓縮,用Win32DiskImager 寫入SD 卡,SD卡使用前須用SDFormatter 完全格式化。SD卡做好後插入UDOO的卡曹,UDOO就可插上電源,UDOO最大的好處是使用12V電源,12V電源轉換器比較普遍。


以下操作與畫面都是UDOO,話還沒說完當畫面切到 UDOO結果就好了!!



檢查一下磁碟也是16G。



開 Arduino 是 1.6.5版。



再來就把網路設好就沒問題了。


UDOObuntu 2.0是用web的方式設定網路。



 選Network Settings。



 找到自己的AP。



輸入連線AP的密碼。



   儲存密碼。



   選時區。


   選國家還好有台灣可選。



選擇語言選好後按 "UPDATE SETTINGS"。


 感覺上UDOO 操作上沒 Raspberry Pi3 順。


2016年6月22日 星期三

Raspberry Pi 3 ( 八 ) 骰子 -- 使用 sense_HAT


   本次是小幅修改以下網站作品加上中文註解,學習初期就是先動手抄,Make 最重要的是動手做再瞭解其中原理。
http://www.suppertime.co.uk/blogmywiki/2015/12/raspberrypi-dice-project/

  開啟文字編輯器輸入以下程式碼。

#-*-coding:cp950-*-

#這一行是讓 Python 能用中文註解

from sense_hat import SenseHat  # 載入SenseHat模組
import time         # 載入時間模組
import random       # 載入亂數模組

sense = SenseHat()  # 顯示器 = SenseHat

sense.clear()       # 清除顯示器

sense.show_message("Shake to roll!")  # 顯示字串 Shake to roll!

b = [0, 0, 0]      # b= 不亮
g = [0, 255, 0]    # g= 綠色
r = [255, 0, 0]    # r= 紅色

one = [            # 1 點的圖案
b,b,b,b,b,b,b,b,
b,b,b,b,b,b,b,b,
b,b,r,r,r,r,b,b,
b,b,r,r,r,r,b,b,
b,b,r,r,r,r,b,b,
b,b,r,r,r,r,b,b,
b,b,b,b,b,b,b,b,
b,b,b,b,b,b,b,b,
]

two = [           # 2 點的圖案
b,b,b,b,b,b,b,b,
b,g,g,b,b,b,b,b,
b,g,g,b,b,b,b,b,
b,b,b,b,b,b,b,b,
b,b,b,b,b,b,b,b,
b,b,b,b,b,g,g,b,
b,b,b,b,b,g,g,b,
b,b,b,b,b,b,b,b,
]

three = [          # 3 點的圖案
g,g,b,b,b,b,b,b,
g,g,b,b,b,b,b,b,
b,b,b,b,b,b,b,b,
b,b,b,g,g,b,b,b,
b,b,b,g,g,b,b,b,
b,b,b,b,b,b,b,b,
b,b,b,b,b,b,g,g,
b,b,b,b,b,b,g,g,
]

four = [          # 4 點的圖案
b,b,b,b,b,b,b,b,
b,r,r,b,b,r,r,b,
b,r,r,b,b,r,r,b,
b,b,b,b,b,b,b,b,
b,b,b,b,b,b,b,b,
b,r,r,b,b,r,r,b,
b,r,r,b,b,r,r,b,
b,b,b,b,b,b,b,b,
]

five = [          # 5 點的圖案
g,g,b,b,b,b,g,g,
g,g,b,b,b,b,g,g,
b,b,b,b,b,b,b,b,
b,b,b,g,g,b,b,b,
b,b,b,g,g,b,b,b,
b,b,b,b,b,b,b,b,
g,g,b,b,b,b,g,g,
g,g,b,b,b,b,g,g,
]

six = [           # 6 點的圖案
g,g,b,b,b,b,g,g,
g,g,b,b,b,b,g,g,
b,b,b,b,b,b,b,b,
g,g,b,b,b,b,g,g,
g,g,b,b,b,b,g,g,
b,b,b,b,b,b,b,b,
g,g,b,b,b,b,g,g,
g,g,b,b,b,b,g,g,
]

def roll_dice():              
    r = random.randint(1,6)     # 隨機取得1~6的變數
    if r == 1:                  # 如果變數是1
        sense.set_pixels(one)   # 顯示 1 點的圖案
    elif r == 2:
        sense.set_pixels(two)
    elif r == 3:
        sense.set_pixels(three)
    elif r == 4:
        sense.set_pixels(four)
    elif r == 5:
        sense.set_pixels(five)
    elif r == 6:
        sense.set_pixels(six)

while True:
    x, y, z = sense.get_accelerometer_raw().values()  # 取得加數計的值

    x = abs(x)
    y = abs(y)
    z = abs(z)

    if x > 1.4 or y > 1.4 or z > 1.4:      # 如果任何一軸的值超過1.4
        roll_dice()                       # 執行  roll_dice()
        time.sleep(1)       # 延遲 1 秒  


將檔案存成 dice.py 。開啟 WinSCP 輸入登入資訊。


 將 dice.py 拖曳到 Raspbreey 的 Sense_hat目錄。


   用 SSH 登入 Raspberry 切換到 sense_hat 目錄,輸入 python dice.py。


每次搖動 Raspberry 都會產生新點數 。 



參考資料 :

   http://www.suppertime.co.uk/blogmywiki/2015/12/raspberrypi-dice-project/
   https://www.raspberrypi.org/blog/astro-pi-tech-specs/

Raspberry Pi 3 (七) 迷宮 --使用 sense_HAT

   這一篇是抄襲自這裡,英文好的可自行看一下原理網站上說明很詳細,這裡一樣主張先做再討論原理。
https://www.raspberrypi.org/learning/sense-hat-marble-maze/worksheet/

  開啟文字編輯器輸入以下程式碼。

#-*-coding:cp950-*-

#這一行是讓 Python 能用中文註解

from sense_hat import SenseHat  # 載入SenseHat模組
from time import sleep

sense = SenseHat()   # 顯示器 = SenseHat
sense.clear()        # 清除顯示器

r = (255,0,0)       # b= 不亮
g = (0,255,0)       # g= 綠色
b = (0,0,0)         # r= 紅色
w = (255,255,255)   # w= 白色

x = 1             # x 預設 =1
y = 1             # y 預設 =1

maze = [              # 迷宮圖案
[r,r,r,r,r,r,r,r],
[r,b,b,b,b,b,b,r],
[r,r,r,b,r,r,r,r],
[r,b,r,b,b,b,b,r],
[r,b,b,b,b,r,b,r],
[r,b,r,r,r,r,b,r],
[r,b,b,r,g,b,b,r],
[r,r,r,r,r,r,r,r]
]

def move_marble(pitch,roll,x,y):      #確認傾斜方向
    new_x = x
    new_y = y
    if 1 < pitch < 179 and x != 0:  
        new_x -= 1
    elif 359 > pitch > 181 and x != 7 :
        new_x += 1
    if 1 < roll < 179 and y != 7:
        new_y += 1
    elif 359 > roll > 181 and y != 0 :
        new_y -= 1
    x,y = check_wall(x,y,new_x,new_y)
    return x,y

def check_wall(x,y,new_x,new_y): #偵側牆面
    if maze[new_y][new_x] != r:
        return new_x, new_y
    elif maze[new_y][x] != r:
        return x, new_y
    elif maze[y][new_x] != r:
        return new_x, y
    return x,y

game_over = False #

def check_win(x,y): # 確認是否過關
    global game_over
    if maze[y][x] == g:  #如果 x,y 重疊綠色
        game_over = True
        sense.show_message('You Win')  #顯示字串 You Win

while not game_over: #沒有過關
    pitch = sense.get_orientation()['pitch']
    roll = sense.get_orientation()['roll']  
    x,y = move_marble(pitch,roll,x,y)    
    check_win(x,y)    
    maze[y][x] = w    
    sense.set_pixels(sum(maze,[]))
    sleep(0.05)
    maze[y][x] = b


完成後存成 maez.py,開啟WinSCP填入登入資訊。
.

登入後將 maze.py 拖曳進 sense_hat 資料夾。


登入SSH切換到 sense_hat目錄,執行 python maze.py。


就可開始玩電子迷宮了。

.


參考資料 :

https://www.raspberrypi.org/learning/sense-hat-marble-maze/worksheet/
https://www.raspberrypi.org/learning/sense-hat-data-logger/