C言語でソケット通信

漸くC言語でクライアント・サーバなソケット通信プログラムのサンプルが動いた。 ネット上のサンプルと、微妙にヘッダファイルの名前やパスが違っていて手こずった。 これで、C/C++/python の3言語で、それぞれクライアントとサーバのサンプルが動いたこと…

nc(netcat) on ubuntu

サーバ・クライアント間のソケット通信サンプルプログラムの動作確認などに便利なコマンドを発見。 nc(netcat)コマンドで覚えておきたい使い方8個 | 俺的備忘録 〜なんかいろいろ〜 ネットワーク診断の現場から(netcat編・その1) | NTTデータ先端技術株式…

すこし汎用的な Makefile

比較的簡単なプロジェクト用に Makefile のテンプレートを作った。 ソースファイルとオブジェクトファイルのディレクトリを分けたところが、少し工夫したところ。 とはいえ、昔は階層化 Make まで頑張って対応していたので、あくまで簡易版。 # DirectoriesS…

【ESP32】Boost.asio を使ったソケット通信

ubuntu への boost のインストール boost のパッケージがリポジトリにあるかどうか探した。 $ sudo apt-cache search boost たくさん見つかった。おそらく最新版ではなく結構古いバージョンだと思われるが、標準でサポートされているのが安心。自分でビルド…

【ESP32】ソケット通信のお勉強

ESP32の特長は、WiFiとBluetooth を安価(チップは800円、ボードで1600円)で使えること。しかも、ROM/RAMはArduino(AVRMega386)より多いこと。 マイコンとしてのペリフェラルも充実している。ペリフェラルのサンプルコードも公開されているので後で…

【ESP32】HelloWorld まで成功!

Windows10上の MinGW+MSYS や Cygwin だと、微妙にエラーが出てしまった。 VirtualBox 上の Ubuntu で環境構築を試みたところ、サンプルプロジェクトのビルドまではできるのだが、USBケーブルによるダウンロードができなかった。USBシリアル変換チップを使い…

【ESP32】arduino IDE シリアル通信できた

Arduino のシリアル通信のスケッチがそのまま動いた。(^^) esp32用ライブラリがシリアル通信をサポートしているということ。 GPIO:LEDとスイッチ ADC:可変抵抗器(ボリューム)、各種センサ(加速度) Timer(PWM):LED調光、スピーカ、DCモータ、サーボモ…

ESP32DevkitC を始めるよ

しばらく前に買って放置していたESPDevkitC をいよいよ触り始めることにする。

ソレノイドの駆動回路

ソレノイドを稼働する場合、マイコンと直接接続するのはまずい。電圧・電流が大きく違い、ノイズや逆起電力でマイコンを破壊したり誤動作させたりする。それを防ぐ為にフォトカプラを使って絶縁する。FETをフォトカプラに繋ぎ、小さい電圧変化で大電流を駆動…

IoTなアイデア

宅配ボックスの自作。 宅配業者さんのWebにユーザ登録しておくと、配達予定のメールが送られてくる。これをトリガーとして、宅配業者さんにメールを送る。 メールには、宅配ボックスの暗証番号が記載されている。 暗証番号は配達物ごとに違うものにする。 宅…

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

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