2017年10月30日月曜日

ChatBot を無料で作れるツール・サービスまとめ

【この記事は書き途中だよ】
個人で利用できて無料プランがあるチャットボット作成サービスのまとめ。
2017年11月時点での無料プランの場合の情報です。
サービス名ボット数APIコール数インテント数
シナリオ数
エンティティー数
クエリー数
連携
Repl-AI11,000 コール/月制限なし制限なしLINE
Facebook
API
Watson Conversation510,000 コール/月2525API
hachidori210,000 コール/月20--LINE
Facebook
Dialogflow集中しなきゃOK無いっぽい無いっぽいGoogle Assistant
LINE
Facebook
Twitter
Slack
Dialogflow Web Demo
Kik
Skype
Spark
Telegram
Tropo
Twilio
Twilio Programmable Chat
Viber
Amazon Alexa(?)
Microsoft Cortana
API
一見すると Dialogflow 一択のようにも思えるが、実際使ってみると会話フロー構築で弱い面がある。
それぞれを使ってみたレビューは以下の通り。

Repl-AI

Watson Conversation

Conversation とプラットフォームを繋げるために別途アプリケーション・サーバーが必要。
LINE や Facebook などに簡単につなげる機能などは一切ないので、API を利用してなんやかんやできる知識が必要。
ただしその分、汎用性は高く、Conversation 開発ツールは非常に洗練されているため、複雑な会話フローにも柔軟に対応できる。
この開発ツールへは、WEBブラウザからアクセスでき、プログラミング知識がなくても扱えるようにできている。
プロフェッショナルな要求にも対応できる非常に高度なサービスを利用できるという点で、他のサービスとは一線を画する。

hachidori

Dialogflow

旧 Api.ai 。
そもそも無料しかない。
Dialogflow のボット(エージェント)数は GOOGLE PROJECT 依存なんだと思う。
その他、数に制限があるのかわからない。(無いっぽい)
インターフェイスは英語だが、日本語の処理には対応済み。
System Entities の豊富さが他の追随を許さない。
一問一答できれば良いチャットボットなら、これで充分。

2017年10月10日火曜日

Webデザイナー・クリエーター・プログラマーが Raspberry Pi を活用するために必要な知識

自分のための備忘録。
間違ってることも自信満々に書いてたりするぞ!
※このページは私が飽きるまで随時更新されます。

電圧と電流

よく水に例えられるが私は「電圧は水の高さ」という例えより(高さって位置エネルギーだよね……それが電圧?)下記サイトの水鉄砲の例えのほうが理解が早かった。
オームの法則 電気の資格とお勉強

電流は決まった量が流れるのではなく、回路に要求される分流れる、というイメージ。
電源側で制御するものではない。

直列と並列(分圧・分流)

電池を直列と並列にした場合や、抵抗を直列と並列にした場合などについて。

電池

  • 直列にすると電圧は足し算。
  • 並列にすると電圧は1個分で、容量が増える。

抵抗を直列

  • 抵抗値(合成抵抗)は単純に足し算
  • 電圧がそれぞれの抵抗値に合わせて割り振られる(入力より減る)
  • 電流は同一量

抵抗を並列

ラズパイの GPIO

扱える最大(?)電圧と電流

以下のサイトによると
第22回 Raspberry PiのGPIO概要 ツール・ラボ
電圧は

  • 読み取り(入力)時は0V~3.3V

電流は

  • GPIOピン1本あたりの最大電流は(入出力ともに)16mA
  • 複数本のGPIOピンを使用する場合、同時に流せる電流の合計は50mAまで
  • 目安としては、制限の半分、つまり8mA
という制限を厳守しないと壊れるらしいです。

プルアップ抵抗・プルダウン抵抗

Raspberry PiのGPIOは起動直後から内部プルダウンされている hnwの日記
GPIO 2 と GPIO 3 のみ 1.8KΩで他は 50KΩ らしい。
なんやかんやで GPIO 2 と 3 をプルダウンされた入力として使うことはできないらしい…らしい…らしい…

第22回 Raspberry PiのGPIO概要 ツール・ラボ

電子回路シミュレータ

Tinkercad の circuits
旧123D Electronics Lab。要無料ユーザー登録。
見た目がきれいなのは良いが、ショートさせたりしても特に警告がないのでコワイ。
あとキレイに配線しにくい。

最も手軽だが、まあまあバグる時がある。
個人的には視覚的に分かりやすくて助かる。

EasyEDA
設定で日本語化できる。要無料ユーザー登録。使い込むには要課金。

パーツについて

もし「電子回路をマスターしたい」のではなく「ラズパイへ入出力機器を付けたい」だけなのであれば、個々のパーツの役割を詳細に把握し、回路を自作するよりモジュールを買ったほうが早い。(電子回路マスターへの道が険しすぎる;)
目的とする処理を電子回路とソフトウェア、どちらで処理させるのが現実的かの見極めが大事。
でも基本的なことは知っておいたほうが良い。

抵抗

電圧とか電流とか下げるときに使う。
いざ購入しようとした時に種類の多さにビビる。
まずは1/4wカーボン抵抗で、100Ω~1000Ω(1KΩ)を適当な区切りで用意しておけばいいかと。
1種類につき10個くらいしか使わないけど、1袋100個入りだったりする。
今の技術なら直接数値を記載することもできるであろうが、頑なに謎の色線で抵抗値を表す初心者キラー。

LED

なぜか初心者は最初にこれをチカチカさせることを推奨される。
これまた、購入しようとすると種類の多さにビビる。
そもそもオマエの使っているその赤いLEDは一体どれだと言いたくなるが、大抵はそんなことまで記載されていない入門書が大半。
実際には足が2本のならば、ほぼなんでもいい。

トランジスタ

このパーツについては以下のページがわかりやすいと思った。
足の並びは ECB (えくぼ)と覚えるのが良いらしい。
これが使えるようになると、電圧や電流の制限が厳しい Raspberry Pi でも、乾電池を使って色々できるようになるので楽しい。

リレー

物理的に「カチッ」って音がするのでビビる。
コイルを使っているのでダイオードを逆並列に接続する必要がある。
(切った瞬間にすごい電圧が流れるのを逃がす)
動かすためには大きな電流が流れることになり、ラズパイではあまり使用されないかも。

ダイオード


コンデンサ

種類多すぎ意味不明(・口・)

電解コンデンサ

LED みたいに極性(+と-)があるので間違えたらイカン破裂する。

パスコン(バイパスコンデンサ)(デカップリングコンデンサ)という使い方

直流電圧を安定させるために配置するコンデンサのこと。
そういう種類のコンデンサがあるのではなく、コンデンサの役割名。
安定した電源を供給したいものの近くに置くほど効果的。←物理的に近く?回路的に近く?

三端子レギュレータ

らくらく必要な電圧に降圧してくれるパーツ。
3V 用とか 5V 用とか色々ある。

人感センサー・PIR(RIP?)・焦電型赤外線センサー

そもそも色々な呼び名があって混乱する。
初心者はセンサーそのものではなく、センサー付きモジュールを購入すべき。
私が秋月さんで購入した SB412A は配線などがラズパイに近いと、なんらかの影響を受けてしまうのか、1分間隔(または高負荷時)で反応してしまうという不具合が出る。(要調査)

昇圧・降圧について

5V を 3V に下げたいとか上げたいとかのこと。

昇圧


降圧

ラズパイだとこっちのほうがよく使うかも。
色々方法がある。

三端子レギュレータを使う

最も簡単で安定らしい。
必要な電圧を出力してくれる種類を選べばいいだけ。

ダイオードを使う

ダイオード1個で 0.6V とか 0.7V 下がるので、それをいくつか直列で繋げて理想の電圧へ下げる方法。

抵抗を使う

つまり分圧するということ。
この方法だと降圧した先に繋がるものの抵抗(負荷)も考慮して組む必要がある。
そのため汎用性はなく、電流が変化するような回路には使えない。

プログラミング

Python

ver2系と3系があるけど、3でいいと思うよ。
なんかみんなこれ使ってる。

Node-RED

私はこっち使ってます。
Raspbian に標準インストールされてるけど、肝心な node.js が古いため、ドキュメントの指示通りインストールし直したほうがフルに機能が使えるようになって捗る。
指示通りにターミナルにbashコマンドをコピペして実行すれば、後は勝手にやってくれます。
既存の設定やフローも維持してくれるので安心だぞ。

USB

電源として利用したい場合

そもそも USB からの電力供給は規格で 5V で 100mA~500mA と決まっている様子。(たぶん USB2.0までの話)
ただし、色々なページを見る限り USB ホストへ「これくらい電力使うよ」と申告したりする手続きをしないで、こそーり電源としてのみ拝借する場合は 100mA までに制限しておくのが無難な様子。

USB Raspberrypi.org
USBポートは電源ではありません Dai ISHIJIMA's Page
USB端子から5ボルトを取る方法 作る人(つくるんちゅ)日記

音楽・動画の再生

最初から入っている OmxPlayer を使えば GPU が利用できるのでスムーズな再生が期待できるらしいです。

PLAYING AUDIO ON THE RASPBERRY PI
PLAYING VIDEO ON THE RASPBERRY PI
OMXPLAYER: AN ACCELERATED COMMAND LINE MEDIA PLAYER

ただし、OpenGL を使用するため Linux 一般で使われている(当然ラズパイでも使われている)ALSA の設定は無視される。
たとえば GUI で音量を変えても OmxPlayer で再生しているメディアには影響がない。

ALSA

サウンド関係を一手に管理しているものらしい。
ALSA を使用して再生したり録音したり音量設定したりするには以下のようなコマンドを使う。
aplay
arecord
alsamixer
詳しくはググれ。