プログラミング言語とソフトウェアアーキテクチャ

実装言語はソフトウェアアーキテクチャにどのくらい影響があるものだろうか? 実装言語を選択する基準としていくつか考えられる。 言語仕様による部分もあるが、 ライブラリやフレームワークが充実していること は重要な条件だと思う。今、AI・ディープラー…

関数型プログラミング言語とその特徴

関数型プログラミング言語の特徴 参照透過性 パターンマッチング 高階関数 関数を引数にできる 関数を戻り値にできる クロージャー 遅延評価 部分適応 カリー化 特徴それぞれについて、具体的に理解したい。 What それはなにか? 概要。書式。 Why なぜそれ…

もっと使い慣れるツール

github と git 使っているといえば使っているが、もっと日常的に使うべき。 Redmine と backlog チケットドリブンな開発とガントチャートをちゃんと使えるようになりたい。 docker と virtualbox ポータブルな開発環境を使えるようになりたい。Windows に縛…

jupyter notebook

エクセルシートを python から読み書きする例。 名簿ファイルを読み取り、辞書オブジェクトに保存する。 --------------------------------------------------------------------------------------------------- import openpyxl as px # excel操作用ライブ…

パスワード管理ソフト

数ある管理ソフトのどれを使うのが良いのか、いろいろ調べたり試してみた。 結論を先に書く。 クリティカルなパスワードはローカルに保存。頻繁にアクセスするウェブサイト等はクラウド型。 非常に重要なパスワード お金が絡むもの。銀行、クレジットカード…

Microsoft のループバックアダプター

Windows でポートフォワーディングするにはループバックデバイスが必要らしい。 www.pingzic.com で、これを使って windows7 から ssh 経由で samba を使う方法 CIFS-over-SSH for Windows 7 手順が長く設定項目が多い。スクリプトで自動化したいところ。pow…

ssh の鍵の種類

以前に putty を使ったとき、putty で作った鍵は何か変換をしないと使えなかった記憶がある。 ので。ちょっとググった。 qiita.com 自分の場合、商用SSHを使う機会はほぼなく、OpenSSH ばかりのはず。 また、改行コードの紛らわしさを考えると、鍵はサーバ側…

webサービス連携

google カレンダー slack gmail google drive google spreadsheet google さんのサービスで統一しようかと思ったが、チャットサービスの hangout は 有料サービスだった。ので。無料の slack にした。 slack は google カレンダーと連携する機能がある。 htt…

通信環境見直し

WiMAXの更新月は2017年3月だった。 So-net の WiMAX2+ をそのまま継続すると、キャンペーンサービスの対象にならない。 ので。一旦解約する。その後、So-net か UQWiMAX でWiMAX2+ の契約をする。 一方、docomo の契約更新月は2017年2月。(1月25日が更新日…

pic32mx の UART

80MHz で最大 20Mbps まででるらしい。しかも、内蔵 8MHz クロックと内蔵 PLL で外付けクロックなしで 40MHz を生成できるっぽい! CD音質の 41.1kHz サンプリングならば、16bit x 41.1kHz なので十分なはず。

デジタルフィルタ用マイコン?

スピーカーを2個や3個で構成する場合、どんな回路にするのか調べた。 もとは一つの音源に対し、ウーファー(低音用)・ツィーター(高音用)信号にわけるには、ローパスフィルター・ハイパスフィルターをかけて分離する。 アナログ的にはRCやLCでフィルタ…

スピーカーボックス?

ネットワークスピーカー用の安価なケースを探していたところ、100円ショップ Seria で良いものを発見! この大きさならば、良い音を期待できる。ちょっと本気のスピーカー用。 スピーカー 8Ω8W: パーツ一般 秋月電子通商 電子部品 ネット通販 直径3cm…

ESP8266 と LPC1114 の UART 最大通信速度

通常は 115200 bps 以下で通信しているが、音声データや画像データ(!)を送信可能か検討するため、実現できる最大通信速度について調査する。 まずはググった。 ESP8266 ESP8266 は 20Mbps まで動くらしい。 ESP8266 max baud rate - Everything ESP8266 …

nucleo の電源

nucleo シリーズは外部電源として、3.3V, 5V, 7 - 12V に対応している。 外部電圧として、1.2V x 8 = 9.6V を与えるとき、どんな回路にすべきか? 単純に 7-12V の設定にした場合、電池が消耗して 7V 以下になった場合、CPUが動作不能になりそう。本来 3.3V …

raspberry pi で bluetooth

手持ちの raspberry pi と bluetooth USBアダプタがあったので、使えるかどうか試してみた。 raspberry Pi2 OS : raspian jessie bluetooth USBアダプタ:Planet 社の BT-MicroEDR2X jessie には最初から bluez が入っていたっぽい。raspberry 3B 対応済と…

WAVファイルフォーマット

デジタルデータをDACに渡したあとの処理は大体わかった。オペアンプで増幅してスピーカにつなぐ回路はアプリケーション回路としてデータシートに載っていた。 音量調節は、入力信号を可変抵抗で調節する。可変抵抗は電子ボリュームを使えば、デジタルで調整…

電子ボリューム

無線で音量調節をする方法がわかった。 電子ボリュームというICをを知っていたが、原理や機能を知らなかった。デジタルで値を入力すると、抵抗値が変わるデバイスだった。 これを、オペアンプのフィードバック抵抗のところに使えば、音量を調節できる。 しか…

無線スピーカの音量制御

通常は、オペアンプで増幅するので、可変抵抗でボリューム調整できる。 しかし、今回は無線で外部から音量調整したいはず。また、スピーカの手元でも音量調整したいかも。 リモート制御と手元のボリュームを矛盾なく制御するのは難しい。 ところが。ネット検…

パワーLEDモジュールと放熱板

パワー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 土壌の水分センサは付いているが、気温・湿度、照度などは測っていない。 むしろ、散水用ホースやスプリンクラーセッ…

LED照明モジュール

候補としては、 akizukidenshi.com akizukidenshi.com あたりがよさそう。専用のレンズもあるらしい。 akizukidenshi.com かなり明るくできそう。ただし。VFが9Vから10V くらいらしい。参考回路図だと12Vから14V の電源電圧に、10W級のセメント抵抗を直列…

焦電センサ

秋月で買える焦電センサモジュールは2種類。 akizukidenshi.com akizukidenshi.com センサ単体でも購入できるが、オペアンプによる信号増幅とコンパレータによるON/OFF判定出力の回路が必要になる。それらをまとめたICも秋月で買えるが、一体型のモジュール…

スマートアグリ?

各種センサで環境と作物の生育状況を記録し、そのデータから最適な環境になるように環境を整える。 温度センサ 湿度センサ 気圧センサ 土壌センサ 照度センサ 環境を制御するアクチュエータは 送風ファン 散水装置 加湿装置 LED照明 サーバに多数の観測地点…

C++ のソケットライブラリ?

ちょっとググったぐらいではみつからなかった。 きっとあるはず。 あ、boost? やっぱりあった。 qiita.com boostjp.github.io うん、これを試してみよう。

【C++メモ】ステートマシン図の実装用ライブラリ

近藤さんがBoost.SML@札幌で発表してきたそうな。 http://www.slideshare.net/taka111/cppcon2016-report-and-boostsml

argc, argv ともに仕様で書き換え可能らしい。 <引用>JIS X30105.1.2.2.1 プログラム開始処理- 仮引数argc,argv及びargv配列が指す文字列は,プログラムによって変更可能でなければならない。さらに,プログラム開始処理からプログラム終了処理までの間,…

【C++】nm と c++filt

ライブラリにどんなクラス・関数が含まれているか、nm コマンドで確認できる。 C++の場合、名前が mangling されているので、c++filt を使うと demangle してくれる。 また、nm に -C オプションを付けると demangle してくれる。 $ nm -C libecrobot++.a | …

【C++】メモ

CppCon2016関連情報。近藤さんの LT: https://www.youtube.com/watch?v=rXVg07rtSiI gdbの使い方に関するプレゼン。 https://www.youtube.com/watch?v=-n9Fkq1e6sg

3DCADのファイルフォーマット

http://ome3ddo.blog.jp/PTC-Creo-Elementsy-Direct-Modeling-Express 無料で使える3D CADについて調べた。 www.ptc-jp.com が良さげ。 しかし、windows 版しかない。mac os x で使える物を探した。 www.autodesk.co.jp が評判が良い。趣味で使う分には無料。…

連結ピンヘッダ

事前に十分調べたつもりでも、やっぱりやってみて初めて気づくことがある。 zumo shield ver1.2 の Arduino ピンヘッダと nucleo F401RE の Arduino ピンフレーム、ピン数や位置は事前に確認済だった。 が。実際に組んでみたところ。zumo shield の電解コン…

ADC の端子割り当て、解決

漸く納得がいった。 GPIOで analog モードに設定できるが、これを ADC につなげることはできない。ハイインピーダンスにして、消費電力を抑えるために設定するみたい。 ADCに接続できる端子はあらかじめ決まっている。データシートを参照すること。 Table 8.…

【mbed】ADC 端子を変更・追加できる?

stm32F401RE は、ADCを1個 16ch 持っている。(データシートを参照のこと。リファレンスマニュアル、ユーザマニュアルは複数のMPUについて書いてあり、ペリフェラルの個数についてはデータシートに記載されている) GPIOのモードレジスタで「アナログ入力」…

mbed で ADC

ADCのチャネル指定にピン番号を指定するみたい。 今、PortB_4, PortB_5 を指定したいが、ここで必要なピン番号はICのパッケージでの端子番号みたい。なので、回路図から対応を探した。 PB4:No56、PB5:No57. 。。。違った。試したところ、 AnalogIn analog_va…

GPIOのビットとADCのチャネル

GPIOはそれぞれのポートに対するMODERで、ビット単位でアナログモードを設定できる。 一方、ADCは16chある。その対応をどこかで設定するはずなのだが、該当箇所が見つからない。なんとなく、ポートAとポートB, 16bit あるが、それぞれ下位 8bit ずつアナログ…

CubeMX とAlternateFunction

CubeMX を使うと、ピンアサインの設定が楽になるらしいので、試してみた。デフォルトの複数機能から選択することは簡単にできた。 だが、Zumo Shield の光センサアレイは、6本のADCが必要。4本は上記の機能で選択できた。が、残り2本、PB4,PB5をADCに割り当…

Zumo Shield の加速度センサとジャイロセンサ

どの端子を利用するのか? zumo_shield_for_arduino.pdf の 3.d. Inertial sensors (accelerometer, magnetometer, and gyro)Overview に情報があった。3軸加速度センサと3軸ジャイロセンサがこのシールドには載っているのだが、そのインターフェースは I2C …

モータ用端子の対応

arduino nucleo 右モータの回転方向 digital 7 PA6 左モータの回転方向 digital 8 PA9 右モータの回転速度 digital 9 PB6 左モータの回転速度 digital 10 PC7 赤外線センサアレイのピン対応 シルク面左から LL digital 5 PB4 LM Analog 2 PA4 LR Analog 0 PA…

光センサアレイのピン配置

光センサアレイのピン配置と zumo shield のピン配置、コントロール基板 nucleo F401RE のピン配置を確認する。 nucleo F401RE の arduino 端子は UNO ver3 と同じ。 STM32 Nucleo Board STM32F401: マイコン関連 秋月電子通商 電…

zumo shield のピン配置

Arduino shield としてのフレームの数は 10 x 1 8 x 1 8 x 1 6 x 1 で、nucleo と適合することはすぐわかった。が、電気的なピンアサインはどうだろう。 www.pololu.com 標準的な Arduino のピン配置は http://marcusjenkins.com/wp-content/uploads/2014/06…

zumo robot

Maker Fair Tokyo で zumo robot を知った。小型できびきび動いていた。相撲ロボット用のキットらしく、ぶつかっても壊れにくそうだった。ライントレーサ等に使えそう。 コントローラは Arduino な基板。1万円ちょっとの価格だった。 制御基板は ARM を使い…

漸くスマホデビューするか

iphone se が 3/31 に発売されるらしい。 iphone 6 より3万円安い 4inch サイズなので片手で操作可能 SIM フリー版があるので、格安SIMと組み合わせて使える 格安SIM(MVNO)の選び方次第では、ガラケーと大差ない価格にできそう。 何も考えずに docomo で i…

運動のライフログ

測りたいもの。 脂肪燃焼を効果的に行うために、運動中の心拍数。 ジョギングならば運動の時間、移動距離。 自転車ならば、上記に加えてケイデンス。 なので、必要となるセンサ類は 心拍数センサ ケイデンスセンサ GPS UIはスマフォ・タブレットが妥当。

mega88 のヒューズビット

LEDの点滅周期がやたら遅い件。クロックの設定が怪しいとにらんだ。 ビンゴだった。 Fuseビットを読み出してみると、Lowがデフォルトの 0x62 だった。 これは CKDIV8 が有効な設定であり、内蔵RC発振 8MHz が有効でそれの 1/8 がシステムクロックになってい…

ESP8266 と Mega328P

ESP8266 はやっぱりHWタイマ(カウンタ)は無いらしい。。。PWMってどうやって実現しているんだろう。 41.1kHz の周期で DAC にデータを送るためにHWタイマが必要。そのためにMega328P を使おうと思う。 ESP8266とMega328P との通信方法 ESP8266とMega328P …

お買い物リスト

DAコンバータ MCP4726 オペアンプ HT82V739 MP3か WAVファイルのデータを読み出し、DAコンバータに入力する。 DAコンバータの出力をオペアンプに入力する。増幅した信号をスピーカーに出力する。 CDのサンプリングレートは 44.1kHz 。22usec周期。16bitデー…

ESP-WROOM-02 でBME280が動いた

SwitchScience さんの arduino スケッチが、そのまま動いた。感謝! BME280 ESP-WROOM-02 Vdd ----- Vdd(3.3V) GND ----- GND SCK ------ IO5 -- pull up 10k SDI ----- IO4 -- pull up 10k

ESP-WROOM-02で I2CなLCD AQM0802 を動かしてみた

Webで見つけたサンプルで問題なく動いた。感謝。 youtu.be むしろ、いろいろサンプルやライブラリが見つかるので、どれを使うか迷うところ(^^;

ESP-WROOM-02 でPCとシリアル通信

arduino IDE を使い、調歩同期通信(TTLレベル)を行うスケッチを描いた。 void setup() { Serial.begin(115200);} void loop() { char c; if(Serial.available()){ c = char(Serial.read()); i++; Serial.write(i); } }

ESP-WROOM-02でLチカ

arduino IDE からスケッチを書き込んで、Lチカに成功した。 1箇所気になったところがあった。 arduino IDE の「書き込み装置」のところ。ネットで調べたところ、「esptool」を選ぶようになっている。が、Arduino IDE 1.6.4 では出てこない。 githubで esptoo…

ESP-WROOM-02 を使ってみた

先週末に買ったまま放置していたものを、漸く動かした。 ESP-WROOM-02を使ってみよう - kzono Wiki* WiFiの設定までは確認できた。 I2Cなセンサなら、別のマイコンは無くともこのモジュールだけで読み取れるっぽい。 方向性として、 WiFiモジュール単体+セ…