All posts by chen

PIXEL (4) Japanese Input

Raspberry Pi 設定ツールで日本語化する

ラズベリーパイメニューからPreferences → Raspberry Pi Configurationの順に選択します。
2017073001
LocalisationタブのSet Locale…ボタンを押します。
Language:にja (Japanese)を選択します。
Timezone:をJapanに設定します。
Keyboard:のSet Keyboard…を押して、CountryにJapan、Variantはご使用しているキーボードの種類を選択します。分からない場合はとりあえずJapaneseで大丈夫だと思います。
WiFi Country:のSet WiFi Country…を押してCountry:にJP Japanを設定します。
最後にRaspberry Pi ConfigurationのOKを押すと再起動するか尋ねられるのでYesボタンを押して再起動します。

コマンドで日本語化する

ターミナルを開いて言語とタイムゾーンを設定します。

[*] ja_JP.UTF-8 UTF-8 を選択

アジア / Tokyo を選択

日本語関連パッケージをインストールします。
いったんログアウトして、再度ログイン(ユーザー名 : pi、パスワード : raspberry)するとデスクトップは日本語になります。

日本語入力

ラズベリーパイで日本語入力を行うための方法はいくつかあります

  1. fcitx-mozc
  2. scim-anthy

fcitx-mozc

今回は、Google日本語入力のオープンソース版である「Mozc」を使った方法を試してみましょう。

  • 日本語入力:
    sudo apt-get install fcitx-mozc --install-recommends -y
    再起動後、CTRL+スペースで日本語入力できる。。ハズ..
  • ラズパイメニュー > 設定 > Fcitxの設定 で、入力メソッドのとこで一番上が、キーボード – 英語(UK) だったら、削除する(Mozcだけ)か、US配列キーの場合、”英語(US)”にする。
  • フォント:
    sudo apt-get install fonts-ipafont fonts-ipaexfont fonts-takao

scim-anthy

日本語が入力できるようにscim-anthyをインストールします

Raspberry Pi (7) OLED status

Raspberry Pi ZeroにOLED をつけて、statusを表示する。
Raspberry Pi Zeroは、ネットワークi/fがないため、入手して大分時間がたちまして、棚上げ状態が続く。
USB WiFiを追加し、さらにOLEDでipアドレスなどのstatusが表示できれば、使い道が増えると考えた。
試行錯誤の末、下記のものができた。

  1. オスのUSB追加で、PCに直挿入
    (2は共存できないため、不要!)
  2. USB WiFiでネットワークに接続
  3. シリアル接続ための端子を用意
  4. OLEDでstatusの表示
  5. BMP280で環境温度と気圧を収集

開発環境構築

まず、オスのUSB追加で、PCに直挿入できるように。

(参考: Raspberry Pi (8) USB to PC

PCに直挿入、sshで操作らくらくと調子がいいだけと、
しかしここで、MicroUSBにWiFiドングリをさして見たら、認識しない!共存できないと発見した。

仕方なくシリアル接続ための端子を追加した。

OLEDでstatusの表示

(TBD)

BMP280で環境温度と気圧を収集

(TBD)

Raspberry Pi (5) USB to PC

Raspberry Pi Zero はWiFiもない、LANもないから、使いづらい。

USBで直接PCに刺して使えるならいいと思い、やってみた。

ハードウェア

ついてに、OLEDも繋げて、何かメッセージ見るとき便利。

完成した様子。

ソフトウェア

SDカードにRaspbianを書きこむ

いつもの方法

bootボリューム内の一部ファイルの修正

編集するファイルは3つ。

config.txt

次のコマンドでファイルを開く。

最終行に次の内容を追加。

 

cmdline.txt

次のコマンドでファイルを開く。

rootwaitquietの間にmodules-load=dwc2,g_etherを挿入。

編集後の内容は次のとおり。

 

ssh

現行のRaspbianは,デフォルトでsshによるログインが無効になっていて,モニタやキーボードを接続してローカルからログインする必要。でも,ファイル/boot/sshが存在すると,初回起動時にsshが有効になる。

以上の作業が終わったらMacからSDカードをアンマウントし,Zeroに挿入。

早速Macに繋いて動作確認。

 

Macのターミナルを起動し,次のコマンドでZeroにログインする。初期パスワードは”raspberry”。

ログインできたら、あとはLinuxとして自由に利用できる。

ネットワークに繋ぐには、Pi対応USB WiFi  ドングルを利用する。

参考

  1. http://blue-black.ink/?p=3674

C.H.I.P. (8) BMP280 i2c

OLED繋いだから、早速同じi2cのBMP280を試す。
chen@chip:~$ git clone https://github.com/prisme60/BMP280.git
コメントに書いてる方法でコンパイル
chen@chip:~/BMP280$ gcc -Wall -o BMP280 ./BMP280.c
./BMP280.c: In function ‘main’:
./BMP280.c:339:2: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
for(int i = 0; i < argc; i++) {
^
./BMP280.c:339:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
./BMP280.c:371:4: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
for(int i=0;i<20;i++) {
^
エラーがたくさんある。オプションがつければいいらしい。
chen@chip:~/BMP280$ vi BMP280.c
でもソースを斜めてみると、二箇所だけfor文に定義するから、簡単に直せる。ただ定義文を関数先頭に書くだけ。
chen@chip:~/BMP280$ gcc -Wall -o BMP280 ./BMP280.c
chen@chip:~/BMP280$ ./BMP280
i2c_Open : Failed to open the i2c bus, error : 13
Check to see if you have a bus: /dev/i2c-1
This is not a slave device problem, I can not find the bus/port with which to talk to the device
sudoじゃないとダメだね。
chen@chip:~/BMP280$ sudo ./BMP280
Device accessed via File descriptor:3 at Address:0x76 has returned:0
[0]=3 [1]=6E [2]=B5 [3]=66 [4]=32 [5]=0
T1=28163 T2=26293 T3=50
P1=38053 P2=-10790 P3=3024 P4=7462 P5=-175 P6=-7 P7=15500 P8=-14600 P9=6000
adc_Temperature=536630 adc_Pressure=311387
{“temperature”:26.96,”Pressure64″:1017.5,”Pressure32″:1017.5,”PressureDouble”:1017.5}
adc_Temperature=536636 adc_Pressure=311390
{“temperature”:26.97,”Pressure64″:1017.5,”Pressure32″:1017.5,”PressureDouble”:1017.5}
adc_Temperature=536636 adc_Pressure=311390
{“temperature”:26.97,”Pressure64″:1017.5,”Pressure32″:1017.5,”PressureDouble”:1017.5}
延々と続く…

C.H.I.P. (7) OLED i2c

NokiaのLCDを付けるつもりで進んていたが、接続例が見つからないので、例があるOLEDにした。

Battery Connector, OLED, BMP280, Buttons shield
バッテリー、OLED、温度気圧センサー、いくつボタンを入れたシェルターを作った。(バッテリーちょっと大きかった)
OLEDは、i2c-1に繋いだ。
いざmakeすると、足りないものが多いので、足しながら、makeが成功。
root@chip:/home/chip# apt-get update #しないと、パッケージインストールがうまくいかない
root@chip:/home/chen# git clone https://github.com/vkomenda/ssd1306.git
root@chip:/home/chen# cd ssd1306/
root@chip:/home/chen/ssd1306# apt-get install gcc make #make がまたないので、追加
root@chip:/home/chen/ssd1306# make

これてやっと完了。
root@chip:/home/chen/ssd1306# ./ssd1306_demo /dev/i2c-
i2c-0 i2c-1 i2c-2
root@chip:/home/chen/ssd1306# ./ssd1306_demo /dev/i2c-1
devには、i2cは3つもあるので、繋がっているのは、i2c-1でしょうだから、試したら、成功。

Raspberry Pi (4) LAMP setup

Raspberry PiにLAMP環境を作る

install

念のため、updateしておく。

pi@raspberrypi:~ $ sudo apt-get update

AMPを一気にinstallする
pi@raspberrypi:~ $ sudo apt-get install -y apache2 php5 mysql-server
Apache2 Debian Default Page をみる
http://192.168.11.139/

PHP動作確認

Document Rootsは、/var/www/html の下。そこにinfo.php ファイルを作って、PHP動作確認する。
pi@raspberrypi:~ $ cd /var/www/html
管理者権限で、ファイルを新規作成。
root@raspberrypi:/var/www/html$ sudo nano info.php
またはrootユーザーになって
root@raspberrypi:/var/www/html#  nano info.php

ファイルの中身を確認
root@raspberrypi:/var/www/html# cat info.php
<?php
phpinfo();
?>
ブラウザーから、PHPの設定情報が見れる。
http://192.168.11.139/info.php
 

C.H.I.P. (6) battery work

C.H.I.P. には、バッテリーの利用、充電機能がついてる。
使えるのは  Polymer Lithium Ion Battery、3.7V.
コネックタはちょっと特殊( jst ph 2-pin connector )だから、よくある買ったもの( JST XH2.54 2 Pin Connector)はそのまま使えない。
そこで、jst ph 2-pin connectorを購入して、変換することにした。

バッテリーを使う一番のメリットは、システム安定した。以前重い作業(updateとか)すると、よくフリーズする、ちょっと中国製もの遠慮勝ちになったが、バッテリーをつけると、フリーズすることがなくなた。問題は電源だね、ちょっと自信が取り戻した。

バッテリーの状態は、コマンドで確認できる。
root@chip:/home/chip# battery.sh
BAT_STATUS=0
CHARG_IND=1
BAT_EXIST=1
CHARGE_CTL=0xc9
CHARGE_CTL2=0x45
Battery voltage = 4143.7mV
Battery discharge current = 0mA
Battery charge current = 638.5mA
Internal temperature = 45.8c
そして、パーセント表示もできる。
chen@chip:~$ cat battery_perc.sh
date
REGB9H=i2cget -f -y 0 0x34 0xb9 # Read AXP209 register B9H
PERC_CHG=$(($REGB9H)) # convert to decimal
echo “Battery is at $PERC_CHG %”
chen@chip:~$
chen@chip:~$ sudo sh battery_perc.sh
Thu Sep 14 07:20:37 UTC 2017
Battery is at 99 %

PIXEL (3) Screen resolution

PIXEL (Raspberry OS)は、USBメモリに書き込んで、古いi386のPCでも活用でするもの。
静音PCでPIXELを動かすと、800×600の解像度になってしまう。ちと狭い。変更する方法はあるのかな…。
_PIXEL for PC and Mac – Raspberry Pi のコメント欄で、xrandr とやらを使って解像度を変更する例が紹介されてる。

上記のように打ってみたら、エラーになり、困った。

なぜだろう!試しに引数なしでコマンド送ったら、ステータスとオプションが表示してくれた。

これて、output を推測し、下記のコマンドを送る。

解像度が変更できた。
これでは次回起動時にはまた元に戻ってしまって。さて、どうしたら…。
更に arandr なるツールをインストールしたらGUIでも解像度を変更でき;~/.config/autostart/ に.desktopファイルを置くと、Xセッション起動時に自動起動が走るらしいので、時間があったらまた試してみる。
 

Raspberry Pi (6) Nokia 5110 LCD

Nokia 5110 LCD表示するための設定

最初の参考文献で、下記のコマンドを実行

cd /home
sudo apt-get update
sudo apt-get install python-pip python-dev build-essential
sudo pip install RPi.GPIO
sudo apt-get install python-imaging
sudo apt-get install git
sudo git clone https://github.com/adafruit/Adafruit_Nokia_LCD.git
cd Adafruit_Nokia_LCD
sudo python setup.py install
Adafruit examples programsを実行:

困りました!
もしかしてと、昨日のRaspberry Pi (9) Red LED Matrix Moduleを見直し、spi->> Onが必要と気づいた。

  • spi ->> On

これて、Adafruit examples programsを実行に問題なく表示できた。

参考文献

  1. http://projects.privateeyepi.com/home/home-alarm-system-project/nokia-5110-lcd-project

Raspberry Pi (5) Red LED Matrix Module

Raspberry Pi用赤いLED Matrix Moduleを購入したので、まずためす!

セットアップ


このように、GPIOに差し込むタイプ。何かできるかと思うと、流れ文字、テトリスゲームはいいかもしれません。
ちょっと初期のPiで試したが、OSが古いため、パッケージインストールエラーなど、問題発生する。仕方なく、別SDに最新版のOSを導入して進む。
起動したら、下記の3点設定する。

pi@raspberrypi-256M:~ $ sudo raspi-config
  • Video Momory 64M ->> 16M
  • ssh ->> On
  • spi ->> On

ドライバーインストール

ドライバーの C library for Broadcom BCM 2835 インストール.

サンプルコード

サンプルコードの取得

C言語サンプルコードのビルド

実行する



参考ビデオ