2016-01-01から1年間の記事一覧
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
80MHz で最大 20Mbps まででるらしい。しかも、内蔵 8MHz クロックと内蔵 PLL で外付けクロックなしで 40MHz を生成できるっぽい! CD音質の 41.1kHz サンプリングならば、16bit x 41.1kHz なので十分なはず。
スピーカーを2個や3個で構成する場合、どんな回路にするのか調べた。 もとは一つの音源に対し、ウーファー(低音用)・ツィーター(高音用)信号にわけるには、ローパスフィルター・ハイパスフィルターをかけて分離する。 アナログ的にはRCやLCでフィルタ…
ネットワークスピーカー用の安価なケースを探していたところ、100円ショップ Seria で良いものを発見! この大きさならば、良い音を期待できる。ちょっと本気のスピーカー用。 スピーカー 8Ω8W: パーツ一般 秋月電子通商 電子部品 ネット通販 直径3cm…
通常は 115200 bps 以下で通信しているが、音声データや画像データ(!)を送信可能か検討するため、実現できる最大通信速度について調査する。 まずはググった。 ESP8266 ESP8266 は 20Mbps まで動くらしい。 ESP8266 max baud rate - Everything ESP8266 …
nucleo シリーズは外部電源として、3.3V, 5V, 7 - 12V に対応している。 外部電圧として、1.2V x 8 = 9.6V を与えるとき、どんな回路にすべきか? 単純に 7-12V の設定にした場合、電池が消耗して 7V 以下になった場合、CPUが動作不能になりそう。本来 3.3V …
手持ちの raspberry pi と bluetooth USBアダプタがあったので、使えるかどうか試してみた。 raspberry Pi2 OS : raspian jessie bluetooth USBアダプタ:Planet 社の BT-MicroEDR2X jessie には最初から bluez が入っていたっぽい。raspberry 3B 対応済と…
デジタルデータをDACに渡したあとの処理は大体わかった。オペアンプで増幅してスピーカにつなぐ回路はアプリケーション回路としてデータシートに載っていた。 音量調節は、入力信号を可変抵抗で調節する。可変抵抗は電子ボリュームを使えば、デジタルで調整…
無線で音量調節をする方法がわかった。 電子ボリュームというICをを知っていたが、原理や機能を知らなかった。デジタルで値を入力すると、抵抗値が変わるデバイスだった。 これを、オペアンプのフィードバック抵抗のところに使えば、音量を調節できる。 しか…
通常は、オペアンプで増幅するので、可変抵抗でボリューム調整できる。 しかし、今回は無線で外部から音量調整したいはず。また、スピーカの手元でも音量調整したいかも。 リモート制御と手元のボリュームを矛盾なく制御するのは難しい。 ところが。ネット検…
パワーLEDだと 200-300mA 流れるので、放熱が必要。 白色LEDユニットOSPR6XW1−W4XME1C1E 42.1mmΦ: LED(発光ダイオード) 秋月電子通商 電子部品 ネット通販 300ルーメン、300mA, 1300円。 白色LEDユニットOSPRO2W1−W4…
そういう商品があることを初めて知った。 RGB-LED鑑賞魚用照明の製作(2) - ガーデニング www.sansui-recorder.jp www.sansui-recorder.jp 土壌の水分センサは付いているが、気温・湿度、照度などは測っていない。 むしろ、散水用ホースやスプリンクラーセッ…
候補としては、 akizukidenshi.com akizukidenshi.com あたりがよさそう。専用のレンズもあるらしい。 akizukidenshi.com かなり明るくできそう。ただし。VFが9Vから10V くらいらしい。参考回路図だと12Vから14V の電源電圧に、10W級のセメント抵抗を直列…
秋月で買える焦電センサモジュールは2種類。 akizukidenshi.com akizukidenshi.com センサ単体でも購入できるが、オペアンプによる信号増幅とコンパレータによるON/OFF判定出力の回路が必要になる。それらをまとめたICも秋月で買えるが、一体型のモジュール…
各種センサで環境と作物の生育状況を記録し、そのデータから最適な環境になるように環境を整える。 温度センサ 湿度センサ 気圧センサ 土壌センサ 照度センサ 環境を制御するアクチュエータは 送風ファン 散水装置 加湿装置 LED照明 サーバに多数の観測地点…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
ちょっとググったぐらいではみつからなかった。 きっとあるはず。 あ、boost? やっぱりあった。 qiita.com boostjp.github.io うん、これを試してみよう。
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
近藤さんがBoost.SML@札幌で発表してきたそうな。 http://www.slideshare.net/taka111/cppcon2016-report-and-boostsml
argc, argv ともに仕様で書き換え可能らしい。 <引用>JIS X30105.1.2.2.1 プログラム開始処理- 仮引数argc,argv及びargv配列が指す文字列は,プログラムによって変更可能でなければならない。さらに,プログラム開始処理からプログラム終了処理までの間,…
ライブラリにどんなクラス・関数が含まれているか、nm コマンドで確認できる。 C++の場合、名前が mangling されているので、c++filt を使うと demangle してくれる。 また、nm に -C オプションを付けると demangle してくれる。 $ nm -C libecrobot++.a | …
CppCon2016関連情報。近藤さんの LT: https://www.youtube.com/watch?v=rXVg07rtSiI gdbの使い方に関するプレゼン。 https://www.youtube.com/watch?v=-n9Fkq1e6sg
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…