Ruby 0
全18件 (18件中 1-18件目)
1
7 best Arduino simulators for PC を見る。実際に基板や部品を組みあげる前に、シミュレーションツールを使って設計して、確認しておけば、変な配線で機器を壊してしまうことも予防できるので、使ってみましょうかと。記事で紹介されているのは、かなり本格的なものから、ホビーユースで使えるものまであった。Proteus は、商用で機器を作るようなレベル向けの本格的な回路設計ツールで高価。Fritzing や Autodesk Eagle などは、PCB の基板設計で使われるものだが、これで書かれた回路図をネット上にアップしている例も見る。Fritzing は、GUI で部品を画面上に配置していくと、回路図ができるのでわかりやすい。Arduino のボードも部品としてある。Eagle の方が、本格的な PCB 設計ツールという感じで、敷居が高い感じ。「fritzing PCB 発注」、「Eagle PCB 発注」とか検索すると、たくさん出てくる。Fritzing は、Arch Linux だと、yaourt -S Fritzing で簡単にインストールできるので、インストールして使ってみることにした(オープンソースのツールなのでした)。インストールして、Fritzing で起動。いい感じに動くので今後使っていこうかな。けれど、これも回路設計のツールで、望んでいるシミュレーターではにゃい。実際にお手軽に Arduino のシミュレータとして使えるのはどれかと見てみる。Autodesk Circuits と Virtronics Simulator for Arduino、VBB4Arduino – Virtual Breadboard for Arduino) あたりを見てみる。AUTODESK CIRCUITS を見てみる。おお、なんかすごい。オンラインで設計して、シミュレーションして、シェアできちゃうんだ。gallery を見ると、いろんなものがある。最終的には Autodesk Eagle のファイルを書き出せるわけね。それにプリント基板の発注までも。このサイトの利用はユーザー登録すれば、無償で使える。いいかもしれない。Autodesk CircuitsでArduinoをシミュレーションやArduinoをシミュレータで入門してみた も参照。その他、学習、啓蒙サイトが Electronify 紹介されていた。Arduino (ELECTRONIFY に Arduino のコンテンツがある。次に、VBB4Arduinoを見てみる。$29 の Windows で動くツールとして販売されている(期間限定で $19)。Lチカの例を見ると、基本的にな使い方が分かる。Virtual BreadBoardのArduinoシミュレータで遊んで見る も参照。ただし、Linux 上の wine で動かそうとしたら動かなかった(最近、家で Windows 使うことがあまりないので)。次に出てくる Virtronics の方は wine で動かすことができた。面倒だが Windows マシンを起動して動かしてみたら、日本語対応しているのでびっくり。TIPS も機械翻訳したもののようだが、日本語で表示されている。GUIの部品を並べて回路図が作れるところは、簡単にできてよさそう。ただし、ちょっと使った印象では Fritzing の方が扱いやすい感じ。何はともあれ、回路図の作成からシミュレーションまでまとめて全部できるのは、記事で紹介されている中では、これか、AUTODESK CIRCUITS のオンライン版だけ。もうちと検索して調べてみないと。Virtronics も、$19.99 のツールとして販売されている。フリー版は、"Free version limited to 200 lines and also after 30 days of use or 100 sketches (shown on startup in lower StatusBar) there is a delay timer on loading a sketch" という制限がある。シミュレータとしての制限は、Simulator for Arduino Datasheet を見れば分かる。回路図をグラフィカルに作りながらというタイプのものでなく、プログラムのロジックを確認できるようなシミュレータで、ピンの値を代えたり、変数の値を確認したりだとか、BreakPoint が設定できたり、といったデバグ機能がある。プログラムの確認にはいいかもしれない。ただし、これならば、あとから出てくる UnoArduSim でいいかなというのがぱっと見た目の印象。詳細に比べてみないと、わからないけどと思ったが、シミュレータとしてのできは、こちらの方がよいとの主張。もう少し、Arduino のシミュレーターをもう少し調べてみる。Arduinoシミュレーター・エミュレーターまとめ、ARDUINO UNO シミュレーター にあるものを見てみる。CodeBlocks Arduino IDEEmuduinoSimuinoUnoArduSimCodeBlocks Arduino IDE は、Arduino IDE を置き換える統合プログラミング環境で、プログラムをコンパイルして、Arduino へアップロードもできるようなもの。シリアル出力も扱える。でも、今欲しいのはこの手のものじゃない。ちなみに IDE なら Arduino IDE for Visual Studio という選択肢もある。Arduino向けVisual Studio Code拡張機能がオープンソース化 も参照。Arduino Createが正式リリースされました も参照。Emuino は、"javaアプリケーションで作成したGUIパーツを,Processing 上に作成した入出力関数を通じてコントロールし,Arduino風の実行環境を実現" したもの。"ProcessingとArduinoは、根本的に異なるシステムなので、割り込みやタイマー動作などのハードに依存した機能までは真似出来ませんが、簡単な入出力やループ動作などの検証には使えると思います。" とのこと。Simuino は、CUI ベースのシミュレーター。ステップ実行や、ブレークポイントの設定もできる。Scenario でどのピンにどの値を送るとかいうのを設定して実行できる。CUIで見た目が地味だけど、最低限の機能は持っている感じ。回路設計機能はない。UnoArduSim は、先に見た Virtronics と同系統のツール。回路設計の機能はないが、プログラムのデバグができる。wine でも動いた。その他、Arduinoを使った工作を助けるツールArduinoConfとArduinoMonitor (1/2)、Arduinoを使った工作を助けるツールArduinoConfとArduinoMonitor (2/2) もおもしろいと思った。Arduinoにつなぐ回路を作ったときに動作を確かめるためには、どうしたらいいでしょうか。テスタを使うのも一つの方法ですが、Arduinoを使ってもよさそうです。そこでArduinoMonitorを作ってみました。ArduinoとPCをつないで、PCの画面上でArduinoの各ピンの様子(ディジタル入力ならLOW/HIGH、アナログ入力なら数値または電圧)を確かめ、マウス操作でディジタル出力(LOW/HIGH)、アナログ(PWM)出力、ラジコン・サーボの角度を変えて動作を確かめられます。また、各ピンの入出力をグラフで見ることもできます。オープンソースの回路シミュレーターとしては、QUCSというのがあった。まだ、開発途上かつ、本当の回路シミュレーターなのでパス。Arduino™ AVR®対応Proteus VSM は、Proteus が高価なのでパス。Arduino Uno: A Hands-On Guide for Beginner【電子書籍】[ Agus Kurniawan ]Getting Started with Arduino and Go【電子書籍】[ Agus Kurniawan ]Arduino para Principiantes【電子書籍】[ Antonio Caicedo Pedrera ]Arduino UNO WiFi Development Workshop【電子書籍】[ Agus Kurniawan ]シミュレータの話とは関係ないけど、タミヤ「カムプログラムロボット工作キット」は3,456円という価格でロボットプログラミングを普及させるきっかけになるか は、発想がおもしろいと思った。動きの制御には、プログラムバーを使用する。このバーには左右2列の穴があり、ここに「カム」と呼ばれるピンを配列する。これをロボットの内部ギアにセットすると、カムの位置でステアリングレッグが押し下げられ、クローラーが浮き上がり、旋回や停止などの動きをコントロールできる。
2017.08.26
コメント(0)
Nano Pi NEO を使った装置が組み上がった。LEDとLCDが載っている基板をグルーガンで蓋に付けて、表面を塗って綺麗して、中身の制御プログラムをちゃんと書かないといけないが。Nano Pi はサイズが小さいのがメリット。箱のサイズも小さくて済む。おおかず箱の隣に置いてあるのは、単四電池。LCD のサイズを小さいものにすれば、もっと小さなものが組めたが、まあ、こんなもんで十分かな。制御用のプログラムの方は、現状、ホストのチェックをする間、LED が消えてしまうので、ホストのチェック中も LED ON になるように thread を使って書き直す必要があるので、まだ、道半ば。
2017.08.24
コメント(0)
NanoPi NEO に Full Color LED Array をつないでみた のに引き続いて、LCD を取り付けてみた。これで、ぱっと見た目で把握できる LED アレイと、若干の説明的な文字を表示するようなものができた。LCD は、I2C接続小型キャラクタLCDモジュール(16x2行・3.3V/5V)ピッチ変換キット を使った (550円)。LCDの接続で参考にしたのは次のページ。ピン配置とかは、FriendlyARMのサイトを見て、あとは、Raspberry Pi のサイトを参考にした感じ。WiringNP: NanoPi NEO/NEO2/Air GPIO Programming with CNanoPi NEORaspberry Pi で I2C を利用するための設定Raspberry Pi の I2C を有効化する方法 (2015年版)raspberry piでLCD(AQM1602)を使い、IPを表示する方法i2c LCDを試すRaspberry Piで「I2C LCD Breakout」を使ってみた!I2C接続のLCDに文字列を表示する(WebIOPi 利用)I2C接続のLCDに文字列を表示する(WebIOPi 利用)cI2cLcd.pypython-i2c-lcdi2cdisplayRaspbeRaspberry Pi では、SMBUSの指定がデフォルトで 1 だが、NanoPi NEO の場合、0 なので、そこを書き換えれば、同じようなプログラムが動く。あと Python のライブラリに関しては、smbus がなんだか微妙なので smbus2 をインストールして、 import smbus2 as smbus として使った。ケースは古い弁当箱のおかず入れがちょうどよさそうな大きさだったので、それを流用することにした。加工はこれから。体験する ! ! オープンソースハードウェア NanoPi NEO、 Arduino他で楽しむ IoT 設計 [ 武藤 佳恭 ]javascript:void(0)
2017.08.22
コメント(0)
Nano Pi NEO を購入したので、RGB LED アレイを繫いでみることにした。使ったのは、高輝度10ポイントRGBLEDアレイOSX10201-LRPB2 フルカラー [OSX10201-LRPB2] 。こんな感じに使えるもの。RGB LED アレイを使うのは初めてだったので、まずは、Arduino につないで試してみた。参考にしたのは、次のサイトなど。 ArduinoでFull Color LED Arrayを試す RGBバーLEDを点灯させる 10ポイントRGB LEDアレイ(試食)Arduino Uno で使うにあたっては、ArduinoでFull Color LED Arrayを試す で公開されているライブラリ FullColorLEDArray.zipを使わせていただいた。ただし、このライブラリを使う時には、FCLA.cpp でインクルードされている <WConstants.h> がファイルがないといってエラーになるので、その行をコメントアウトして、代わりに <Arduino.h> をインクルードするように変更する必要があった。次に、Nano Pi NEO に繫いで試してみた。上記ライブラリを移植するのは、ちょっと面倒だなと思ったので、RGBバーLEDを点灯させる のプログラムを Python に移植して試してみた。これでネットワークの監視結果を LED 表示するプログラムに組み込んで、ネットワークの状態を LED で表示しようかなと思っている。体験する ! ! オープンソースハードウェア NanoPi NEO、 Arduino他で楽しむ IoT 設計 [ 武藤 佳恭 ]Arduino と LED があれば、こういうのもできるな。笑光る パニエ PLUS 【 ELECTRO WEAR 】HAPPYJOINTオリジナル商品 光るチュチュ 光るパニエ【光る 衣装 仮装 発光 LED チュチュ パニエ スカート ネオンカラー EDM クラブウェア レイブウェア コーデ ももクロ 衣装 パーティー動画 】
2017.08.21
コメント(0)
NanoPi NEO を買った 基本設定が終わったので、Lチカしてみた。WiringNP をインストールしたので、次のようなシェルスクリプトで Lチカしてみた。LED=7gpio mode $LED outwhile true; do gpio write $LED 1 sleep 0.5 gpio write $LED 0 sleep 0.5doneちなみに、付属していたピンはオスだったのだけど、Arduino のようにメスをつけることにした。高さを考えると、付属してるオスのピンをつけた方がよかったかな。
2017.08.19
コメント(0)
世界最小のLinuxシングルボードコンピュータ「NanoPi」 を購入した。とっても小さい。今回買ったのは、NanoPi NEOと NanoPi NEO 2 の 2台。WiFi 対応の NanoPi-NEO-Air というのもあるようだ。秋月電子通商の通販で購入した(¥1,680 と¥2,400) が、Nano-Pi-NEO-Air は売ってなかった。他に ヒートシンク 400円 x2 = 800円。ちなみに、NanoPI は Raspberry Pi とはまったく関係がなく、中国の会社が作っているもの。日本でも このセットで売っていればいいのになぁ。ケースや NanoHat OLED なんかもほしかったかも。でも、こうしてケースにきっちり入れてしまうと、配線つないで何かをつけるというのが厳しいか。まずは、ざっと、下のリンクにあるようなサイトを見てみた。 nanopi.io nanopi.org NanoPi NEO Wiki NanoPi NEO Wiki FriendlyARM のフォーラムRaspberry PiとNano Piの比較 nanopi NEOを手に入れたぞ NanoPi NEO届いた(がとらぼ) NanoPi NEOを動かしてみた(がとらぼ) NanoPi NEO/NEO2購入まとめ(がとらぼ) Nanopi NEO その1〜その9(ねこめも) NanoPi NEOセットアップメモ NanoPi NEO 初期設定まとめちなみに消費電力については、NANOPI NEO 512MB 初期設定編 と ESP8266の消費電流の徹底調査 を参考にしてみる。ESP8266 の場合、電源 ON時は 200mA 程度だが、起動後、Wi-Fiオンで 75mA前後、時々120〜180mA程度の電流が流れることがあり、Deep sleepに入ると 0.1mA程度しか消費しないのに対して、Nano Pi NEO は起動時が 200mA以上、アイドル時で 170mA ということで、消費電力的には Arduino 系が有利。とにかく動かしてみようということで、ubuntu-core (nanopi-neo_ubuntu-core-xenial_4.11.2_20170705.img.zip) をダウンロード、NEO の方にインストールしてみた。dd if=nanopi-neo_ubuntu-core-xenial_4.11.2_20170705.img. of=/dev/sdX bs=16Mファイルを解凍して、dd コマンドで SDカードに書き込み、NanoPi に挿入、イーサネットケーブルを接続して、miniUSB で電源供給。それでもう動かせる状態になる。fping -g 192.168.0.0/24等で、IP アドレスを探して、ssh username@ip.addressパスワード pi/fa/root のどれかでログイン。ログインしたら passwd でパスワードを変更。加えて、root のログインはできないように変更( /etc/ssh/sshd_config で PermitRootLogin no に変更後、service sshd restart)。root 以外に pi と fa のユーザーがあり、どちらも sudo できるので、変更せずにインターネットからアクセスできるところに置いたら、大変。ついでに、PasswordAuthentication no にして、ログインはパスワード認証を無効にして、公開鍵認証を使うおうに設定。NanoPi Software Configration Tool (npi-config コマンド) で基本設定(Raspberry Pi の raspi-config みたいなもの)。その後、アップデートしておく。sudo apt-get updatesudo apt-get upgradeとりあえず、使える環境になった。http://ipaddress:8888/ で、NanoPi Monitor が表示される。次に WiringNP: NanoPi NEO/NEO2/Air GPIO Programming with C も使えるようにしておく。git clone https://github.com/friendlyarm/WiringNPcd WiringNP/chmod 755 build./buildgpio readallLED を点灯しようと思ったが、その前にピンをハンダ付けつけなきゃ。
2017.08.19
コメント(0)
ESP-WROOM-02 で AquesTalk pico LSI を喋らせてみた (2) のあと、少しずつ、喋るプログラムを改良しているところ。最終的にアルファベットの音声記号にしてやらなければならないが、まずは、正しい読みを得るところが問題。読みを作るのに Mecab を使うことにしたが、辞書はどうするか。未知語がたくさんあるとよろしくないので、新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた を読む。mecab-ipadic-NEologd は形態素解析エンジン MeCab と共に使う単語分かち書き辞書で、週2回以上更新更新され、新語・固有表現に強く、語彙数が多く、しかもオープンソース・ソフトウェアである という特徴があります。ニュースヘッダの読み上げをするときには、こういう辞書を使った方が気持ち良い読み上げをしてくれそう。mecab-ipadic-NEologd には以下のような4つの特徴があります。IPADIC では複数の形態素に分割されてしまう固有表現を採録毎週 2 回以上更新Web上の言語資源を活用して更新時に新しい固有表現を随時追加ライセンスが Apache License, Version 2.0素晴らしい。LINEのエンジニアの佐藤敏紀さん(@overlast、)。推奨空きメモリ領域が、標準インストール時(オプション未指定の場合) 必須: 空き 1.5GByte、推奨: 空き 5GByte、標準インストール時のバイナリファイルのサイズは約850MByte ということで、それなりにリソースを食うのは、今時なので仕方ないとしよう。得られるものの方が大きいものね。PC で動かすので、HDD とかあまり気にならないし。形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介、mecab-ipadic-NEologd の効果的な使い方 も読んでみる。さらに NEologd Casual Talks #neologd 参加レポート も読んでみる。テキスト前処理用Pythonモジュールneologdnの紹介 by @_yukinoi も読んでみた。いいかもしれない。解析前に行うことが望ましい文字列の正規化処理 をやってくれるわけね。pip install neologdn でインストールできるし、benchmark では公式のものより 2倍程度速い。import neologdns = neologdn.normalize("正規化したい文字列0-90-9A-ZA-Za-za-zドドーーーーン")print(s) を実行すると、「正規化したい文字列0-90-9A-ZA-Za-za-zドドーン」となる。よさそうなので、使ってみることにした。次に問題になるのは、カタカナの読みをローマ字に変換するところ。MeCab の辞書構造と汎用テキスト変換ツールとしての利用 を使ってやるのもありかなと思ったが、とりあえず、Pythonでひらがな/カタカナとローマ字を相互に変換するAdd Starhayashihs-yata でやってみる。python3 だとエラーになるので 2to3 - Python 2 から 3 への自動コード変換 を使ったら簡単に Python3 で動くようになった。2to3 -w 変換するファイル.py で、オリジナルは .bak をつけて、書き換えてくれる。import amasakasufrom amasakasu import kana2romajis = "コレヲローマジニヘンカンシテネ"s = kana2romaji(s)print(s) koreworomajinihenkanshitene となる。MeCab 使ってやってもいいんだろうけど、とりあえず、これでいく。これで、漢字かな混じりの日本語から発音記号に変換するベースが整った。実際には、変換したままだと、制限字数を超えてしまうし、区切りも、アクセントも、数字の扱いも入れる必要があるので、今、そのあたりまでのベースを作ったところ。単純に単語単位で区切り文字を入れて、喋らせるだけだと、かなり聞きづらい。うまい具合に書き換えを入れたり、区切り記号を入れたり、アクセントをつけるところは、意外と難しい。ある程度はルールベースで入れて、個別にルールを追加しながら試しているところ。
2017.02.19
コメント(0)
先日、ESP-WROOM-02 で AquesTalk pico LSI を喋らせてみた (1) が、予めプログラムに喋る言葉を組み込んでおいて、単にそれを喋るだけの状態だったので、外部から喋る言葉を送り込んで喋らせるようにしてみる。WROOM-02 で Webサーバを立てて、外からは HTTP で情報を送り込むのが、とりあえず楽そうなので、ESP8266とATP3011を使った音声合成出力 を参考にする。最初、自分でプログラムを書いたときに Synthe に、直接、送られてきた文字列を渡したらエラーになったので、調べてみたら上記のプログラムを見つけて、下のようにしないとダメだと分かった。Synthe の引数は const char* になので、String を渡してもダメなのね。int len = message.length();char buff[len];message.toCharArray(buff,len); atp.Synthe(buff); // 引数に指定のテキストを発声次に、パソコンから次のような Python のプログラムで喋らせてみた。import requestsr = requests.get("http://wroom-02-address/speak?say=onakaga/hettayo.")問題になるのが、喋らせる内容がアルファベットの音声記号だということ。最初は、音声記号列生成 Webサービス を使って、音声記号に変換したものを渡そうかと思ったのだが、AquesTalk pico LSI に一度に渡せる文字列長に制限があるので、そのあたり考慮しないとダメだと分かった。制限を超える文字列を渡すと、何も喋ってくれないので、予め文字列を短く区切って渡す必要がある。ちなみに、文字列長を超える文字列を渡した時も、r.status_code は 200 で返ってくるので、とりあえず喋らせて失敗したら短くするとかいうのはダメ。渡す前に毎回チェックする必要がある。ローマ字記号列(半角英数小文字)の長さは最大 127byte なので、その長さ以下で収まりのよい感じに区切ってあげるひつようがある。アクセントの位置とかも、音声記号列生成 Webサービス だと好みに合わないときがあるので、自分で作ってみることにした。例えば、尖閣に安保」日米確認へ、国防長官の来日時に の記事の初来日するマティス米国防長官が、沖縄県の尖閣諸島について「対日防衛義務を定めた日米安全保障条約第5条の適用対象になる」とする見解を、稲田防衛相との間で確認する見通しになった。を音声記号列生成 Webサービス で変換すると、hatsura'ini_chisuru,ma'_thisu/beikokubo-cho'-kannga okinawa'kennno/sennka_kusho'to-nitsuite ta'i/nichibo-eigi'muo/sada'meta,ni'chi/beiannzennhosho-jo'-ya_ku,da'i/<NUMK VAL=5 COUNTER=jo'- MODE=AaH>no/tekiyo-ta'isho-ni/na'ru to/suru/kennkaio inada,bo-ei'sho-tono/aidade,kakuninnsuru/mito-shini/na'tta.となる。このままだと長過ぎるので、文字列を分割して、hatsura'ini_chisuru,ma'_thisu/beikokubo-cho'-kannga okinawa'kennno/sennka_kusho'to-nitsuite ta'i/nichibo-eigi'muo/sada'metani'chi/beiannzennhosho-jo'-ya_ku,da'i/<NUMK VAL=5 COUNTER=jo'- MODE=AaH>no/tekiyo-ta'isho-ni/na'ru to/suru/kennkaio inada,bo-ei'sho-tono/aidade,kakuninnsuru/mito-shini/na'tta.となるが、次のようにした方が、自分には自然に聞こえる。まあ、自然にというのは、主観的なものだから人によって違うだろうけど、自分に違和感のないイントネーションで喋ってくれるところを目標にする。hatsura'ini_chisuru,ma'_thisu/beikokubo-cho'-kannga okinawa'kennno/sennka_kusho'to-nitsuite tai'/nichibo-eigi'muo/sada'metani'chibei/annzennhosho-jo'-ya_ku,da'i/<NUMK VAL=5 COUNTER=jo'- MODE=AaH>no/tekiyo-ta'isho-ni/na'ruto/suru/kennkaiwo inada,bo-ei'sho-tono/aidade,kakuninnsuru/mito-shinina'tta.2つを比較するために喋らせてみた。ちょっとアクセントの位置を調整するだけで、自分にとってはだいぶ聞きやすくなった。import requestmessage1 = ["hatsura'ini_chisuru,ma'_thisu/beikokubo-cho'-kannga okinawa'kennno/sennka_kusho'to-nitsuite ta'i/nichibo-eigi'muo/sada'meta","ni'chi/beiannzennhosho-jo'-ya_ku,da'i/<NUMK VAL=5 COUNTER=jo'- MODE=AaH<no/tekiyo-ta'isho-ni/na'ru to/suru/","kennkaiwo inada,bo-ei'sho-tono/aidade,kakuninnsuru/mito-shinina'tta."]message2 = ["hatsura'ini_chisuru,ma'_thisu/beikokubo-cho'-kannga okinawa'kennno/sennka_kusho'to-nitsuite tai'/nichibo-eigi'muo/sada'meta","ni'chibei/annzennhosho-jo'-ya_ku,da'i/<NUMK VAL=5 COUNTER=jo'- MODE=AaH>no/tekiyo-ta'isho-ni/na'ruto/suru/","kennkaiwo inada,bo-ei'sho-tono/aidade,kakuninnsuru/mito-shinina'tta."]for i in range(3): requests.get("http://ESP-WROOM2-address/speak?say=%s" % message1[i])for i in range(3): requests.get("http://ESP-WROOM2-address/speak?say=%s" % message2[i])感じかな混じり文から、読みを生成するのは、MeCab: Yet Another Part-of-Speech and Morphological Analyzer を使って、多少ヒューリスティックな変換ルールを追加するかな。日本語形態素解析システム JUMAN++ も使ってみるか。JUMAN++は言語モデルを利用した高性能な形態素解析システムです.言語モデルとして Recurrent Neural Network Language Model(RNNLM) を用いることにより,単語の並びの意味的な自然さを考慮した解析を行います.それにより JUMAN,MeCab に比べ大きく性能が向上しています.文法・辞書・出力フォーマット等は JUMAN から引き継いだものを利用しています.本システムは CREST「知識に基づく構造的言語処理の確立と知識インフラの構築」の支援により開発されました.らしい。最近、この手のことをやっていなかったので、また、ちょっと言語処理系もチャレンジしてみるか。
2017.01.29
コメント(0)
ESPr Developer(ESP-WROOM-02開発ボード) で 音声合成LSI 「AquesTalk pico LSI」 を制御してみようかと思っているので、とりあえず、AquesTalk pico のデモモードで喋らせてみた。ESP-WROOM-02 は、まだ電源供給に使っているだけで、LSI と、PAM8012 というD級アンプ(基板の上の方に飛び出ている部分)とスピーカーを繫いだら、デモモードでプリセットメッセージを喋ってくれた。AquesTalk pico LSI は、Atmel 社の 8bit マイクロコントローラ ATmega328(または ATmega328P)に、音声合成ミドルウェア AquesTalk pico をファームウェアとして搭載した製品ということなので、Arduino UNO の ATmega328 を引き抜いて、代わりに基板に挿してしまうのが、一番簡単な使い方のようだ。AquesTalk pico LSI の特長は、次の通り。文字列を送るだけで音声出力するシンプルインターフェース実装に便利な 28pinDIP、小サイズの 32pinTQFP の2種類のパッケージ外付け部品不要(アナログオーディオアンプは別途)Arduino uno などの基板に直接装着して使用可能3種のシリアルインターフェース UART/I2C/SPI2種類のカスタマイズ可能なチャイム音数値を適切な読みとアクセントで読み上げ(タグ指定)カスタマイズ可能な 15 種類のプリセットメッセージ端子の変化をトリガにプリセットメッセージを発声話速やプリセットメッセージなどを実装後に設定可能ユーザ設定専用アプリ PicoRomWriter を別途配布簡単に Arduino UNO を使ってやってもよいが、それだけだと単体でネットワークから命令を送って何か喋らせるとかできないので、ESP-WROOM-02 をつなぐことにした。AquesTalk pico LSI の動作電圧は 2.5V - 5.5V なので、5V 動作の Arduino UNO でも、3.3V 動作の ESP-WROOM-02 でも問題ない。ちなみに、LSI の消費電流は 3V 時のコマンドモードでは、UART が 0.5mA、I2C が 0.07mA、SPI が 0.5mA で、I2C を使うのが消費電力が少なくて済むようなので、I2C で接続することにした。Arduino用 音声合成LSIライブラリ のライブラリと回路図を参考に組んでみた。制御のためのライブラリは、 Arduino_AquesTalk_Library.zip を使わせていただいた。とりあえず、喋るようになったので、次は、外部のプログラムから喋らせる仕組みを作ってみようかと思っている。
2017.01.23
コメント(0)
Blynkを Raspberry Pi で使ってみた。プログラムをしないでも「RaspberryPi」を遠隔操作できるスマホアプリ「Blynk」が凄い!!Raspberry Piを自在に遠隔操作できるスマホアプリ「Blynk」を実際に使ってみた!ESP-WROOM-02 と Blynk でLEDコントロールBlynk Server を経由してデバイスとスマホの通信を行うが、LED のオンオフをしてみても、特に遅延を感じることなく操作することができて、よい感じ。やってみると、かなりお手軽に使えた。ただし、無料枠はすぐに使い切ってしまうので、継続的に何台ものデバイスを扱おうとするなら、お金が必要になるが、安いからその程度支払ってもいいかなという感じ。最小限のお遊び程度なら無料で使える。実際には、次のページを参考にして、試してみた。第1回 IoTサービス「Blynk」を導入しよう - 連載 IoTサービス「Blynk」を使ってRaspberry Piをスマホからコントロールしよう第2回 スマホからLチカをやってみよう - 連載 IoTサービス「Blynk」を使ってRaspberry Piをスマホからコントロールしよう第3回 CPUの温度/周波数/負荷状態を見よう - 連載 IoTサービス「Blynk」を使ってRaspberry Piをスマホからコントロールしよう第4回 温度センサーを接続してグラフにしよう - 連載 IoTサービス「Blynk」を使ってRaspberry Piをスマホからコントロールしよう第5回 スマホからRaspberry Piをシャットダウンしよう第6回 ドアが開いたらスマホにPUSH通知させよう
2017.01.10
コメント(0)
Elecrow3.5インチタッチパネル タッチスクリーンディスプレイを購入した。解像度 は、480X320。Raspberry Pi に接続してみた。Amazon で 2,325円だった。情報は、3.5 Inch 480x320 TFT Display with Touch Screen for Raspberry Pi と このページの下の方にドライバのリンクなどある。ドライバをダウンロードして (Driver for B+/2B、Driver for 3B)、解凍後、LCD35-show を実行すると、必要なファイルをコピーしてくれる。再起動したら、あっさりと動いた。ただし、LCD35-show の中身を見ると、/boot/cmdline や /boot/config.txt などを上書きしてくれちゃうので、5,6,7行目はコメントアウトして、手動で必要な部分を編集してから実行したた。ドライバを組み込んだ Raspberry Pi のイメージもあるようだが、そちらは試していない。安くて、簡単に使い始められるので、けっこういいかもしれない。LCD の制御は SPI で、特に何も意識せずに使えるが、GPIO ピンが半分以上使われてしまう。ちなみに、Elecrow は中国の深セン市にある会社で、基板製造メーカとして安くて有名みたい。検索してみると、けっこう使っている人がいるみたい。(LCD からビニールカバーを取り外す前に写真を撮ったので、画面がちょっと汚く見えるが、実際にはきれいな色が出ている)Elecrow3.5インチタッチパネル タッチスクリーンディスプレイ480X320解像度 TFTモニター LCDタッチスクリーンキット Raspberry Pi B+/2B Raspberry Pi 3B対応
2017.01.08
コメント(0)
I2C 接続の LCD を ESP-WROOM-02 につないでみる (2)のあと、Arch Linux がアップデート中にフリーズしまって復旧するのに手間取っていた。boot 領域が壊れてしまったので、復旧するついでに、MBR から GPT に変換して、BIOS モードでの起動から UEFI モードでの起動に代えた。色々おかしな状態になってしまったのを調整して、順調に戻ったので、電子工作を再開する。ちなみに、Arch Linux は、それなりに馴染んできて、いい感じで使えている。LCD は AQM0802A をとりあえず使っているが、ON/OFF したいとかあるので、ちゃんとした使い方を調べているうちに、Arduino IDE の [Sketch] - [Include Library] - [Manage Libraries] で出てくる [Library Manager] で AQM0802A を検索して、Hideki Yamauchi さんの "FaBoLCDmini_AQM0802A" をインストール ボタンを押してインストールしてしまうのが一番楽な使い方かもしれないと思った。I2C で接続しているのでプリミティブに、AQM0802A スペックシート の "DISPLAY INSTRUCTION TABLE" とかを見ながらコードを書いていけば、ライブラリがなくても制御できるようになったが、スペックシートを確認しながらコードを書くのも面倒なので、ライブラリ化されたものを使うことにした。ライブラリを使わずに書こうとすると、#include <Wire.h>#define LCD_ADDR 0x3evoid setup(){ Wire.begin(4, 5); delay(40); // 初期化: ■初期設定例■ uint8_t cmd_init[] = {0x38, 0x39, 0x14, 0x70, 0x56, 0x6c, 0x38, 0x0d, 0x01}; size_t i; i = sizeof(cmd_init); for (i=0; i<len; i++) { Wire.beginTransmission(LCD_ADDR); Wire.write(0x00); Wire.write(cmd[i]); Wire.endTransmission(); delayMicroseconds(27); // 26.3us } 以下、省略}ディスプレイを OFF にするには、Display ON/OFF のところを見て、RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 1 D C Bで、D: Display ON/OFF controlbit を 0、 C: Cursor ON/OFF control bit を 0、B: Cursor Blink ON/OFF control bit を 0 としたいので、000001000 で、16進数に直して、0x08 を Wire.write してやれば、ディスプレイをオフにできるのも確認できた。参考になるページは、ESP-WROOM-02 AQM0802A とかキーワードにして検索すればたくさん見つかる。ESP-WROOM-02 の Arduino 環境で I2C 制御ESP8266 (ESP-WROOM-02) で I2C LCD 8桁2行 を制御するI2C液晶のArduinoライブラリ – ST7032ESP-WROOM-02でLCD表示ライブラリを使えば、Example を参考にして、#include <Wire.h>#include <FaBoLCDmini_AQM0802A.h>// ライブラリの初期化FaBoLCDmini_AQM0802A lcd;void setup() { // LCD の初期化 lcd.begin();}void loop() { lcd.home(); // 0, 0 にカーソルを移動 // 0 から 9 を表示 for (int thisChar = 0; thisChar < 10; thisChar++) { lcd.print(thisChar); delay(500); } // ディスプレイをOFF lcd.noDisplay(); delay(500); // ディスプレイを ON lcd.display(); delay(500);}色々、公開されているライブラリもあるのだが、Arduino IDE から、簡単にインストールできてすぐ使えるので、これが一番楽かもしれない。スマホからの ON/OFF を考えていたが、電池の消耗を抑えるために、やっぱり、物理的にスイッチを追加して、ON/OFF するようにしようかな。とりあえず太陽電池付きのバッテリーを買ったので、どの程度、連続動作できるかも試してみようかと思っているところ。ちなみに、FaBoLCDmini_AQM0802A を使うと、"WARNING: library FaBo_213_LCD_mini_AQM0802A claims to run on [avr] architecture(s) and may be incompatible with your current board which runs on [esp8266] architecture(s)." のようなエラーが出るが、ESP-WROOM-02 を使っているときは、Arduino/libraries/FaBo_213_LCD_mini_AQM0802A/library.properties を編集して、architectures=avr を architectures=esp8266 に書き換えてしまえば、WARNING が出なくなる。
2016.11.16
コメント(0)
I2C 通信を使った LCD を使ってみる前に、I2C 接続の LCD を ESP-WROOM-02 につないでみる (1)で予習をしてみた。大まかにどういうものかが分かったが、プログラミングはちょっと面倒になるかなという印象。数少ないピンを有効に使うには、I2C を使えた方が良さそうなので、頑張ってみる。わかりやすいI2C通信で電子工作、I2C接続小型LCDモジュールに表示を行う なども参照。LCD は、I2C接続小型キャラクタLCDモジュール 8x2行 [AQM0802A-RN-GBW] を試してみる。単体だと、いろいろ大変なので、I2C接続小型LCDモジュール(8x2行)ピッチ変換キット(K-06795)、 I2C接続小型LCDモジュール(8x2行)ピッチ変換モジュール(完成品)(M-09109) を買うのが無難かも。完成品でも700円で買える。LCDモジュール単体だと 320円だけど、ピッチ変換モジュールはあった方が楽だと思う。8桁2行だと、辛いかもしれないので、16桁2行の 1602 も購入した。WROOM-02 に温度湿度センサーと照度センサーを付けてみた に気圧センサーを付け、LCD を付けてみた。気圧センサーと LCD は I2C で接続してある。色々つけたら、残りのピンは 1本だけになった。最初にブレッドボードで、あれこれ試したあと、ユニバーサル基板を使って実装してみた。下の写真をとったときには、大気圧センサーを付けていなかったが、その後、MPL115A2 を組み込んだ。ユニバーサル基板に移すときに、あれこれしくじってしまい、かなり苦労したが、とりあえずハードは出来上がったので、しばらく動かしておく。LCD をつけたので、常時、温度、湿度、気圧を確認できるようになったが、つけっぱなしにしておいた場合、どの程度、電池が持つものか試してみる。まだ、データのアップロードはしていないので、それなりに持ってくれると思うのだが、ネット経由でスマホから LCD の ON/OFF などできるように考えようかな。ちなみに、ユニバーサル基板では、WROOM-02 のブレイクアウトボードはスイッチサイエンスのT型のを使っている。こっちの方が、基板を広く使えるので使い勝手はいいかもしれない。LCDは 8x2行なので、かなり窮屈。照度センサーの値は、表示できなかったので、データをアップロードして残すようにしようかと。あるは、温度等を表示したあとに、スクロールするような感じで、表示し直すか。明るさは目で分かるので、データの利用だけでいいかもしれない。WROOM-02 に温度湿度センサーと照度センサーを付けてみた の時点で、温度・湿度センサーは AM2302 (DH22) を買ってしまっていたので、温度湿度センサーと大気圧センサーの2個をつけることになってしまったが、もう少しシンプルにするため、次は BME280使用 温湿度・気圧センサモジュールキット を試そうかな。今回は、温度・湿度センサー()、気圧センサーと 2個つけたけれど、1個で済ませたいし。とも思ったが、大気圧センサーは、同じ家の中にいくつもしかけてもしょうがないので、やめておく。とりあえず、Lチカ卒業レベルまで達したかな。もっとも、電子回路の基本知識が欠けているので、見様見真似の域を出ていないのだけど。意外に正確そうなI2C大気圧センサーMPL115A2の測定値Arduinoで大気圧センサMPL115A2の値を読むMPL115A2用ライブラリ (garettlab: Arduinoで遊ぶページ)大気圧センサ (garretlab: Arduinoで遊ぶページ)I2C接続小型8文字×2行液晶 (AQM0802A)気圧センサー(MPL115A2)で大気圧と標高を測定して見ますESP8266の消費電流の徹底調査LCD(I2C接続の液晶表示)
2016.10.17
コメント(0)
先日、Arduino に LCD をつないでみる のをやってみたが、Arduino UNO とかは 5V 動作だが、ESP-WROOM-02 は 3.3V 動作なので、5V 用の LCD をつないでも、いい感じに表示されなかった。当然のことだが。ということで 3.3V で動作する LCD を購入した。その際に、パラレル接続だと 6本のピンを使ってしまうので、使用するピンの数を抑えるために、I2C 接続のものを購入してみた。I2C 接続であれば 2本のピンだけしか使わないで済むから。ちなみに1個あたり、数百円なのでいくつか購入してみた。I2C は、アイ・スクエア・シー、あるいはアイ・アイ・シーと読む、I2C (Wikipedia) をざっと読む。I2C は IIC (Inter-Integrated Circuit) の略ということ。抵抗でプルアップされた双方向のオープンコレクタ信号線が2本、シリアルデータ (SDA) とシリアルクロック (SCL) からなる。最大 112 個のノードが、同じバス上で通信するので、命令を出すときにはどのデバイスかというのを指定してやることになる。だから、パラレル接続のときより、プログラムがちょっと高度になる。LCD などは、誰かがすでに書いてくれたライブラリを使えばよいだろうが、UM10204I2C バス仕様およびユーザーマニュアル も、さらっと流し読み。全部理解するのは無理なので、どういう言葉が使われているかを中心に見ておく。I2C Bus (Inter-Integrated Circuit) - slideshare のあたりとか、I2CでRaspberry Piから複数の周辺機器を制御する のあたりとか見ると、なんとなく感じは分かった。実際、ネットで適当な記事を探して、LCD やパーツをつなぎ合わせて、ライブラリをダウンロードして、読み込むように設定して、スケッチを書けば(コピーすれば)、すぐに動かせるのだろうが、ここはちょっと、お勉強しながらやってみることにする。ちなみに楽天のショップだと、1,000円以下の安いものが見つからなかった。下にあるのは 1,121円から、2,020円のもの(SPI対応のものも入っている)。はんだ付けしないで使えそうだし、I2C/SPI の両方に対応して、シールド化されているようなので、若干、高くても、こういうのを買うてもあるかもしれない。時代の流れからいえば、パーツやキットからはんだ付けしてというより、ケーブルをつなぐだけで使い始めるのが流行っているようだけど、GROVE - スターターキットV3、Grove - Starter Kit for Arduino、Grove System Introduction とか、自分は昭和世代なのであえて、ベーシックなところから取り組んでみる。マルツエレック 液晶モジュール 【MI2CLCD-01】〈Arduino関連〉I2C/SPI LCD1602 Module(Black on Green)〈Arduino関連〉I2C/SPI LCD0802 Module(Black on Green)〈Arduino関連〉I2C/SPI LCD1602 Module(White on Blue)〈Arduino関連〉I2C/SPI LCD2002 Module(Black on Green)
2016.10.07
コメント(0)
Arduino UNO の互換機に Hitachi HD44780 互換の LCD を購入してつないでみた。arduinoでLCDを利用する方法 や、LiquidCrystal Library を参照。Arduino のサイトを見るのが一番いいかも。配線も、Hello World! 等、それぞれのページに書かれているので、そのとおりやれば問題なかった。ESP-WROOM-02 に同じものをつないでみたが、通常の Arduino が 5V 動作なのに対して、ESP-WROOM-02 は 3.3V 動作なので、5V 対応の LCD なので、そのままだとディスプレイが暗くてだめだった。抵抗を外してもかなり暗い。ということで、ESP-WROOM-02 用にはちゃんと 3.3V で動作するものを買わなくてはダメって、当然なのだけど。下の写真だと、それほどダメっぽく見えないが、実際はもっと暗く見える。
2016.10.03
コメント(0)
USB で繫いで給電するというのもあるだろうが、それだと、好きな場所に作ったデバイスを置けなくなる。なので、とりあえずは電池をつなぐことにする。そこで問題となるのが、WROOM-02 は 3.3V の電源供給が必要ということ。乾電池は 1.5V とだから、2本直列にしても 3.0V で足りないし、3本直列にしたら、4.5V で大きすぎる。なので、ちょっと部品をつないで、単3電池 3本を直列にしたボックスから供給されたた電源を、3.3V に落として使うことにする。これを簡単にできるのが、東芝の TA48M033F (三端子正出力ロードロップアウトレギュレータ)。3本の足に左から、入力、出力、接地、出力となっているので、入力と接地に電池から来ているケーブル、出力と接地を WROOM-02 の回路に流してやる。加えて、2つのコンデンサーが付属しているので、入力-接地、出力-接地をつなぐようにそれぞれ接続。出力側のコンデンサは 33 μF、入力側のコンデンサーは 0.1μF でよいようだ。秋月電子で買ったら、47μFと 0.1μF が付属して 100円だった。ちなみに、白色の四角い温度湿度センサーの後ろに TA48M033F を付けているが、微妙に温度に影響あるかな。まあ、ほんのちょっと動かしてデータを送ったら眠ってという使い方なので、コンデンサーが熱を持つまでいたらないか。実用に移す前に配置も考え直そう。ケーブルもぐちゃぐちゃだし、スイッチの場所も悪いし。とりあえず、動けばいいやでつないじゃったから。ちなみに LED はセンサーが動く前に1秒光らせて、消灯後、データを送ったら点滅させて眠るというように、動きが目で分かるに入れてある。楽天アフィリエイトで TA48M033F 探したらなかった。Amazonで買うと、単体で50円のが見つかった。ESP-WROOM-02 もツクモロボット王国@楽天市場店の税抜 800 円しか見つからない。楽天はこういうところはむちゃくちゃ弱い。CDP-ESP8266 を買っても税抜き 842円なのに。ちょっと残念な状況。Amazon で買うと、中国とかから送られてくる場合もあって、品質はどうなんだとかいうものもあったりするが。。。。espressif ESP-WROOM-02 Wi-Fiモジュール
2016.09.25
コメント(0)
WROOM-02 に温度湿度センサーと照度センサーを付けてみたを書いていたときに思った、パーツを買うか、キットを買うかという話。WROOM-02 なんかも、単体で買えば 500円そこらだが、あれこれつけたものを買うと、高くなる。センサーなんかも、自分でパーツを買って組み上げると安いけれど手間暇かかる。TABシールドV1.1 みたいなものを買えば、14種類のセンサなどがオンボードになっているので、Arduino と繋げば、すぐに実験を始めることができる。けれど、13,500 円。Arduino UNO と合わせたら、17,000円前後になるだろうか。けっこうなお値段になってしまう。最初の一歩にはいいけれど、これを使ってあれこれ作るのは辛い。となると、1台を使いまわしていくような感じになるので、実用の一歩にはなりづらい。結局、実用的なものを作ろうとすると、部品を買って組み上げていくことになる。プログラミング自体に馴染みのない人にとっては、こういうので始めて、敷居を低くしておくのは有効な手段だが。じゃあ、ESPr Developer(ESP-WROOM-02開発ボード)のあたりはどうか (1つ買った)。このあたり、けっこう微妙な線で、同じものを部品から組み上げると、同じ程度の金額になるみたいなので、USBシリアル変換まで付けたものを作ろうとするなら、これでいい感じ。だけど、USBシリアルを1つ1つのボードにつける必要がなければ(USBシリアル変換は外付けでやって1つだけ持って、プログラムをアップロードするときだけつける)、この分、省くことができるから、手作りの方が安く上がる。ただし、手間暇まで考えると、この部分はこの程度でいいかもという気もする。そういえば、GCP 上で IoT アプリを素早く稼働させるプロトタイピング キットなんて記事が出ていた。Getting started with our IoT Developer Prototyping Kit を見てみると、Seeed Studio BeagleBone Green Wireless IOT Developer Prototyping Kit for Google Cloud Platformで $99。SeeedStudio BeagleBone Green Wireless $44.9 に Grove Base Cape を付けて、センサーをつけて、$99 ならありか。配線しなくても、必要なセンサーを付けられる。これはこれで、面白い方向かもしれない。Raspberry Pi にばかり気を取られていたが、Beagle Bone も Grove センサーモジュール でおもしろい世界を展開してたのね。WROOM-02 (ESP8226) の作る世界より、もう少し高度なコンピューティングが必要なところで、Raspberry Pi や BeagleBone は活躍していくのだろうし、プロトタイプを作るときにも、早く作れるのを優先して、とりあえず実装するっていうときにも、Grove みたいのはありだな。若干、割高につくけど、すぐにできる。お金で時間を買うか、安上がりにすませつつ、いろいろ覚えて応用力を磨くか。とりあえず、自分はほどほどのお金をかけて、ほどほどの応用力を磨くのに、WROOM-02 を使い続けてみようかと思う今日この頃。
2016.09.25
コメント(0)
湿度センサー(HDC1000/AM2302)を動作させて見ますを見ながら、AM2302 を付けて、ESP-WROOM-02 でアナログリードを試してみた を参考に照度センサーを付けてみた。また、消費電力を抑えるために、ESP8266の真骨頂Deep-Sleepモードの使い方を参考に、30秒に1回だけ、センサーの値を読み取るようにしてみた。写真は、左が WROOM-02 で組み上げたもの。右が WROOM-02 搭載の MKZ4。気圧センサーを注文中なので、気圧センサーをつけたら電池で動くようにして、インターネット上のサービスのどれかにデータをあげるようにしたら、実運用にしてしまおうと思っている。気温、湿度、気圧、照度を記録して、何かするという方向。いろいろ調べながらやっていくうちに、どこまで個々に買い集めたパーツを組み立てて作るか、ある程度きっとになったものを買って組み立てていくか、ということ。例えば、3.3V に降圧するのにパーツを買うか、キットを買うか、組み上がったものを買うか、スピーカーをつなぐのに、アンプはどうするかとか。まあ、ある程度安いキットであれば、キットになったものを買う程度の方が自分にはよいかなと思いながら、余計なパーツも買っている。この先作ろうと思っているのは、部屋の中の動きを記録しておくもの。何か音声で情報を伝えてくれるもの。わかりやすい表示で伝えてくれるもの。リモートコントロールで家電を制御するもの。等々。黙々と働ける小さいのを10個ぐらい作ろうかなと。そして、電力はできれば太陽電池から給電する。単にネットワークにつながる安価なマイコンを手に入れただけで、あれこれやってみたいことが出てくる。まあ、おっさん世代には、子供の頃にやってみたかったことが、手軽にできるようになってワクワクという感じなのかもしれない。
2016.09.25
コメント(0)
全18件 (18件中 1-18件目)
1