Miho's Memory

組込みとアートとまぜまぜ

はじめての F (⋈◍>◡<◍)。✧♡ ~ ソフトウェア編 ~

はじめての F (⋈◍>◡<◍)。✧♡
        ~ ソフトウェア編 ~

さ.

ここからは,『はじめての F (⋈◍>◡<◍)。✧♡ ~ ハードウェア編 ~』で作った基板を用いて,FRAM のデバイスIDを読みだしてみましょう(^^♪

サンプルプログラムやライブラリは Toyomasa Watarai さんが作られものを使います(^^♪

そして今回は mbed 環境で行っていくので,皆さん mbed へのユーザ登録は済ませておいてくださいね ^^

Watarai さんのプログラムたちはここ↓↓にいます.

https://developer.mbed.org/users/MACRUM/activity/

じゃまずは SPI から ^^#

Fujitsu SPI FRAM MB85RSxx を探して ↓↓ クリック ^^#

https://developer.mbed.org/components/Fujitsu-SPI-FRAM-MB85RSxx/

すると 下のような画面に飛びます(びゅん

f:id:MihoN:20170505112318p:plain

ここでは『Hello World』と『Library』の2つが見えてきます.
今回は『Hello World』のほうを選びましょう.


すると 下のような画面に飛びます(びゅん

f:id:MihoN:20170505112310p:plain

Home タブを見ると,

- MB85RSxx_SPI.lib
- main.cpp
- mbed.bld

main.cpp が 見えます.main を書いてくれてそう(^^♪
これはらくちんです ^^# そのまんま 自分のとこにもってきたら動きそう♬ 

Web 画面の 右上のこんな オレンジのボタン を見つけたらクリック!

f:id:MihoN:20170505112701p:plain

すると mbed Compiler Workspace Management につながり
下のような画面がでてきます.

f:id:MihoN:20170505112952p:plain

main.cpp ファイルはすでに用意してくれてるので,Program  を Import  で大丈夫!
Import Name などは自分がわかりやすいものに変更してネ ^^

自分のところにもってこれましたか? ^^# こんな感じ.

f:id:MihoN:20170505114025p:plain

プログラムワークスペース に import してきたプログラムが確認できます.
画面の右上では 現在のターゲットボード が確認できます.

続けてコンパイルしちゃいましょ.画面上の『コンパイル』ボタンを ぽちっとな(^^♪

f:id:MihoN:20170505114010p:plain

Success! という表示が見え,〇×△.bin というファイルが ダウンロードされたら おっけー (^_-)-☆

いよいよ実行してみましょう(^^♪ ハードウェア編で作成した基板に刺した,LPC1768 の miniUSB のポートと,パソコンの USB ポートをケーブルで接続します.
すると,大容量デバイス として mbed 見えてきましたか? ^^# 

f:id:MihoN:20170505115532p:plain

サンプルプログラムは FRAM の デバイスID がターミナルに吐き出されるプログラムです.なのでターミナルソフトを用意して!わたしはいつも TeraTerm ^^#

そしたら,デバイスマネージャで COM ポート を確認して!

あれっ?!COMポート で見えてこない...

そーなんです!これだけでは ダメ なんです!

Windows serial configuration をインストー

します! ここ ↓↓

https://developer.mbed.org/handbook/Windows-serial-configuration

windows10 でも問題なくインストールできます!

f:id:MihoN:20170501140020p:plain
でも

注意が ひとつ!!

基板とパソコンが繋がれた状態で Windows serial configuration をインストールしてください!そうじゃないとドライバーがインストールされません!!

そうするとどうでしょう!COMポート 見えてきましたか? ^^#

f:id:MihoN:20170501131726p:plain

そしたら,TeraTerm を起動します.

f:id:MihoN:20170501135517p:plain

さっき確認した シリアルポート になっていることを確認してね.
そして OK !

f:id:MihoN:20170501135602p:plain

ボー・レート を 115200 に設定!

f:id:MihoN:20170501135701p:plain

改行コードの 受信 を AUTO にします!

LPC1768 の 真ん中のおへそ(リセットボタン)をおして見てね!

f:id:MihoN:20170501135856p:plain

どう?デバイスID や メモリの中身 見えてきたかな?^^#

ひとまずこれで完成です ^^#

I2C も同様にやってみてね! ^^#

Fujitsu I2C FRAM MB85RCxx

https://developer.mbed.org/components/Fujitsu-I2C-FRAM-MB85RCxx/

 

でわでわ ここで ソフトウェア編 おわりー ^^#

読んでくれてありがとう(^^♪ 

 

はじめての F (⋈◍>◡<◍)。✧♡ ~ ハードウェア編 ~

はじめての F (⋈◍>◡<◍)。✧♡
        ~ ハードウェア編 ~

F ?

エフ? F が付くものって...

日本人なら,まず Fuji !Mt. Fuji !
ほかには??
FUJIYAMA ! ...  富士急ハイランドの絶叫マシンね.
Fukuya ! ... あー明太子やさんね...

F と言えば,FRAM!
今回は FRAM mbed 環境で使ってみましょう (^^♪ 
の まずはハードウェア編.

今回は,FRAM を mbed マイコンに繋げる基板から作ってみましょう♪

f:id:MihoN:20170426204608j:plain

■ 用意するものっ

・mbed NXP LPC1768
・ピンソケット(メス)20P 2個:mbed 抜き差しできる用
・両面スルーホール・ガラス・ユニバーサル基板 Bタイプ
    http://akizukidenshi.com/catalog/g/gP-03232/
・SOP8 DIP 変換基板 金フラッシュ(9枚入り)
    http://akizukidenshi.com/catalog/g/gP-05154/
・丸ピンICソケット(8P)
    http://akizukidenshi.com/catalog/g/gP-00035/
・連結ソケット(両端オスピン)8P 
    http://akizukidenshi.com/catalog/g/gP-00264/
・FRAM(SPI,I2C)
・ハンダメッキ線(電源周りの配線に使用)or 部品の足 ^^
・ジュンフロン線(0.12mm) or UEW線
・電源用パスコンコンデンサ 0.1uF(RPER11H104K2K1A01B)2本
・抵抗 プルアップのため 2.2kΩ 2本

 

★ 写真も載せとこ (^_-)-☆

*ユニバーサル基板

f:id:MihoN:20170424233106j:plain

*SOP8 DIP 変換基板

f:id:MihoN:20170424233224j:plainf:id:MihoN:20170424233235j:plain

*丸ピンICソケット(8P)

      f:id:MihoN:20170424233358j:plain          f:id:MihoN:20170424233421j:plain

*連結ソケット(両端オスピン)8P

    f:id:MihoN:20170424233629j:plain   f:id:MihoN:20170424234557j:plain

*FRAM

f:id:MihoN:20170426211052p:plain

今回は
SPI インターフェースの MB85RS64V ,MB85RS2MT
I2C インターフェースの MB85RC256V ,MB85RC1MT 
を用意したよ ^^

ちょっとまったぁ~ FRAM ってなになに?

FRAM は Ferroelectric Access Memory のこと.電源を切ってもデータが消えない不揮発性メモリです.不揮発性メモリと言えば,EEPROM .そう EEPROM も不揮発性メモリ.でもこの子はデータの書き込みに少し時間がかかるんです.なので,瞬停時などは,この子がデータを書き終えるまでの時間を保障するために,キャパシタなどを用意しておきます.データも消去してから書くのも時間がかかる理由の一つ.
でも FRAM は ” 目にも止まらぬ早業 ”(なんかこんな歌あった で,データを書けちゃうんです(ns)^^*
データを書くスピードが速いメモリとして有名なのは SRAM ^^
でもこの子は電池がないと生きていけないんです...
そしてこの FRAM データ容量は 4Mb ! バイトじゃないんです.bit です.
4Mbit 単位は bit になります.ちっぽけw と思うかもしれませんが,それは使い方次第!
FRAM のデータ書換え回数はなんと 10兆回 !
10兆円と聞くとその大きさを誰でも感じる.そう,一生生きてられるんじゃね?というくらい限りなく無制限に近い書換え回数なんです.
GPS のログやレジューム機能の実現のため,電力系統が不安定な場所でのデータ保持などに使用されます.
あんまり長々話すのもなんなんで,FRAM を mbed 環境で動かしてみましょう (^^♪

まず,基板作りから!

いち.FRAM の場所と LPC1768 をザックぶっさす場所を作ってあげよう! 

FRAM の場所は,丸ピンICソケットになります ^^
SPI の場所と I2C の場所を作ります.
ソケットの向きに注意して!今回はうえっかわきを SPI に,したっかわきを I2C の場所にします.

LPC1768 用にはピンソケット(メス)20P を用意します.
わたしはおうちにあった,パキパキ折れるやつを使うことにしました.
でも折るときだいたいうまくいかないので,ここはひとつ思い切って 21番目 のピンをつぶしちゃいましょう♬

21番目をニッパで真っ二つw すると20番目は絶対きれいに残ります ^^v
ニッパでやるとき押さえておかないと,パキィーーーーン って飛んでいきます.
目に飛び込んでもまずいのでちゃんと押さえておきましょう ^^*

では,ユニバーサル基板にハンダします.
両面スルーホールのユニバーサル基板は,ハンダが吸い込まれるように下に流れます.
ついついやりすぎると表面に モリッ .気を付けて!
端っこを少しのハンダで仮止め.ソケットが斜めってたら,ハンダコテで溶かしながらまっすぐに整えます ^^

今回は SPI FRAM と I2C FRAM を LPC1768 に配線することをあらかじめ考えてて,下のような感じで,配置しました.

f:id:MihoN:20170426222759p:plain

に.配線していこう!
電源周りにはハンダメッキ線を.信号線には細めのジュンフロン線を使います.

f:id:MihoN:20170501135049p:plain

今回 FRAM を直接ユニバーサル基板にハンダはしてないよ ^^
SOP8 DIP 変換基板をつかってます.
この変換基板よくできてる!FRAM は横向いてるけど,基板の配線で一番ピンが図でいう右下になるようになってるのね ^^

f:id:MihoN:20170501111911p:plain

これでハードウェア編はおわり~ 次はいよいよ FRAM のデバイスIDをmbed環境で読みだしてみよう(^^♪

サンプルプログラムやライブラリは Toyomasa Watarai さんが作られたものをそのまんま使っちゃいます!!

使い方は,ソフトウェア編 にて ^^#

そうだっ.連結ソケットの飛び出してるピンは パチンパチン と切っておきましょう.
なんかの拍子にひん曲がって,ショートなんてしちゃったら大変だよん ^^*

 

 

 

 

 

 

 

Part of Miho's Memory

こないだひっさしぶりにフラワーアレンジメントした ^^*

気分よくなったので,せっかくだから今までの想い出の一部をここに綴ろう ^^#

★ 組み込みマイコン技術科の新規立ち上げ
           ~ 全国のカリキュラムモデルに! ~

『くみこみ』って漢字で書くと『組込み』『組み込み』『組込』がある.
みんなはどれが好きですか?
わたしは『組み込み』がすき ^^#
だって,ハードウェアにソフトウェアという魂が ”入り込み”
そして ”組み込まれた” ものが組み込み製品でしょ ^^
『組み』と『込む』が感じられる『組み込み』って漢字がわたしはすき ^^*
そして『組み込みマイコン技術科』を立ち上げた.

当時は ガラケー が主流.マイナスドライバー1本で分解して,
パワーポイントの機能だけを使って,学科説明用の案内チラシ創ったなぁ(笑)

f:id:MihoN:20170424213133p:plain

いろんなところで講演や授業やらせてもらったなぁ ^^#

★ Interface誌 執筆

2007年10月 Interface誌共同執筆 いい経験させてもらったぁ💛

f:id:MihoN:20170424221517j:plain

★ 小4の男の子とLED信号について勉強した ^^#

信号機も車のテールランプも家の中にもLEDがやってきた.
小4の男の子が『LED信号』と言ったもんだから一緒に勉強した(笑)
その時創った工作がこれ ↓↓

f:id:MihoN:20170424213839j:plain

電球の信号機は夕方になるとどれが着いてるのかわかりにくくなる(疑似点灯).
けどLED信号機だとはっきりするね!
長持ちだしいいことも(^^♪
でも,電気交換のお仕事や,発熱の違いで雪国での信号機の上の雪が溶けにくいとか
LEDでちょっと悪くなることもあったね.

★ 小5の男の子が大好きな電車の遮断機を創ってみた ^^#

使ったものは,LEGOブロック,電池ボックス,ブザーと少々の電子部品.
マルチバイブレーターの回路を作ったね ^^
マブチモーターにつなぐ電池の + と - をつなぎ変えると反対に回ったね ^^
マブチモーターの回転が速いから,ギヤかまして回転を調整したね ^^
回路の中にブザー挟むと,なんだか遮断機が下りるときの音みたいに聴こえたね ^^

f:id:MihoN:20170424214504j:plain

市の 科学展覧会 出展に推薦されたね!

★ 小6の男の子が大好きな走る電車を創ってみた ^^#

LEGO MINDSTORMS と LEGO 電車を使って,電車が近づくと遮断機が下りたり,
電車が通り過ぎると遮断機が上がるっての創ったね ^^*
プログラミングも初めてしたし,いろんなセンサー使ったね ^^

f:id:MihoN:20170424214940j:plain    f:id:MihoN:20170424215008j:plain

f:id:MihoN:20170424215125j:plain     

f:id:MihoN:20170424215154j:plain     f:id:MihoN:20170424215230j:plain

★ ET2013 ET Award 受賞!!

Ruby のモックも創ったね!はしっこにちょこんと...(笑)
Ruby絡みで講演,プレゼンテーター,2016年はまつもとゆきひろさんと壇上で向かい合って椅子に座って,まつもとさんへのインタビューアーもさせてもらったなぁ ^^#
めっちゃたのしかったなぁ ^^#

www.kumikomi.net

★ 母の日 & クリスマスリース の数々 ^^#

キティちゃん (⋈◍>◡<◍)。✧♡
カーネーションで創るんです.

f:id:MihoN:20170424215711j:plain

f:id:MihoN:20170424215730j:plain

f:id:MihoN:20170424215804j:plain

f:id:MihoN:20170424215822j:plain

f:id:MihoN:20170424215837j:plain

くまちゃん (⋈◍>◡<◍)。✧♡
これもカーネーションで創るんです.

f:id:MihoN:20170424215940j:plain

リース (⋈◍>◡<◍)。✧♡

LED は電子工作!リースの中に埋めたった(笑)

f:id:MihoN:20170424224003j:plain

★ ヴァイオリン製作 (⋈◍>◡<◍)。✧♡

大人の事情で今は製作ストップちう...

f:id:MihoN:20170424220700j:plain

VFD時計 ^^#

みよ!

f:id:MihoN:20170424220804j:plain

f:id:MihoN:20170424220818j:plain

★ Interface誌 これで2回目 ^^

ほんとは別特集に入る予定やったのに,担当者が...

f:id:MihoN:20170424221652j:plain

★ IoT ハッカソン2015(第1回)

らぴろんを着飾って,Azure につないで人と会話 (*^▽^*)
そして知りたい場所のお天気を教えてくれます!
あるじが留守の時,どろぼうが来ようものなら,ミサイルをぶっ放す!(笑)
こんときは RasPiB と RasPi 2 を使用.

f:id:MihoN:20170424221947j:plain

TOPPERSアプリケーションコンテスト優勝 (#^^#)

これはブログに書いてるからブログを見てね!
TOPPERSPSoC(Cyprss社)にポーティング.
Cypress は記事を PSoC Creator(開発環境)の TOP に
掲載してくれた (⋈◍>◡<◍)。✧♡
世界中のユーザに配信された (⋈◍>◡<◍)。✧♡

f:id:MihoN:20170424222549p:plain

ARM の blog にも載った ↓↓  (⋈◍>◡<◍)。✧♡
記事も英語 (⋈◍>◡<◍)。✧♡

community.arm.com

f:id:MihoN:20170424223011p:plain

 ★ すっげーかっこいい電子工作とお花の合体 (^^♪

f:id:MihoN:20170424223320j:plain

 f:id:MihoN:20170424223715j:plain

今は 2017年.これからはどんな想い出がたまるかな (*^▽^*)

 

人工知能を使ってみる ~Google API & docomo雑談会話 & Open JTalk~ よん

さん のつぎの よん(いちお 最後ということにする)

さてここからは

音声認識』『雑談会話』『音声合成

をしてみます ^^#

最初に言っておきます.いち で紹介した本をもとに
動かなかったとこメモ的にブログに残しているので
ここからは特に大まかなことしかかけません (><) 

音声認識

今回は Google Speech API を使います.

その前に何かとよく聞く

SaaS』『PaaS』『IaaS』ってのを自分メモで残しとくです ^^#

SaaS

Software as a Service の略 で サース.
必要な機能を必要な分だけサービスとして利用できるようにしたソフトウェア,
もしくはその提供形態のこと.一般的にはインターネット経由で必要な機能を利用する仕組み(Wikipedia より).
” データをインターネットに保存できる!”
” パソコン,スマホタブレットなど端末を選ばずデータにアクセスできる!”
” 風数の人が同一データを共有して,さらに編集もできちゃう!”
Google Apps や Salseforce はこのサービスに属する.

■ PaaS

Platform as a Service の略で パース とか パーズ.
ソフトウェアを構築および稼働させるための土台となるプラットフォームを,
インターネット経由のサービスとして提供する.
開発者は,プラットフォーム上で構築したサービスを自分の顧客に提供
することができる.具体的には,インフラ,DBMSユーザインタフェース
などのシステム開発手段となるツールや,開発したシステムを運用するための
環境をインターネットを通じて「サービス」として提供し,
月額使用料などの形で収入をえる事業モデル(Wikipedia より).
Google App EngineMicrosoft Azure はこのサービスに属する.

■ IaaS

Infrastructure as a Service の略で 呼び名はまだない.
どうもどう呼ぶかは定まってないようだ.そこで イアース にした ^^#
IaaS は,インターネットを利用したコンピュータの利用形態.
IaaS では,コンピュータシステムを構築および稼働させるための
基盤(仮想マシンやネットワークなどのインフラ)そのものを,
インターネット経由のサービスとして提供する.
IaaS はクラウドコンピューティングサービスの1種類(または1要素)
として SaaS や PaaS に並ぶものとされ,PaaS の発展系ともされる.
IaaS は当初は HaaS(Hardware as a Service)とも呼ばれていた.
ただし HaaS は単なるハードウェアリソース(ハードディスクなど)の,
インターネット経由のサービスとしての提供とされる場合もある
Wikipedia より).
Google Compute Engine や Amazon Elastic Compute Cloud(EC2)が
このサービスに属する.

じゃここから本題にもどろっと

1. google chrome dev group に加入し Google API キーを取得しよう(^^♪

Google Speech API を使うには Google API キーが必要で,
それを取得するためには,” google chrome dev group ” への加入が必要です.

これに関しては多くの方がネットで紹介もしてるから
それを参考にしちゃおう♪
本にも手順は丁寧に書かれてます ^^

Google Speech API の処理結果は JSON データフォーマット形式
で返されるんですね.
最初は『ん?』と思ったけど,比較的わかりやすい構造だ.

2. 音声ファイル(.flac)をクラウドにあげ,
        音声としてどう認識されたか確認する(^^♪

ここでは本のサンプルをそのまま使ってみるです.
音声ファイル(hello.flac)は とっても高音なロボットな感じの音声で,
『こんにちは』って言っています.
そのサンプルを実行すると...

f:id:MihoN:20170316212831p:plain

ぜんぜん『こんにちは』ちゃうよん...
なんど試してもダメ...

そこで考えたw

A. 自分の声でこんにちはの音声ファイルを作ってそれで実行しよう!
B. その辺にある .wav ファイル食わせられるかな.

よし A. でやってみよう!
そこで,こないだの ” あっちむいてほいっ♪ ” で使った
Audacity を使えば flac 音声を作れそうなのでそれを使って自分の声を
録音しよう!
としたら思い出した.この本のなかで,音声入力 の実行のとき,
RasPi のマイクに向かってしゃべって録音する(.flac
Python プログラムがあったぞと.
ということで,その Python プログラムを実行して,
自分の声の こんにちは を flac ファイルで用意した.
そしてプログラム内のファイル指定箇所を変更.んで,実行.

f:id:MihoN:20170316213853p:plain

わぁーい (⋈◍>◡<◍)。✧♡ こんどはちゃんと『こんにちは』になったよ!

ということで,本で用意されている『こんにちは』の .flac ではうまく動かないのは
なんでかよくわからんけど,Google Speech API がうまく認識してくれないみたいw

まあ,みほの声のほうが美しかったんだ ^^# そう思うことにした ♬

で,” B. の .wav ファイル食うかな ” は,やってないのでわからない(笑)

まぁ,言えることは,本もそうだけど,人の作ったプログラムなんかで
動かなくても,置き換えれるファイルがあったら置き換えてみたり,
ファイル名を変えてみたり,短くしてみたり,環境が違うと動かないことも
あるのでなんかやってみたら動くこともあるよん ^^*

” 雑談会話 ”

つぎは,こっちが何か話しかけたら,それにほぼほぼイケてる内容で
返事を返してくれる状況を作ってみよう♬

ここでは docomo 雑談会話 API を使います.

1. docomo Developer support サイトで新規登録してログインしよう

2. API 利用申請をして docomo API キーを取得します

詳しくは,ネットで紹介されているサイトや本を参考にしよう!

さてさて,本のサンプルは『こんにちは』と話しかけてる.
雑談 API からの返事は? ^^# わくわく

こんにちは!

f:id:MihoN:20170316233900p:plain

は,” はろー ” って返ってきた...
んじゃもう一回w

f:id:MihoN:20170316233949p:plain

” こんにちはです ” ?? あなたはどこの方ですか?(笑)
愛嬌があっておもしろい(笑)

音声合成

Open JTalk を日本語音声合成に使おう!

1. Open JTalk のインストールをやりましょう♬

    sudo apt-get install open-jtalk

2. 辞書ファイルをインストールしよう(^^♪

    sudo apt-get install open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001

音声入力単発テストは ” に ” でやった.
音声がテキストになり,そのテキストに対し対話するひとつひとつは
テストは,ここ ” さん ” でできた.
いよいよ合体させて流しましょう♬

音声認識 ” ” 雑談会話 ” ” 音声合成 ” をくみあわせましょう♬

本のサンプルを流します.
お腹が空いていたので『お腹すいた』と話しかけてみた.

こんな感じ(笑) 結果その いち

f:id:MihoN:20170318114952p:plain

『お腹すくのね?』と聞かれました(笑)
(お腹はすくんですよ...お腹がすくのは元気な証拠なのよ ^^;
   そういうあなたもお腹すいてるのね(笑))

なんかほのぼのします(笑)

何食べようか悩んでいたので『何食べよう』と話しかけてみた.

結果その に

f:id:MihoN:20170318115316p:plain

急になにか思い出されたようです(笑)
そうなんだ!それは知らなかったよ!教えてくれてありがとう 💛

突然話が方向転換するのは,わたしに似ているかもしれません(笑)
わたしにはわたしに似たロボットがつくのでしょうか(笑)

わたしはできた人なので,相手に合わせることにした.
『(池は防災もかねてるんだ!)安心だね!』と話しかけてみた.

結果その さん

f:id:MihoN:20170318115549p:plain

『安心は早い』とのことです.
そうだね!安心できることはいいよね.
どんなことも,なかなか安心できないより,早く安心できるのはうれしいね ^^#
見えない相手はきっとこういうことが言いたかったんだとおもうんです(笑)

相手の言いたかったことはこうだろうと,相手を思いやる気持ちが芽生えました ^^#

---  お腹すいたので パン をたべる お腹5分目 ---

みほは軽くたべた(まだ足りないけど(笑))ので,
見えない相手ともう一度話してみた ^^

みほ:『おなかすいた!』

再び会話 いち

f:id:MihoN:20170318120846p:plain

あいて:『みーとぅー』

きみは ハーフ ??わたし英語を勉強しなきゃだからあなたに会えてうれしいよ!

意外な対応がちょっとおどろき&面白かったので(笑)
『おもしろいね ^^』と返してみた.

再び会話 に

f:id:MihoN:20170318121049p:plain

『 w... 』

たまらんち(笑)

 

ということで,一通り ” 会話しあう ” を体験するのにはわかりやすくいい本だと思う ^^

次は Arduino Uno をつかって,てづくりの会話ロボを作ろう!です.
これはまだやってないし,内容によっては blog にはしないかもです.

昔やった Azure つかった,お天気つぶやきからの~お留守番ロボ を
もう一度やってみて blog に残しておきたいし...

いったんここで 一本締め ということにしときましょ.
読んでくれてありがとうございました (⋈◍>◡<◍)。✧♡

人工知能を使ってみる ~Google API & docomo雑談会話 & Open JTalk~ さん

に のつづきの さん

音声入力をやってみよう (^^♪

RasPi に マイク や イヤホン を刺しておいてね!

こんな感じ ^^# くまを置いておくとうまくいくよ(嘘w

f:id:MihoN:20170315211214j:plain

ここからは ターミナル 画面にコマンド入力で進みます.
そして本の通りで一部うまくいかなかったので,そこんとこは
あーしてみたり,こーしてみたりしました(笑)
ひとりごと:
    NOOBS のダウンロード時期も違うし,Raspbian のバージョンだって
    違うだろうし.
    だから微妙に環境は違うだろうからしかたないんだよね ^^
    でもこの本の Python プログラムは動いてるからとってもいい感じ♪

で,今回のあーしてみたり,こーしてみたりだけど,
画面コピーとってなくてメモだけ残してたので
ここでもメモで進みます.
それ以外はなるだけ ターミナル 画面をつけますよ!

# ここからは ターミナル 画面で操作だよ(^^♪

マイクが USBデバイス として認識されてるかチェック!
ターミナル 画面で lsusb って打ちます

f:id:MihoN:20170315213140p:plain

 C-Media ってのが見えればオッケー☆⌒d(´∀`)ノ

 さてさて,今回使用する音声データフォーマットですが,

FLAC

ってのを使います.

音声入力コマンド

sox ライブラリの rec コマンド

を使います.

ってことで 音声処理ライブラリ sox のインストールをしましょ♪

f:id:MihoN:20170315225934p:plain

インストールできたかな?

次は音声入出力のカード番号を確認します.
RasPi では,1つの音声入出力機器を1枚の『カード』として管理をするようです.
そこで,今回刺したマイクのカード番号を確認してみましょう.
マイクのカード番号は音声入力の際に必要です ^^#

f:id:MihoN:20170315230533p:plain

今回の音声の入力は『カード1』のようです.

次に,音声出力(再生)のための音声出力機器のカード番号を確認しましょう♪

f:id:MihoN:20170315231430p:plain

今回 RasPi 3.5mm ミニジャックの音声出力は『カード0』のようです.

マイクとイヤホンの状況はわかったので 音声入力音量の設定 をやりましょう(本)
amixer -c1 sset Mic,1 16 は『カード1の音声入力の音量を最大に』
16は音声入力の最大を示すらしい...

f:id:MihoN:20170315232419p:plain

でもこのコマンドを実行するが,以下のような内容が表示され音量を変えることができない がーんw(みほはね.できなかったw).

amixer : Unable to find simple control 'Mic',1


そこであきらめずやった手順が ここから
※ amixer ... がうまく動いた人はそのままでいいよ

1. USB マイクの優先度をあげてみよう!

現在の状況はこう

f:id:MihoN:20170315233459p:plain

USB マイクの優先度をあげてみる
そのために /etc/modprobe.d/alsa-base.comf ファイルの中身を書き換えよう!
ん? alsa-base.conf ファイルが存在しないww
そこで,vi コマンド( sudo vi alsa-base.conf )で
/etc/modprobe.d/ の下に,新規ファイル( alsa-base.conf )をつくって
3行ほど内容を記述した.

それがこれ

f:id:MihoN:20170315234536p:plain

※ cat コマンドはファイルの中身を見るコマンド

2. RasPi を リブート/再起動

3. USBマイクの優先度を確認してみる

1. のときは snd_usb_audio は下にあったけど,
今は上になって,順番が入れ替わっているはず

4. 音声入力のカード番号の確認

arecord -l コマンドを実行する.
ずっと上でやっったときは,音声入力カード番号は 1 やった.
でも今は 0 になっているはず.

5. 音声入力音量の設定に再チャレンジ

ターミナルで amixer sset Mic 16 -c 0 を実行
※ カード番号 0 だから -c のうしろのも 0

すると

Mono : Capture 16 [26%] [-0.13db] [on]

になった!
だけど 26% は低すぎる.100% にしたいので,ターミナルから

amixer sset Mic 62 -c 0

を実行.
すると

Mono : Capture 62 [100%] [22.50db] [on]

になった!!

6. /etc/modporobe.d の下に作った alsa-base.conf を削除する

これから本に付属のサンプルプログラムをとりあえず動かそうと考えてる.
そのとき,プログラムの中身は確認してないけど,カード番号とかが
書かれてたらその都度書き換えないかんしいややな.
音量調整はできたことやし,USBマイクの優先度を本と同じにしとこ!
ということで,

/etc/modprobe.d の下に作った alsa-base.conf を削除した ^^

7. USBマイクの優先度の確認

cat /proc/asound/modules
を実行すると 1. のときのように snd_usb_audio は 1 になり,
arecord -l
を実行すると,ずっと上で確認したように『カード1』に戻った

f:id:MihoN:20170316001032p:plain

8. 音声入力音量の設定

amixer sset Mic 62 -c 1
をやってみた

f:id:MihoN:20170316001222p:plain

実行できる.
もしかして...
本は
amixer -c1 sset Mic,1 16
で,みほは
amixer sset Mic 62 -c 1
もしかして...
1-7 の手順をやんなくても,音声入力音量の設定のときに
amixer sset Mic 62 -c 1 でやってたら動いてたのかな...
でもいまとなってはそれはわからない ^^;

ここまで

 

一件落着したので次は 再生音量の設定

f:id:MihoN:20170316005632p:plain

イヤホン3.5mmを強制的に出力先に設定

f:id:MihoN:20170316005828p:plain

ここからは FLAC 音声ファイル(本のサンプル)がある前提

FLACファイルの再生

f:id:MihoN:20170316010114p:plain

 聞こえる ^^#

マイクからの音声録音

f:id:MihoN:20170316010418p:plain

録音したのを聞いてみよう

f:id:MihoN:20170316010534p:plain

ということで,ここまでで FLAC 音声ファイルの再生と
マイクからの録音ができるようになりました ^^*
次は Google API を使って 音声認識 ^^
次回からは自分のメモ書き blog になりそうw

ばいばーい(^^♪

人工知能を使ってみる ~Google API & docomo雑談会話 & Open JTalk~ に

いち の つづきの に

さぁてここから『音声認識』していこう♪ と思ってたのですが,
その前にリモートで RasPi にログインする方法を確認しておきましょう♪
いわゆる SSH とかっていうやつです.

なんだか 2016/11/25 から
そのまんまでは SSH ができなくなっているようです

リリースノートを確認すると...

http://downloads.raspberrypi.org/raspbian/release_notes.txt

2016-11-25:
  * SSH disabled by default; can be enabled by creating a file with name "ssh" in boot partition
  * Prompt for password change at boot when SSH enabled with default password unchanged

というのが確認できます.

そこで,ターミナル で /boot の下まで移動して(cd /boot)

/boot の下で

sudo touch ssh

をすると,SSH ができるようになります ^^#
パソコンから TeraTerm などを使って,RasPi にリモートログイン
できるようになりました(⋈◍>◡<◍)。✧♡

たぶん,RasPi の GUI からのこの画面からでも OK なのかな...
やってないからわからない...けどたぶん大丈夫?
この画面で ssh ファイルを作ればきっと同じ.

f:id:MihoN:20170313220736p:plain

ちなみに,みほは コマンド でやった.


次はこの画面(RasPi)↓↓ みてみて.こんな確認できた.
(元は見てなかったのでしらないけど ^^; たまたま開いて知った(笑))

f:id:MihoN:20170313220942p:plain

 ということで,キリがいいのでここまで(笑)
次で音声入力に進みましょ♪
次の音声入力も一部本のようにはいかなかったので,
みほがうまくいったやり方を書いていきます ^^#

ばいばい (^^♪ 

あ.そうそう
ターミナルで cd /boot したあと,
もう一度ホームディレクトリに戻りたいときは cd だけ打ては戻れるよ(^^♪

f:id:MihoN:20170315212015p:plain

人工知能を使ってみる ~Google API & docomo雑談会話 & Open JTalk~ いち

2015年は Azure の Speech to Text や Text to Speech を利用して,” お天気つぶやきらぴろんからのぉ~  お留守番らぴろん” をつくったけど(blogなし 後悔w),今回は Google のサービスや docomo のサービスを使って会話するロボットを作ってみたいと思います.

■ 用意したもの

-  RasPi3 ModelB
-  RasPi3 用の AC アダプター 5.1V/2.5A
-  microSDHCカード 16GB class10
-  HDMI ケーブル(モニタ出力用)
-  イヤホン 3.5mm ミニジャックにさすやつ
-  マイク SANWA SUPPLY MM-MCUSB16 USBマイクロホン 家にあった
-  USBキーボード&マウス

じゃいつも通り microSD に Raspbian を入れましょう♪

# この作業は パソコン でやるよ

1. SDFormatter4 で microSD をふぉーまっと ^^*
2. Raspberry Pi の セットアップ ^^*
    a. Raspberry公式サイト www.raspberrypi.org/downloads につないで
        NOOBS をダウンロード.Download Zip をクリックすればいいよ♪
        Miho がダウンロードしたのは NOOBS_v2_1_0.zip ^^#
    b. ダウンロードした NOOBS_v2_1_0.zip を解凍して,
        中身を microSD に.

microSD を RasPi3 にセットして!

1. RasPi3 と モニタをつなぎます.USBキーボード&マウスもつなぎます.
    usb電源ACアダプタもつなぎ,ACアダプタをコンセントに ぶすっ .

# ここからは Raspbian(OS)のインストールです ^^

1. 電源が入りしばらくするとなんやら画面が見えてきます
    ” Raspbian [RECOOMMENDED] ” と 見えるのでそれにチェックをいれます.
    下の方の Language リストボックス で『日本語』を選ぶと  
    Keyboard が 『jp』になって,使っているキーボードが使いやすくなるかも ^^
    でもこの設定はインストール後でも『Raspberry Pi の設定』ってメニュで
    変えれるから困ったことに気付いてからでもへっちゃら ^^#
    しばらくほっとくとインストールが完了するよ

# RasPi のデスクトップが起動したら WiFi の設定までしちゃいましょ♪

1. 画面右上に(ちょっとわすれた ^^;) 電波出してるよ!WiFi のアイコン か
    パソコンの絵のアイコン があります.クリックしよう!
2. じぶんちのネットワークが見えてくるからそこに接続してね
    WiFi のアイコンが 元気に電波発信! のアイコンになるはずです ^^

# システムのアップデートもしときましょ♪

1. パッケージリストの更新 apt-get install update をやっとこう(^^♪
    注)apt-get unstall upgrade は要注意!
           これは インストールされているパッケージの更新で
           下手にやると今まで動いてたものが動かなくなるなどハマるw

# ターミナルの使い方をしっておきましょ(^^♪

1. 画面左うえに,真っ黒いウインドウのアイコンがあります
    クリックするとこんな画面が出てきます

f:id:MihoN:20170312212706p:plain

    この画面に次にでてくる おまじない(^^♪ を入力して
    いろんなものをインストールしていきます.
    ターミナルを閉じるときは exit を入力してね!

ここからはあとあと使うための準備をしておきます ^^#

# 日本語フォント と 日本語対応ターミナル

0. ターミナルを起動します
1. 日本語の ゴシックフォント のインストール
    sudo apt-get install fonts-vlgothic
2. 終わったら,再起動
    reboot
3. 日本語入力ソフトウェアをインストール
    sudo apt-get install uim uim-anthy
4. 終わったら,再起動
    reboot
5. 日本語対応ターミナルのインストール
    sudo apt-get install jfbterm
6. 終わったら,再起動
    reboot
    ※ もしかしたら最後にまとめて reboot でいいかもしんない
7. ターミナルで 半角/全角 キー で日本語入力できるはず

 とりあえずここまでが下準備 ^^# つぎは 音声入力 へと進みましょ♪

- Miho MEMO -
自分の環境の記録

f:id:MihoN:20170313000811p:plain

参考文献:
自然会話ロボットを作ろう! Raspberry PiArduino で作る人工知能
ISBN 978-4-7980-4863-5

TOPPERS on PSoC をぺたんこボードに ^^

PSoC Advent Calendar2016  12/8  空いてたところを埋めたった!

あっちむいてほいっ♪ ~ 魂吹き込み編 ~ からの枝分かれ ^^#
ここではもういっちょの ” お手軽ぺたんこボード ”
” CY8CKIT-059 PSoC5LP PROTOTYPING KIT "

http://www.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit-onboard-programmer-and

TOPPERSを載せちゃいましょ♪

☆ 脳みそを用意します!

あっちむいてほいっ♪ ~ 魂吹き込み編 ~ の ” 脳みそはこれ! ” を参照してね ^^#
そして ” 脳みそ注入!” の ①から③ まで進んでね ^^#

☆ 脳みそをいぢります!

現在(TOPPERSサイトからDLした素のまま)の プロジェクトは,
PSoC5LP(CY8C5868AXI-LP035)用になっています.
なので,今回の ぺたんこキット(CY8C5888LTI-LP097)用にいぢります.

① Device の選択
     プロジェクト名を右クリック.Device Selector を選択します

f:id:MihoN:20161214222722p:plain

     ” CY8C5888LTI-LP097 " を選択します

f:id:MihoN:20161214223128p:plain

② Clock をいぢります
     Workspace Explore の Design Widw Resources の Clocks を Wクリック.
     Clock 画面の Edit Clock タブをクリック.
     以下の画面がでてきます.

Before:

f:id:MihoN:20161215002338p:plain

     CY8C5888LTI-LP097 のプロジェクトのクロックを以下のように変更します

After:

f:id:MihoN:20161215005340p:plain

     XTAL -> チェックはずす!(これ一番のポイント)
     IMO -> Osc : 3MHz ±1%
     PLL -> Input : IMO(3MHz),Desired : 24MHz
     Master Clock -> PLL_OUT(24MHz),Divider 1
     ILO -> Route : 1kHz
     Bus Clock -> Divider 1
     ※ 変更する理由はあとで書きまする ^-^

③ USBシリアル変換モジュールとつなぐ Rx/Tx の Pin 配線をします
     Rx_1 -> P12[6]
     Tx_1 -> P12[7]

④ Build して,書き込んで,シリアル出力してみよう!
     やり方は,『あっちむいてほいっ♪ ~ 魂吹き込み編 ~』を見てね ^^#

f:id:MihoN:20161215013452j:plain
ターミナルに task1-task3 の起動が確認されたら成功!!(^^♪

さて, 
☆彡 なぜクロックをいぢったのか

結論は,TOPPERSサイトからDLした素のままのプロジェクトのクロックは,外部クロック供給モードになっている.

が!

CY8CKIT-059 PSoC5LP PROTOTYPING KIT には外部クロックは無い.
なので,外部クロック(XTAL)供給モードを無くし,内部クロックで動くように設定の変更をする(上記 Edit Clock 画面参照)

① CY8C5888LTI-LP097 のデータシートから 外部クロック(XTAL)が繋がるならどのピンなのかを確認してみよう!
     CY8C5888LTI-LP097 の データシート 7ページ

http://www.cypress.com/file/45906/download

 

f:id:MihoN:20161215094324p:plain
XTAL をつなげるとしたら P15[0],P15[1] ってことがわかる.

② 実際はどうなってる?!CY8CKIT-059 PSoC5LP PROTOTYPING KIT のスケマを見てみよう!

f:id:MihoN:20161215094839p:plain
P15_0 にも P15_1 にも XTAL はつながってないね ^^
ってことは,CY8CKIT-059 PSoC5LP PROTOTYPING KIT は内部クロックで動いているね Congratulations!!★(*^-゚)⌒☆

TOPPERSサイトからDLした素のプロジェクトが対象にしたボードについても確認しとこう!!
     対象ボードとしてるのは,CQ出版の付録ボードです.どんなボードなのかは,
     あっちむいてほいっ♪ ~ 魂吹き込み編 ~ をみてね!
対象ボードは CY8CKIT-050 

http://japan.cypress.com/documentation/development-kitsboards/cy8ckit-050-psoc-5lp-development-kit
このボードの回路図をみてみよう!
クリスタルみつかるかなぁー ^-^

f:id:MihoN:20161228103050j:plain

あったぁー!! P15[0],P15[1] に クリスタル はつけん!!
このボードを元に作られたTOPPERSプロジェクトなので,XTAL が設定されていたわけですね ^-^
ぺたんこボードには外付けクリスタルないからね,だからクロックの変更が必要なのでした ^-^

というわけで,Device Selector でターゲットデバイスに変えたけど,クロック等は変更されないので自分で変更してあげてください #^^#

じゃぁね~ ばいばぁ~い 
See you again!! (*^-')/~☆ Bye-Bye ♪

 

みほメモ:
クロックだけど、PSoC5だと
IMO=3MHz (±1%)
だけど、USB を有効にして

IMO=24Mzh (±0.25%)
にしたほうが精度がいいよね。
この場合PSoC Creater3.3までだとILOも100kHzにしてね!
みたいにでるけど、Creater4.0では1kHzでもOKみたいなかんじ。なんだろうな。
とにかく、クロック精度が高いほうがうれしいよね。
OSつかって処理速度もほしいなら、PLLを48Mhzとか60MHzとか、やればうれしくなる場合も多いはず。
省電力の場合はそれなりだけど。