読者です 読者をやめる 読者になる 読者になる

Miho's Memory

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

人工知能を使ってみる ~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とか、やればうれしくなる場合も多いはず。
省電力の場合はそれなりだけど。

あっちむいてほいっ♪ ~ 勝ったらミサイルぶち込め!編 ^^ ~

PSoC Advent Calendar2016  12/25  Merry Christmas!! 番外編

あっちむいてほいっ♪ ~ 一緒に遊ぼう編 ~ からの続き ^^#
仲良く遊んでいたのもつかの間.
あっちむいてほいっ♪ は,いつしか戦いにw
負けたあなたはらぴろんにミサイルをぶち込まれるのだ (๑•﹏•)

注)
- PSoC.Tx が 3.3vのなぞ分かったので書きます(書いた!)
- モーターの回路図不備有り変更します(図は更新でも説明をもう少し書き足す予定)

☆ミサイル実装に必要なもの

- ミサイル操作の主犯
  + RasberryPi(今回は Pi2を用意した)
- ミサイルとその仲間たち
  + 100均の引き金ロケットw
  + ミニモーター低速ギヤボックス(4速)
  + モータードライバIC(TA7291P)
  + 0.1uF フィルムコンデンサ
  + 10uF  電解コンデンサ
  + 配線ワイヤ&ブレッドボード
  + ロケットの引き金を引っ張る丈夫な糸
- PSoC.Tx と RasPi.Rx をつなげるために
  + 1kΩ 抵抗 3本

今回は,PSoCからRasPiを経由して,RasPiにつながったミサイルが発射するようにしたいとおもいます ^^#

まずはいくつか確認です!

☆彡 ミサイルとその仲間たち ^^

モータードライバIC周りを作ります!

f:id:MihoN:20170101173333p:plain

今回はブレッドボードに実装
PasPi2 の 11番ピンの GPIO 17,13番ピンの GPIO 27,3.3v PWR,GND にそれぞれ配線します.

ランチャーとギヤボックス!

f:id:MihoN:20161217204757j:plain

引き金引っ張る糸巻きには,LEGOブロックを使用 ^^ だから可愛い♡
ちな.つかったギヤボックスはこれ↓↓

f:id:MihoN:20161217205204j:plain

今回このギヤボックス,「一番低速(だけどトルクは一番高い)」で組み上げてしまってる状態w

なぜなら,以前小学生と夏休みの工作で遮断機を作ってその時のモーターを引っぺがして使ったから(笑) 
ちな,これがその当時作成の遮断機.〇〇市の理科作品展に選ばれたんだよね♪

f:id:MihoN:20161223201817j:plain

f:id:MihoN:20161223201843j:plain

そうそう.話それちゃったけど,
モーターから出てる赤い線と黒い線もブレッドボード上に刺しておいてね♪

☆彡PSoC.Tx と RasPi.Rx をつなぎましょう♪

ちょっとまったぁ!!

PSoC.Tx は 5v だよ!PasPi.Rx は 3v だよ!
どうしてそうなる?
それはね ^^*

ということで,PSoC.Tx が 5v じゃないか?!というのを先に確認します.
まず
① あっちむいてほいっ♪ プロジェクト(PSoC Creator)の TOpDesign.cysch を開きます.

f:id:MihoN:20161218001649p:plain
Drive Level が Vddio になっていることに注目!!

② Design Wide Resources の System を開きます

f:id:MihoN:20161218002049p:plain
VDDIO周りはすべて5vになっている.

PSoCArduino ” と ” RasPi ” の関係を振り返ると↓↓

f:id:MihoN:20161217235556p:plain

PSoC.Tx 5v と RasPi.Rx 3v を直につなぐのはまずいので,抵抗分圧回路をはさみましょう.

f:id:MihoN:20161217235854p:plain
PSoC.Tx が Hレベルのとき,Vout は 3.31v になるよ ^^

ん?!

おかしいぞ.Vout は 2.15v だ...
Txピンの電圧は 3.3v なのか??
テスターで測ったらやっぱり 3.3v みたいw
↑↑ なんで 3.3v なの? わたしもこれについて現在調べ中...
すでに知ってる人はわたしに教えてくれるハズ(笑)
⇒ 文末に特別コーナーを用意しました

ということで,抵抗分圧回路は今回は必要なさそうだ.

抵抗分圧回路は挟まず,PSoC.Tx と RasPi2.Rx は直接配線しちゃいます.
今回使用したピンはそれぞれこれ!
PSoC.Tx には 2[5] を.
RasPi2.Rx は 10番ピンの UART0 Rx を.

RasPi2 側は Python で書きました.
参考にさせていただいたサイトは以下です.Thank you very much!!

http://saba-g.jp/wp/2016/01/15/post-1472/

http://www.instructables.com/id/Read-and-write-from-serial-port-with-Raspberry-Pi/


あっちむいてほいっ♪ ~ 勝ったらミサイルぶち込め編 ~

この動画を見てもわかるでしょ.忘れたころにミサイルぶち込み(笑)
なので,回転数をあげたギアボックスをこれから組み立てます ^^
土台もうまく完成したら動画も置き換え!
それまではすこし間抜けな動画でご勘弁(笑)
⇒ とりあえずこの低速ギヤボックスをもう1つ用意し,中でも一番高速で組んで試してみたところ,トルクが低いようでミサイルの引き金を引くことができなかったw

f:id:MihoN:20161224233839j:plain

なのでいい方法見つかるまでこのまんま.
なんかいい方法知ってる人教えてちょうだい ^^#

つづきは,ESP8266とBluemixをもう少し使っていくことー #^^#

PSoC.Tx が 3.3v のなぞ解明

神の声:
PSoC の IO電圧は Creator ではわからんで!
きちんと回路図から追わないと!

回路図からわかること:
USB端子から3.3v LD0 に入ってて,それから
Vddd/Vdda ⇒ VddIo なので 3.3v

f:id:MihoN:20161228115342j:plain

f:id:MihoN:20161229213513j:plain
たしかに3.3vである.



 

あっちむいてほいっ♪ ~ 一緒に遊ぼう編 ~

PSoC Advent Calendar2016  12/25  Merry Christmas!!

あっちむいてほいっ♪ ~ 魂吹き込み編 ~ からの続き ^^#
脳を生成し,魂は吹き込みました #^^#
ここからは ”あっちむいてほいっ♪” 仕様へと肉体の改造もやっちゃいましょう(笑)

☆あっちむいてほいっ って??

遊び方はこう.
2人の人がいて『あっちむいてっ』の掛け声で一人は首を上下左右に,もう一人は相手が向きそうな方向を指でさす.首の向きと指の方向が合えば,指をさした人の勝ち!!
あと,そうそう ”あっちむいてほいっ” って海外にはない遊びみたいだよ ^^

この遊びをらぴろんとやろう!という話.
今のらぴろんって...

無表情,無口,無関心,直立不動w

さぁ肉体改造して行こう♪ 

今回用意したハードウェアはこちら↓↓
これらを制御するプログラムは PSoC Creator で実装していきます.

☆無表情をどうにかして!

f:id:MihoN:20161208163503j:plain

https://www.switch-science.com/catalog/1496/

☆無口をどうにかして!

f:id:MihoN:20161208163458j:plain

http://gadget.renesas.com/ja/product/kemuri.html
http://akizukidenshi.com/catalog/g/gK-09873/

☆無関心をどうにかして!

f:id:MihoN:20161208163455j:plain

https://www.switch-science.com/catalog/2085/

きわどい場所は気にしないっw

☆直立不動をどうにかして!

f:id:MihoN:20161208163500j:plain

http://www.rapiro.com/ja/downloads/

☆時には人の手も借りますw

f:id:MihoN:20161208163505j:plain

http://www.aitendo.com/product/11927

ちょっとしたデータをクラウドへ びゅん

☆肉体改造全体図

f:id:MihoN:20161208170451j:plain

f:id:MihoN:20161208170512j:plain

f:id:MihoN:20161208170534j:plain※ 今回のお話の対象は ”TOPPERS + PSoC” のとこだけ

☆肉体改造全体図(補足)

f:id:MihoN:20161208174534j:plain
※ こんな感じで配置・配線はやっちゃいます
     名前の付け方がいけてないのはムシね

※ リセットの処理もしておきましょう♪ お行儀よく ^^#
     Component Catalog で logic と入力します.
     以下のような 0 がついたコンポーネント
     reset に配線してね ^^

f:id:MihoN:20161228084854p:plain
※ こちら ↓↓ が完成の図 ^^*

f:id:MihoN:20161228085235j:plain
補足:
UART DS に「リセット入力は外部接続なしでフローティング状態のままにすることができます.リセット ラインになにも接続されていない場合,コンポーネントによって定数0が割り当てられます.」ってあるけど,明らかに『処理してね♡』ってことだから,きちんと明記しておきましょう!!

☆脳内全体図

f:id:MihoN:20161208173159j:plain

f:id:MihoN:20161208173223j:plain

今回はセマフォとデータキューを使ってみました.
通信間のデバッグなども PSoC Creator でできます ^^*
Break Point(梅干しみたいな印)を実行を一旦停止したいところに置いてステップ実行させてみてね ^^*

☆ちょっと余談 こんなこともできるんです!

f:id:MihoN:20161208174947j:plain
PSoC Creator では C++ も使えます!
Arduinoの豊富なライブラリもつかいほーだい ^^#

ただ,C++ライブラリを直接 PSoC Creator で呼び出せないので,ラッパーを用意してあげてね.
も一個補足は,C++ライブラリなどは,PSoC Creator で
” 対象の関数を右クリック.Go To Declaration や Go To Definition ”
などで引っかからない時があるので,
” Find ” の ” Current Project ” を実行してあげたほうがいいかもです ^^*

☆らぴろん誕生 

f:id:MihoN:20161208175445j:plain

☆らぴろんとあっちむいてほいっ♪


みほRapi ~ あっちむいてホイ♪ ~

TOPPERS活用アイデア・アプリケーション開発コンテスト 金賞!

https://www.toppers.jp/contest.html

PSoC Creator Top Page掲載 &
    Cypress Developer Community サイトに掲載

http://www.cypress.com/blog/psoc-creator-news-and-information/cypress-miho-nagahama-wins-prestigious-toppers-idea

f:id:MihoN:20161214212830p:plain

☆ ARM Community サイトに掲載

https://www.community.arm.com/iot/embedded/b/9be23b04399748eb9f13aadf85855980/posts/cypress-miho-nagahama-wins-prestigious-toppers-idea-application-development-contest

f:id:MihoN:20161215092515p:plain

うれしくて ↓↓↓ 笑

f:id:MihoN:20161215113611j:plain

f:id:MihoN:20161215093125j:plain

Merry Christmas!!

番外編:あっちむいてほいっ♪ ~ 勝ったらミサイルぶち込め編 (^^♪ ~

あっちむいてほいっ♪ ~ 魂吹き込み編 ~

PSoC Advent Calendar2016  12/18

☆あそび相手がほしい...

はんだづけ友達,どろーん友達,呑み友達,温泉友達,ショッピング友達,カフェ友達,Disny大好き友達...そこそこ相手はいるけれど,みんなして予定入っちゃってるときがある.
そんなとき ”ぼっち” になっちゃうの...

だれか みほ とあそんでくれない?

☆いたいた ^^ ちょうどいいやついた!

その名は ”らぴろん” #^^#
最近ガンダムみたいな進化を遂げた(外見だけ)
『ねぇ らぴろん,みほと一緒にあそばない?^^』

ん?でも らぴろん,元気なみほについてこれるかな??^^

そこで

☆らぴろんの身体検査

らぴろん は手足はそこそこ自由に動かせます.

f:id:MihoN:20161206163138p:plain

でも... あたま... からっぽw  
ドモドモ\( ̄▽ ̄*)(* ̄▽ ̄)/ドモドモ

f:id:MihoN:20161206162908p:plain

そこで...

らぴろんのあたまん中改造計画w

らぴろんを”も少しおりこうさん”にしてあげましょう♪ ^^#
使うのはこれ!

”みんな大好きPSoC♡” &
       ”みんな大好きTOPPERS♡”  

f:id:MihoN:20161206170034j:plain

TOPPERSとは
組込み用のITRON仕様のちっちゃなRTOS
https://www.toppers.jp/project.html

脳みそ基板にはこれ!

PSoC5LP(CY8C5868AXI-LP035)を使います!
みんな簡単に手に入るよ!
http://shop.cqpub.co.jp/hanbai/books/48/48171.html

脳みそはこれ!

TOPPERS/ASPカーネル 簡易パッケージ
CY8CKIT-050(Cypress Semiconductor)簡易パッケージ
これまたみんな簡単に手に入るよ!
https://www.toppers.jp/asp-e-download.html

https://www.toppers.jp/download.cgi/asp_cy8ckit050_gcc_20140204.zip

脳みそ注入!

まず,
PSoC Creator を準備して!
     http://yamagoya.hatenablog.jp/entry/2016/12/02/000000
     ※ こにしさんのページを引用させていただきました ^^#

② DLしたTOPPERS/ASPカーネル簡易パッケージを
     c:\PSoC5 以下に展開しよう!
     ※ 日本語フォルダ名はだいたいなにかを引き起こす...

PSoC Creator にインポート!
     File -> Open -> c:\PSoC5\asp_1.9.0_3.0\asp_eval1.cywrk

④ ビルド!
     Build -> Build asp_1.9.0_3.0

⑤ 書き込み!
     ボードを接続
     Debug -> Program

⑥ 脳みそ(サンプル)を動かしてみよう!
     PSoC5LPのシリアル出力をPCで観測するために
     *用意するもの!
         USBシリアル変換モジュール
            今回使用したものは FTDI社製 FT234X
     *手順
         1) PSoC Creator の Design Wide Resources - Pins で確認

f:id:MihoN:20161207212706p:plain

f:id:MihoN:20161207212723p:plain

         Rx_1 が P3[7],Tx_1 が P3[6] に割り当たっています.

         2) PSoC5LPと変換モジュールを接続して,ターミナルソフトを起動します

             Rx_1:PSoC5LP.P3[7] と 変換モジュールの Tx
             Tx_1:PSoC5LP.P3[6] と 変換モジュールの Rx
             を接続して,PCでターミナルソフトを起動します.
             ※ ボーレートは 19200

f:id:MihoN:20161207213702j:plain

    くまさんがいると間違いなく成功します(嘘w

    ターミナルソフトに何か出てきます.
    もともと task1,2,3 全部動いてます.
    c を1回入力すると task1,2,3 が順に回ります.いけた?(下図)

f:id:MihoN:20161207213731p:plain

   2 ,e と順番に入力すると,task2 は exitします.

   ちな,コマンドは sample1.c をみてね ^^*

f:id:MihoN:20161207220429p:plain

脳みそをもっと充実させて!!

タスクを追加してみよう!!

サンプルに task4 を追加してみよ (*・ω・)(*-ω-)(*・ω・)(*-ω-)ウンウン♪

① Task4 の静的生成準備
     C:\PSoC5\asp_1.9.0_3.0\asp_eval1.cydsn\asp\OBJS の
     sample1.cfg に追記

     『task4 生成!』って task1-3 のまねっこで書いて ^^#

② OBJSフォルダ内の set_path.bat の編集
     今回は PSoC Creator 4.0 を使っているからね

     IF %1 == 4.0 path C:\Program Files(x86)\Cypress\PSoC Creator\4.0\PSoC Creator\import\gnu\arm\4.9.3\bin;%PATH%

     の一文を追加します
     みんなの PSoC Creator のインストールパスに合わせてね ^^#

コマンドプロンプトを開いて『set_path.bat 4.0』Enter を実行して!

    念押しだけど,今回は PSoC Creator 4.0 だからね ^^*

④ つづけてコマンドプロンプト
     make_depend.bat .. sample1 cy8ckit050_gcc
     Enter を実行して!

⑤ kernal_cfg.h,kernel_cfg.c,offset.h が新しく生成されましたか? ^-^
     タイムスタンプで確認したり,kernel_cfg.c の中身を見たりしてみてね
     task4 が追加されてるのがわかります

PSoC Creator を開いて,sample1.c の一部編集!
     抜粋:
         char message[4];
         const char *graph[] = {"|", " +", "  *", "      ^^#_Miho"};
         SVC_PERROR(act_tsk(TASK4));
         case '4':   case '3' とかと同じように追記

実行すると ^-^

f:id:MihoN:20161213085137p:plain

ファイル名などを変えたときには

ex. OBJS フォルダで作業
sample1.cfg -> rapiro.cfg
sample1.c -> rapiro.c
sample1.h -> rapiro.h

PSoC Creator の Workspace Explore から sample1.c と sample1.h を削除して!
そして,rapiro.c と rapiro.h を追加しよう!
くれぐれも sample1.h の記載箇所を rapiro.h にすることなど忘れないでね!
そのあと,コマンドプロンプトから set_path.bat を実行!
続けて,
make_depend.bat .. rapiro cy8ckit050_gcc
を実行!

おわり ^^#

続きは
PSoC Advent Calendar2016  12/25  Merry Christmas!!
で会いましょう♪