2018年5月3日木曜日

ArduinoでSin波形を出力させる

アナログ出力のために
Arduino UNOにはアナログ出力がないので、デジタル出力をアナログに変換する。
外部にDAコンバータを用意する方法もあるが、簡易にはデジタル出力を利用して抵抗でDA変換をしてみる。
この辺は以下のサイトが詳しい。
http://mitt.la.coocan.jp/pic/pic7_16.html

8ビットのDA変換をするために、D2〜D9を使って図のような回路を組んだ。


予めSinの計算をして、配列に格納しておいたデータを使ったが、周期は13ms(約77Hz)となった。その都度Sinの計算をしたときには67ms(約15Hz)であった。



スケッチの一部を書くと、


予め計算していたSinData[kakudo]の8bitデータ(0x0000〜0x00ff)を、1ビットずつデジタル出力にHIGH,またはLOWで書き出す方法である。

スケッチを工夫して速度を上げる
デジタル出力にパラレルに出力できたらいいのに、と思っていたら、ちゃんとあった。
上と同じ内容を次のように変更。


PORTDはデジタル出力の0から7だが、0と1はシリアル通信に使われているので、2bitシフトして使っている。その分PORTBで2ビットを出力している。

このプログラムでSin波を出力させると、Sin波形の途中に異なった値のデータが、ヒゲのように出てしまう。原因はPORTDとPORTBの出力に時間差があるためで、アナログ値がその間本来と異なった値となってしまったため。
途中にヒゲが出ている
PORTDとPORTBの出力時間差を極力減らすため、次のように変更する。


PORTDとPORTBの出力の時間差が原因であることを確認するために、②を挿入してみた。
②がないと、ヒゲはほとんどなく、②を入れると、その時間だけ異なったデータが出る。
ヒゲがなくきれいな波形となる
 これによるSin波の周期は1.1ms、周波数は約910Hzである。forループ1回あたり(1度あたり)約3μsであるので、このくらいが限界かもしれない。周波数を上げるためには、5度おきに間引いて計算するなどが考えられるが、当然波形としては段差が目立ってきたなくなる。
5度おきに計算。階段状になる。

外部のDAコンバータ、MCP4726(12bit)を使用した場合


インターフェースはI2Cで、速さが100kHz、400kHz、3.4MHzと3段階あるようだが、その設定の仕方がよくわからない。しかし実際にSCL波形をオシロスコープで見ると、10μs周期なので、100kHzでの通信と考えられる。
予めSinθの計算をしたうえで出力させたが、12ビットで転送時間もかかるのか、出力の周期は115ms(約8.7Hz)となり、とても遅い。(単純計算では1度あたり320μsかかったことになる。通信量からするとこんなものか。)ただ、波形としてはヒゲもなく大変きれいである。0.5度ごとに計算して出力させるともっときれいになるだろう。

12ビットのDACなので、1度につき2バイト使って360度計算すると、RAMの54%を使ってしまった。
波形はヒゲもなくきれい。しかし遅い。




インターフェースをSPIにしてみる
I2Cは100kHzに対し、SPIは数十Mbpsも可能というので、次のような回路を組んでみた。

シフトレジスタは別基板に作った
シフトレジスタ74HC595を使ってデータを転送し、その出力を抵抗でDA変換するものである。ラッチで一斉にデータが変わるので、ヒゲは出ない。
このICは秋月電商で販売している7セグメントLED用に使われているもので、SPI.transfer()のコマンドでデータを転送する。
スピードアップのため、予めSinθを計算させておいてSinData[]に保存、その後順に出力する。

この結果、Sin波形の周期は約4.5ms(222Hz)となった。ラッチの周期は12μsだが、8ビットのデータ転送自体は2μsで終了している。digitalWriteの時間が結構かかっているようだ。

そこで、digitalWriteの代わりにPORTBコマンドを使ってみたのが以下のプログラムである。


ラッチにD10を使用しているので、直接制御している。

この結果、Sin波の周期は1.1msと、Arduinoのデジタル出力に直接抵抗をつけた場合(PORTコマンド使用)とほとんど変わらなくなった。ラッチの周期は3μsである。波形としては当然ヒゲもなくきれいなSin波になっている。

信号のタイミングを見ると、上がラッチ出力で、下がシリアルデータである。ラッチをLにした後、シリアルデータを出力。8ビットのデータを約2μsで送出し、その後ラッチをHにすることで、シフトレジスタの出力が変化する。

Raspberry-Pai と Arduinoで簡易オシロスコープを作る

九州工業大学から、Arduinoを使った簡易オシロスコープが公表されており、実際に試した人が多かったのでトライしてみた。しかし、なかなかすんなりとは行かなかったので、メモとして記録しておく。

九州工業大学から公表されているページは次の通り。
http://www.iizuka.kyutech.ac.jp/faculty/physicalcomputing/pc_kitscope/


これに従って作業を進めれば良いだけのことだが、PCとArduinoを組み合わせてオシロスコープにするので、PC側の表示画面も用意しないといけない。これはProcessingを使って作られているとのこと。
Arduinoは今Raspberry-Paiで動いているので問題ないが、ProcessingをRaspberry-Paiで動かす必要がある。
まずはProcessingのインストールから。

ダウンロードは
https://processing.org/download/
から行う。
ラズパイなので、LinuxARMv6hf を選択するが、すぐ寄付のページになってしまう。寄付をせずにダウンロードもできるようだが、どこからどう進むのかが全くわからない。「寄付をせずにダウンロード」といったチェックマークも見当たらない。ネット上で探してみると、すんなりダウンロードできた例もあり(ほとんどがそうだろうが)、ブラウザによって違いがあるのかもしれない。ちなみに手元のスマホでやってみたら、同じように寄付のページは出るものの、並行してダウンロードが行われていた。もしかしてと思って見たが、Daunloadsのホルダーには、それらしきファイルは見当たらなかった。

結局「LinuxARMv6hf」にマウスのカーソルを持っていって右クリック、メニューから「リンクのアドレスをコピー」を選択して、新しいタブでアドレスを指定してダウンロードを行った。
ダウンロードしようとすると、この寄付の画面が出て、寄付をしないと進めない?
カーソルを「LinuxARMv6hfに合わせたら、右クリックでメニューを表示させ、
「リンクのアドレスをコピー」を選択。新しいタブに貼り付けてダウンロードを行う。

ラズパイへのインストールは不慣れで苦労したが、単に勉強不足というだけのこと。結局問題なくインストールが完了し、デスクトップ上にアイコンもできた。立ち上げてみると、ArduinoのIDEのような感じでスケッチの書き込みウィンドウが立ち上がる。

続いてProcessing、Arduinoのスケッチをダウンロードする。九州工業大学のページにはダウンロードのアイコンがあるので、そこをクリックする。しかし・・・。
「サーバーへのリクエストは拡張機能によってブロックされています。」
という表示が出てダウンロードできない。
このメッセージで検索をして解決法を探した。その結果ブラウザの「Chromiumの設定」メニューから、「その他のツール」→「拡張機能」を選択すると、いくつかのアイコンが並んでいて、その一つ「uBlock Origin 1.15.2」の「有効」についているチェックを外すことでダウンロードができるようになった。

ダウンロードできない

uBlock Origin 1.15.2」の「有効」についているチェックを外す








後はダウンロードしたProcessing、Arduinoのそれぞれのスケッチを動かすだけだが、Processingでオシロスコープのスケッチを立ち上げた状態では、Arduinoのボード書き込みがエラーとなった。止めたらOKだったので、余計なプログラムは止めてボードの書き込みをする必要があるようだ。
arduinoを動作させていないと、この画面が出る

オシロスコープとして使うためには、Arduinoに若干の配線が必要のようだが、とりあえずPCの表示も含めて動きそうかどうかはボードを繋いだだけで確認できる。

使用環境
Raspberry Pai3 ModelB V1.2(Raspbian
Arduino UNO(互換品KumanUNO)、nano(互換品Elegoo) ボードバージョン1.6.20で使用。(1.6.21ではnanoへの書き込みがエラーになるため)

オシロスコープらしくする
Arduino Nanoをケースに入れ、BNCのコネクタをつけてみたのが下の写真。ケースは100円ショップにあったカードケース。測定用ケーブルはアマゾンから2本347円で購入した、先端がミノムシクリップになっているもの。(クリップは付替え)

ケースは105X75X30mmのカードケース
Arduinoで発生させたSin波形を測定中。
これは外部にDAコンバータをつけたもの。


実際に波形を表示させてみる
やはりArduinoでスケッチを作り、サイン波形を出力させたものを表示してみた。
Digital OUTを8ビット使い、抵抗で簡易にDAコンバートしたものである。
(詳細は別途)
1度ごとに計算しているので波形が階段状になっているのがわかる。
波形出力は0〜5Vだが、抵抗で1/2にして入力している。
デジタルオシロなので、波形がチラチラすることもない。アナログのオシロで同じ波形を見ると、周期が長いので画面がチラチラする。

スケッチの作りがよくないので、Sin波形の所々にヒゲが出ている。アナログのオシロだとヒゲはほとんど見えない。(出ていても輝度が薄くなってわからない)
サイン波形の周期は約67msとなっていて(10ms/div)、周波数にすると、約15Hzである。スケッチでいちいちSinθの計算をしつつ、D2〜D9に1ビットずつ順番に出力しているので、こんなに遅くなっている。
ArduinoでSin波形や三角波を出力させる方法は、外部にDAコンバータをつけるなど、もっといいやり方があると思う。(別途実験をしている)
ただ、実際に出力波形を測定に使うのであれば、プログラマブルオシレータなどの専用の発振器を使用するのが現実的。

2018年3月12日月曜日

AM2320で気温湿度を測定、128X32のOLEDで表示させる(複数のI2Cディバイス接続)

I2Cディバイス単独では動作するが、一緒に動かせない
それぞれスケッチ例などを参考に動かして問題ないことを確認したが、いざ一緒に動かそうとすると、うまくいかない。
どちらもI2Cでの通信なので、共存がうまくいかいような印象。

AM2320のスケッチを見ると、アドレスが0x5cとなっていて、
Wire.beginTransmission(am2321_I2C_adr);
Wire.write(0x00);
Wire.endTransmission();
のように、アドレス指定のあと、制御やデータ取得を行っている。
一方SSD1306を使用したOLEDディスプレーは、どのように制御しているのかがよくわからず、アドレス指定をどのようにしているのかが、はっきりしない。

アドレスもよくわからないが、類似品の128X64のOLEDディスプレーで、やはりSSD1306を制御チップに使っている製品は、秋月電子通商のページに0x3cとある。
テストスケッチで単独動作であればI2Cの競合がないので問題ないが、複数のI2Cディバイスを使う場合には問題になる。

原因は
SSD1306を使ったOLEDディスプレーのFAQのページを見ると、I2Cを一緒に使うと動作しないという質問があって、その回答を見ると、やはり競合が発生するようだ。
FAQのページ
https://github.com/olikraus/u8g2/blob/master/doc/faq.txt
以下は翻訳文
Q:xxx_SW_I2C()デバイスが他のI2Cデバイスと連携しないのはなぜですか?
A:SW_I2Cは、digitalWrite()でI2Cをエミュレートします。これは他と競合します
I2Cデバイスを同じピンに接続します。2つのオプションがあります。
(A)xxx_HW_I2C()または(B)xxx_SW_I2C()と異なるピンを使用する

スケッチのサンプルを見ると、大量のコンストラクタがあり、必要なものをアンコメントして選択するようになっている。
今回は制御チップがSSD1326で、表示画素数が128X32なので、対象になるのは
//U8X8_SSD1306_128X32_UNIVISION_SW_I2C u8x8(/* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);   // Adafruit Feather ESP8266/32u4 Boards + FeatherWing OLED

//U8X8_SSD1306_128X32_UNIVISION_SW_I2C u8x8(/* clock=*/ 21, /* data=*/ 20, /* reset=*/ U8X8_PIN_NONE);   // Adafruit Feather M0 Basic Proto + FeatherWing OLED

//U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);   // Adafruit ESP8266/32u4/ARM Boards + FeatherWing OLED

//U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE, /* clock=*/ SCL, /* data=*/ SDA);   // pin remapping with ESP8266 HW I2C
このいずれかである。

最初は一番上のSW_I2Cで、clock=SCL,data=SDAを選択して結果的にうまく動かなかったので、FAQに従い、SCLとSDAに異なるピンを割り当てるとすると、2番めのclock=21,data=20でも良さそうだ。しかし20,21の意味がわからなかったので(ピンNoかと思われるが)、結局4番目のHW_I2Cでclock=SCL,data=SDAを選択した。配線はそのままで、SCL,SDAにOLEDとセンサーをぶら下げている。

結果的にこれでOKとなったが、どういう理屈でうまく行ったのかはわからない。

出来上がったものは、AM2320で温度湿度を測定、OLEDに表示させて、最高・最低温度を内部のEEPROMに記録するもの。電源はスマホのチャージ用バッテリーが使える。

arduino nanoにOLEDのディスプレー、温湿度センサーをI2Cでつないだところ。
2つのスイッチは最高最低温度の選択用と、そのリセットスイッチ。


2018年3月4日日曜日

BME280で温度湿度気圧を測る(arduino UNO)

arduinoで温度を測ろうと考えた
よくあるパターンだが、スケッチの勉強としてはおもしろい。せっかくだから最高・最低温度くらいは記録できるようにしたいし、一定時間ごとの気温の変化をSDカードに記録するようなこともしてみたい。

そこで、アマゾンからBME280のモジュールを980円(税込み)で購入。どうせなら気圧も一緒に測れるのがいい、ということで欲張って買ったはいいが、買ってしまって大後悔。電圧が3.3Vだし、スケッチ例を見ると内容が膨大。精度はよさそうだが、とてもお手軽に使えるようなものではない印象。

まずは電圧変換
ともあれ動作テストぐらいはしないといけないので、まずは電圧変換のための「I2Cバス用双方向電圧レベル変換モジュール(FXMA2102)」を秋月電子通商から購入。(税込み200円)使い方が今ひとつよくわからなかったが、「FXMA2102による電圧レベル変換」というサイトがあったので、これに従って配線をする。
https://www.petitmonte.com/robot/howto_fxma2102.html

接続をする
購入したBME280モジュール自体の情報も、アマゾンの商品ページに、写真とともに回路図がある程度で、かなり心もとない。類似の商品がかなりあるが、少しずつ回路やピン配置が違っていたりして注意が必要。
仕方なく、秋月電子通商のBME280モジュールのページからマニュアルを参照、I2Cの接続方法を参考にしつつ配線をする。回路図を見ると、購入したモジュールにはSCL,SDAにプルアップの10kΩがすでについているので、電圧レベル変換モジュールの回路図にあるプルアップ抵抗は不要となる。(元々ついていないので、あえて追加する必要なしということ。)
BME280モジュールの回路図にある端子名称と、モジュール基板裏側に印刷されている名称が異なるので、戸惑わないようにしないといけないが、今回はI2C接続なので、基板に印刷されている名称のSCL、SDAに従ったほうがわかりやすい。
6ピンのSDOはオープンとするが、内部で10kΩでアースに接続されているため、I2Cのアドレスはデフォルトの0x76となる。(これも秋月のマニュアルに書いてある)
5ピンCSBも未使用なのでオープン。(内部でVDDにプルアップされている)

秋月電子通商のマニュアル(BME280モジュール)
http://akizukidenshi.com/download/ds/akizuki/AE-BME280_manu_v1.1.pdf
秋月電子通商のマニュアル(電圧レベル変換モジュール FXMA2102)
http://akizukidenshi.com/download/ds/akizuki/ae-fxma2102-web.pdf

アマゾンの商品ページから
(端子の名称と基板の名称は少し異なる)

基板の裏側には端子の名称が書かれている

arduino UNO(互換品)から3.3Vをセンサーモジュールに供給し、5VはVCCAに接続。電圧変換モジュールのOEをVCCAに5kΩでプルアップして配線完了。(OEは100kΩでアースに接続されているので、10kΩでもOK)

スケッチはスイッチサイエンスで購入ページに公開しているものをそのまま使用。一応I2Cのアドレスが0x76で間違いないことを確認する。

精度は?
動作に問題はなく、即温度、湿度、気圧がシリアルモニターに表示されるようになった。
BME280の仕様では、温度の精度は±1℃となっているが、手持ちの棒状温度計との比較では、十分その範囲内に入っているようだ。ただ、湿度は正確に測れるものがなく、乾湿計との比較ではかなり違いがある。市販のデジタル湿度計とは比較的近い値になっているので、たぶん問題はないだろうという程度しか評価できない。

気圧について、気象台のアメダスデータとの比較では、±1hpからは多少外れているようだが、実用上問題ないことは確か。
低気圧が近づいた時に記録した結果では、

アメダス(hp)     測定データ(hp)   差
991.8              990.32        -1.84
989.5              987.90        -1.60
986.5              984.83        -1.67
985.1              983.38        -1.72
984.2              982.41        -1.59
981.6              979.83        -1.77
981.3              979.72        -1.58
(気象台から5kmほどの距離で、室内で測定。)
配線が完了して測定中
棒状温度計との差はほとんどない

湿度の参考にした乾湿計
通常の温度計と、水で湿した温度計との温度差で湿度を測る

スイッチサイエンス公開スケッチ
https://github.com/SWITCHSCIENCE/BME280/tree/master/Arduino

なお、秋月電子通商さん、スイッチサイエンスさん、購入もしないでデータだけ頂きすみません。

2018年1月19日金曜日

ラズベリーパイ奮闘中(4)Arduino IDEインストール

Arduino IDEをインストールする
Raspberry Paiを買った理由の一つが、これでArduinoのスケッチを作りたいということだった。ラズパイが一通り使えるようになったので、早速Arduinoをインストールしてみる。

ブラウザからArduinoのホームページに行って
SOFTWARE → ARDUINO1.8.5の中にあるLinux ARM → JUST DOWNLOADをクリックしてダウンロードを行なう。

Linux ARMをクリック

2020.05.06追記 久しぶりにインストールしようとしたら、Linux ARMではなく、
Linux ARM 32 bits とLinux ARM 64 bitsの2つがある。Raspberry Pi 3BのCPUが64bitな
ので64bitを選びたくなるが、Raspbianが32bitだそうなのでLinux ARM 32 bitsを選択してダウンロードする。






ダウンロードホルダーを開いて、ダウンロードした圧縮ファイルを右クリックして「指定先にファイルを展開」を選択、適当なところ(わかりやすいディレクトリー)を指定して展開させる。

展開先を指定

展開したら、その中にあるinstall.shをダブルクリックし、「端末で実行する」をクリック、これでデスクトップにアイコンができてArduinoが使えるようになる。
install.shをダブルクリック

「端末で実行する」によりインストールされる
ブログによってはターミナルからコマンドでインストールする方法も紹介されているが、この方法が一番簡単なようだ。

Arduinoをつなぐ
ツールから接続したボードを確認することはもちろんだが、最初はツールからシリアルポートを選択して(WindowsのCOMではないので戸惑うが)チェックを入れることも必要。これをしておかないと、ボードに書き込みができずにエラーとなる。
その後は自動的にポートが選択されるようだ。
Raspberry Pai3 ModelBではACアダプタの容量が問題になり、速度低下や誤動作の原因になるようなことが書かれているので、Arduino UNO+シールドの電源をラズパイのUSBから供給することはちょっと心配だが、今の所問題なく動作中。いずれは電源付きのUSB分配器経由か、ArduinoにACアダプタをつけて動かそうかと思っている。
 
エディタのフォントを変えて見やすくする。
スケッチ作成では、標準フォント以外の、いろいろなフォントを試してみるのもおもしろいが、日本語の表示がうまくいくかどうかは要注意。
フォントによっては日本語の表示ができなかったり、日本語の表示とカーソルが一致しなかったり(倍角の日本語に対し、カーソルは半角で移動したこともある)するので、その場合はフォントを変更すれば直る。

フォントの変更は、ファイル → 環境設定 → 設定タブの下方にある、
「以下のファイルを直接編集すれば、より多くの設定を行うことができます。」の下のファイル(preferences.txt)を開き、
editor.font=Monospaced,plain,14
下線のフォント名を変えることで可能。使えるフォントはシステムに入っているものだけだが、システムメニューから、設定 → Add/Remove Software からフォントを見るとわかる。ほかのブログ等も参考にしながら、必要なら新しいフォントをインストールして使うこともできる。

インライン入力を有効にする
今回スケッチの作成で、日本語入力時インライン入力ができなくて困ったが、(外のウインドウに、入力したひらがなが表示され、確定で本文に反映される。)ネットで探していると、「インライン入力を有効にする」という記事があり、Arduino IDEではなかったが、Fcitxの設定だったのでやってみたところ、みごと解決した。
http://itlx.ldblog.jp/archives/52022575.html
(他の問題もそうだが、ネット上の情報には随分と助けられた。感謝。)

その手順は、
メニューの、設定 → Fcitx設定 → 入力メソッドの設定 → アドオンタブを開き、
左下の拡張にチェックを入れ、「Fcitx XIM Frontend  Provides XIM Support」 を探して左クリックするとウィンドウが立ち上がるので、その中にある「XIMでOn the spot スタイルを使う」にチェックを入れる。

チェックを入れてOKしたらシステムの再立ち上げ

OKして再立ち上げをするとインライン入力ができるようになる。

外部エディタを使う
IDEの、ファイル → 環境設定では、外部エディタを使用することができるようで、スケッチをより効率的に作成したい場合にはいいかもしれない。Linuxでは、カスタマイズが自由なエディタがいろいろとあるようで、メモや一般的文書ではなく、プログラムを書くために特化した機能が魅力的ではあるが、今の所カスタマイズまで理解が追いつかず、今後の課題。
ただ、Arduino IDEもよくできているので、大きな不満はない。

ラズベリーパイ奮闘中(3)日本語入力


日本語入力Mozcのインストール
Device PLUS「IT女子のラズベリーパイ入門奮闘記」第63回には日本語入力の方法が取り上げられている。これは、fcitx-mozcをインストールするものだが、日経Linux 2017年9月号特別付録「ラズパイマガジン ビギナーズ」には、似たようなものでibus-mozcをインストールする方法が載っている。
まずはfcitx-mozcのインストールを説明する。

Terminalからコマンド(sudo apt-get install fcitx-mozc)を打ち込む。

ちょっと時間がかかるが、うまくインストールできたようなら、終了後REBOOTすると、右上にキーボードマークのアイコンが出現、左クリックで日本語入力モードになる。
キーボードマークができた

日本語入力中 キーボードマークが変わっている

これはコマンド入力で実行したが、メニューの「設定」→「Add/Remove Software」からfcitx-mozcを探して追加しても同じ。

キーボードの「半角/全角 漢字」キーで日本語入力をON/OFFできるようにするには、右上のキーボードマークを右クリックし、(メインメニューから設定 → Fcitx設定でも同じ)
「設定」 → 「入力メソッドの設定」から、「全体の設定」タブ、その中の「入力メソッドのオン オフ」で右側の「Zenkakuhankaku」をクリックしてから「半角/全角 漢字」キーを押すと、切替ができるようになる。(画面にあるように、日本語入力のON/OFFは、Ctrl+Spaceでもできる。)
矢印のところに半角/全角キーを押して割り当てた結果


ちなみにMozcではマークを右クリックして、「Mozc ツール」から単語登録や手書きパレットも使うことができる。

これでブラウザーでの検索やテキストエディターでの文章入力が日本語でできるようになった。
以上は「IT女子のラズベリーパイ入門奮闘記」第63回にある通り実施したもの。

キーボードを日本語にする
この後キーボードが英語になっている(@とか:のキー位置が変わる)ことに気づいたので、調べたところ、
メニュー「設定」から「Fcitx設定」に行って、入力メソッドを見ると、「キーボード‐英語」が上にあるので、

追加(左下の+)で「キーボード‐日本語(OADG 109A)」を選択、(Windowsマシンのキーボードはこれ)最上段に移動させると正常になる。

以上の対処方法は、以下のブログから見つけた。
http://infinite-monkey.blog.jp/archives/11183195.html


さて、ibus-mozcをインストールする方法では、コマンドでも、メニューの、「設定」→「Add/Remove Software」からでも同じだが、インストールした時点で半角/全角キーで日本語入力の切替ができるようになっている。また、右上のキーボードマーク/日本語入力マークが、「あ」/「A」となっていて、異なり、入力メソッドの設定画面の構成も少し異なっている。fcitx-mozcで発生したような、英語キーボードに変わる現象はない。

日本語入力の基本的なところは両方とも変わらないようだ。(同じmozcだから?)
(なおibusと fcitxの違いは検索しても勉強不足で理解できなかった。)


このほかの日本語入力
Mozcではなく、Anthy という日本語入力もあるようなので、詳しくは
https://usortblog.com/raspberrypi3-4/
の「ゆうそうブログ」を参照。

ラズベリーパイ奮闘中(2)日本語表示


Raspbianは、イメージファイルなら、SDカードを差し込んで電源を入れるとすぐ立ち上がる。NOOBSからだと、インストールが終ってRaspbianが使えるようになるが、どちらも英語表記のままなので、日本語表記に変更しなくてはならない。
また、ネットからのダウンロードが必要になる場合もあるので、有線LANがあればいいが、無い場合は早めにWiFiの設定をしてネットに接続しておく。


日本語表記の設定のしかたは、NOOBSからRaspbianを立ち上げる場合と、イメージファイルをSDカードに書き込む場合とで若干作業が異なる。
ここではイメージファイルが書き込まれている状態からのやりかたを説明する。
以下の作業は、日経Linux 2017年9月号特別付録 「ラズパイマガジン ビギナーズ」を参考にした。


言語、国、地域の設定
立ち上がったRaspbianはメニューも全て英語表記である。
メニューのPreferencesからRaspberry Pai Configurationを選択、LocalisationタブにてLocate、Timezoneを設定する。
LocateではLanguageをja(Japanese)にする。(CountryがJP(Japan)になる)
Timezoneは、AreaをAsiaにし、LocationをTokyoにする。
ついでにKeyboardの設定も行なう。CountryをJapanとし、Variantは、よく分からないのでJapaneseを選択した。
WiFiの設定がこの後必要なので、WiFi CountryもJAPANに設定する。
設定が終ったらOKをクリックするとREBOOTするかどうかを尋ねられるので、ここでREBOOTをする。
立ち上がったRaspbianは、メニューが日本語になっている。右上の時刻もちゃんと合っている。

文字化け解消・WiFi設定
しかし、右上にあるCPUの稼働率を示すメーターの%表示が文字化けしてしまった。これはあとでフォントをインストールすることで解決するが、そのためにも、ダウンロードできるようにWiFiを設定しよう。
右上にあるWiFiアイコンを左クリックすると使えるWiFiの一覧が出るので、選択して自宅にあるルーターなどのキーNoを入力すればすぐにつながる。この辺はスマホと同じで簡単。これでネットからのダウンロードが可能になり、ブラウザも日本語表示で見られるようになった。(日本語入力はまだできないが)

フォントのダウンロード
ここで右上のCPU稼働率メーターの数字を正常にするために、フォントをインストールする。
やりかたは2通りで、コマンドでインストールする方法と、メニューからインストールする方法がある。

1)メニューからインストール
メニュー → 設定 → Add/Remove Software
ここで必要なソフトを選択してダウンロードするようだが、フォントはあまりに多くあるので検索を利用、fonts-vlgothicを探す。
見つかったらチェックをつけてApplyをクリック、パスワードを聞かれるので初期のパスワードraspberryを入力する。

2)コマンドでインストール
左上のLX Terminalをクリック、ターミナルウインドウが開くので、ここで次のコマンドを入力する
sudo apt-get install fonts-vlgothic
コメントがパラパラ出て作業終了。

この2つのやりかたは結局同じことで、2)のコマンドでインストールしたあとに1)のようにfonts-vlgothicを探すと、箱が開いていて、インストールされていることが分かる。

ここでShutdownメニューからREBOOTする。立ち上がると右上のCPU稼働率表示が正常になっている。

なぜこのフォントをインストールすると表示が正常になるかは不明。「日本語表示」で検索すると、いろいろな人がブログを書いていて、フォントのインストールが必要ということらしく、その中にあったフォントがfonts-vlgothicで、試したらOKだったというだけ。

なおネットにもつながったことなので、以下のコマンドをターミナルから入力してRaspbianを最新の状態にしておいたほうがよさそうだ。

sudo apt-get update    (パッケージのリストをサーバーから入手する)
sudo apt-get upgrade   (システムにインストールされているパッケージをアップデートする)

この後は日本語入力ができるように設定する。



INA219にはまる

 INA219電流センサーの互換品を買う。 互換品 オリジナル Adafruit Industries(エイダフルート) 商品レビューで評判が良くない。不良品が多すぎるという。 とはいえ全体の購入者数からすれば一部の人の評価だろうから、まあ大丈夫だろうと買う。 オリジナルの値段の...