固定小数点の再発明

Adafruit TrinketのようなROMが数キロバイトしかないマイコンでは、float型を用いると浮動小数点のライブラリがROM容量を圧迫してしまう。そこで固定小数点クラスを作ってみた。【2019/05/24 追記】 Arduino IDEでビルドしてみたところ、AVRマイコンではfloa…

日本語の「ん」には何種類の発音があるか?

日本語の「ん」にはじつは何種類もの発音があり、無意識に使い分けています。というより、発音しやすいように自然に発音が変化します。 [n] : 歯茎鼻音 タ行、ダ行、ナ行、ザ行、ラ行に続く場合 舌の先が上あごの前歯の歯ぐきに触れる 例: 安泰(アンタイ)、…

Arduinoのしょうもない落とし穴

踏んでしまったのでメモ。操作ミスまたは一時的なバックアップのつもりでうっかり下図のようなファイルコピーをおこなったとする。このとき、test.ino を開いてもArduino IDE上に test - コピー.ino は表示されない。空白や日本語を含むファイル名のソースは…

パーソナルEEGデバイス(脳波計)の選び方?

手軽なヘッドセットで測定した脳波データをスマホに送って、分析したりアプリ開発したりできるやつ欲しい。どれを選んだらいいのか調べていたら↓の動画を見つけた。以下に要約する。(※内容の妥当性は僕には保証できません。) 今はMuseとEmotivが双璧 NeuroSk…

Arduino系マイコンで超いいかげんなprintf

Arduino系のマイコンでprintfをシリアルに出力するためのいいかげんなマクロ static char print_buff[256]; // ←メモリが許すなら十分大きくとる #define printf(...) sprintf(print_buff, __VA_ARGS__), Serial.print(print_buff) sprintf()とSerial.print(…

ハッコーのイベント限定品レビュー

Maker Faire Kyotoで限定販売されたハッコーのキャップセットと折りたたみこて台をゲットしました。プロトタイプ段階のもので今のところ一般販売は未定のようです。 キャップセット ハッコーの温調はんだごてFX-600にキャップを取り付けるためのアダプタとキ…

ちかごろのマンガ20選

マンガをKindleで読むようになった2012年以降に読んだマンガ(続刊含む)から20作品を選ぶ。 (カテゴリー分けは便宜的・主観的なものである。) 評価基準 カテゴリー1 人間以外の事物を主題とし、かつ人間の内面に深く立ち入らないもの ただしその事物は現代…

ラズパイのセットアップメモ (ヘッドレス運用)

ヘッドレスでのセットアップと運用 ラズパイをヘッドレス(ディスプレイ、キーボード、マウスを接続しない)で使うためのセットアップ手順を以下にメモする。 母艦: Windows 10 の PC ラズパイ: Raspberry Pi 3B OS: Raspbian Stretch Lite SDカード: 16GB O…

CMakeメモ

CMakeとは? 簡単な設定ファイル( CMakeLists.txt )を書くだけで Makefile を生成してくれるツール Linux, Windows, Macなど各々のビルド環境のしきたりに沿った Makefile がおまかせで生成される。 コマンドラインベースのツール CMakeの使い方 CMakeLists.…

ゲージ表示用の.NETフォーム コントロール

ゲージ表示用のコントロールをProgressBarをベースに作った。ProgressBarからの変更点は、 アニメーション表示しない バーの色はForeColorで設定できる ニュートラルの値(Neutral)を基準にプラスマイナスの表示 using System; using System.Drawing; using S…

Windows 10でのWinPcap代替 = Npcap

Windows版の pcap (パケットキャプチャ) ライブラリとして有名な WinPcap ですが、Windows 10では安定して動作しません。Windows 10では WinPcap の代わりに Npcap を使いましょう。 (Win10Pcap というのもありますが保守されてないようなのでスルーで。)ち…

メモ: VirtualBoxにUbuntu18.04をセットアップ

基本的にビルド環境として使うので、無用のトラブルを避けるために日本語Remix版は使わず、言語も「English」でインストールする。ただし、キーボードは日本語キーボードを使用するのでその点を注意する。 VirtualBox 6.0.4 ホストOS: Windows 10 Home 1809 …

マイコンでTensorFlow!? (4)

今回はいよいよTensorFlow Liteのサンプルコードをビルドしてボードに書き込んでみます。 サンプルコードの内容 SparkFun Edgeボードの2つのマイクに入力される音声から「Yes」と「No」という単語を検出します。これには畳み込みニューラルネットワークによ…

マイコンでTensorFlow!? (3)

今回はサンプルコードのビルドとボードへの書き込みをやってみます。以下の2つを試します。 Edge Test:GPIO、UART、ADC、I2Cなどのハードウェア機能のデモ。 Makefile Project Template : 自分でプロジェクトを作るためのテンプレート。 (1) Edge Test 4つ…

マイコンでTensorFlow!? (2)

今回は開発環境をセットアップしていきます。前回説明した通り、SparkFun EdgeボードはまだGUIなIDEが用意されていないので、コマンドラインベースの開発環境を構築する必要があります。 (1) Bash コマンドラインツール、いわゆるシェルです。MacやLinuxを使…

マイコンでTensorFlow!? (1)

ワンチップマイコンでTensorFlowが動くという驚きのTensorFlow Lite対応ボードを入手しました。人柱レポートしていきます。 TensorFlow Liteとは ごぞんじGoogleが世に出した機械学習フレームワークTensorFlowの軽量版です。強力なクラウドサーバやPCではな…

Windows Subsystem for Linux で Ubuntu

今のWindows Subsystem for Linux (WSL) はUbuntuがストアアプリになってるんですね。 しかもUbuntu以外にDebianやらopenSUSEやらもあるようです。 古いBash on Ubuntu on Windowsのアンインストール 初期のWSLの頃にインストールしたBash on Ubuntu on Wind…

HHD Free Serial Port Monitor

Windows PCのシリアルポート(仮想COMポートを含む)の送受信データを傍受してモニタできるツール。コンソール表示、Hex/ASCII表示など種々の形式でモニタできる。 freeserialanalyzer.comFree Serial Analyzerという名前になっているが、このソフトはHHD社のD…

Arduinoのハードウェアシリアルのボーレート誤差

AVR 5V(16MHz)系 (Uno, Mega, Leonardo, Micro, Pro Mini 5V など) ボーレート設定 実際のボーレート 誤差[%] 9600 9615.4 0.16 19200 19230.8 0.16 38400 38461.5 0.16 57600 58823.5 2.12 115200 117647.1 2.12 230400 222222.2 3.55 基本的には倍速動作で…

画像ビューア・加工ツールまとめ

IrfanView 昔からある定番ソフト。メインの画像ビューアとして使ってる。 色調補正やリサイズ・トリミング、フィルタといった一通りの加工機能はそろってる。 複数のファイルの一括変換機能もある。(例:座標を指定して一括トリミング) 透過PNGの扱いは苦手…

メモ:C#でスレッド

今どきはC#ならasync/awaitが使えるのでThreadを使う機会は減ったけどやはり使う時は使うものである。たまにしか使わないと忘れるのでメモ。 (1) スレッドの起動 ThreadStartというデリゲートを使うのがポイント。というかC#の妙ちくりんなところ。短い処理…

FTDIのUSBシリアル変換ICのCBUSの機能割り当て

FTDIのUSBシリアル変換ICのCBUSxピンには種々の機能を割り当てることができます。 FT232RLの場合、デフォルトでは下表の機能が割り当てられています。 ピン 機能 説明 CBUS0 TXLED# 送信データLED駆動 (Lowアクティブ) CBUS1 RXLED# 受信データLED駆動 (Low…

メモ:モータのトルク定数と逆起電力定数

モータのトルク定数と逆起電力定数は理論上は一致する トルク定数の単位は Nm/A (単位電流あたりのトルク) 逆起電力定数の単位は V/rpm (単位回転数あたりの逆起電力) 換算式 1 Nm/A = (2π/60) V/rpm DC電圧[Vdc] か 実効値電圧[Vrms] かも要注意

ブラウザでMQTTクライアント (Paho)

Pahoとは PahoとはオープンソースのMQTTクライアントのライブラリです。Pahoはさまざまな言語で実装されています。(Java, Python, JavaScript, C, C++, C#, Goなど) 今回はブラウザベースで使えるJavaScript版の使い方を説明します。JavaScript版Pahoは、MQT…

メモ:WindowsでEtherCATマスター

やりたいこと Windows PCで通常のLANポートを用いてEtherCATのマスターになる。 SOEM SOEM (Simple Open EtherCAT Master) とは、Open EtherCAT Society が提供しているオープンソースの小規模なEtherCATマスターのスタック。ソースコードはGitHubで公開され…

Herokuアプリをスリープさせない対策

Herokuアプリの無料枠だとアクセスが30分間無いとスリープしてしまう。 スリープさせない簡単な方法はHeroku Schedulerを使うこと。 手順 Herokuにログインする (アプリはすでにあるものとする) Dashboard画面右上のメニューの「Elements」をクリック Heroku…

Node-REDでMongoDB

ここではHeroku上のNode-REDでのMongoDBの扱い方について説明する。HerokuでのNode-RED環境構築や、HerokuのMongoDBアドオンの使い方については前記事を参照。 HerokuでNode-RED - 滴了庵日録 HerokuのMongoDBアドオン - 滴了庵日録 MongoDBのノード Node-RE…

concrete5のページをhttpからhttpsへリダイレクト

.htaccessに以下の2行追加するだけ。 RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L].htaccess全体は以下の通り。 DirectoryIndex index.php index.html index.cgi # -- concrete5 urls star…

MPU-6050系モーションセンサまとめ

6軸モーションセンサではSTマイクロのLSM6DS3とならんでメジャーなTDK InvenSenseのMPU-6050。派生型番がいろいろあってややこしいのでまとめ。 MPU-6050はI2Cのみで4mm角QFN。 MPU-6500はI2C/SPIで3mm角QFNだけどあまり見かけない。 MPU-9150 = MPU-6050 + …

HerokuのMongoDBアドオン

データベースのPaaSというと、選択肢はここに書ききれないくらい多いと思う。また、Node-REDでノードが用意されているデータベースというのも1ダースくらいはある。(こちらの記事を参照→Node-REDで扱えるDBノード総まとめ - Qiita) ここではHerokuのアドオン…