2022年2月5日土曜日
以前の記事
Virtual秋葉原建設
で紹介した画像編集ツールをリリースした。
写真などを変形し下絵にし、
マインクラフトのビル壁面などのブロック配置を
デザインするツールだ。
名前はPixelEditorで
ソースは
github.com、
ツールそのものは
github.io
で使用できる。
リリースのネックになっていたのは
「遠近法ワープ(変形)機能」。
前の記事の時はAdobe Illustratorの機能で
やっていたが、それではツールとしてリリースしづらい。
その機能は
openCV.jsにあるのではないかと調べたところあった。
cv.perspectiveTransform()で座標の変換、
cv.warpPerspective()で画像の変換ができる。
変換には3x3の行列が必要だが
cv.getPerspectiveTransform()に
対応する4点の座標を与えるだけで求めてくれる。
至れり尽くせりだ。
詳しい説明は
こちらのページ
を参照。
2021年12月31日金曜日
Chizucraftで私のワールドに作成した
秋葉原の地図を立体化させたい。
全部は無理だが、
中央通りの総武線高架とか
秋葉原の駅ビルとか
ホームとか再現したい。
まず、総武線の高架を作った。
PlateauViewで高架横のビルの高さを取得。
ストリートビューの写真を参考に、隣接ビルの骨組みを作ると
ともに高架の高さを決め作成した。
しかし、ついX軸に平行に作ったため、明らかに曲がってしまった。
マイクラ上で斜めの直線を引くのは難しい。
2021年12月16日木曜日
以前
地図遊びで紹介したツールを公開した。
名前はChizucraftとした。
ソースは
Githubで、
ツール自体も
Github.io
で公開しているので、すぐに使用可能だ。
マインクラフトでやることが無いという人に
試してもらいたい。
私のマイクラ・ワールドでは
秋葉原周辺のかなりの範囲の整地と
道路が完成し、道路の通行帯の表示などを
始めたところだ。
道路端のデータが歩道も含んでおり、
車道と歩道の境界線のデータが無いのがつらい。
航空写真から読み取る必要がある。
2021年12月8日水曜日
ステッピングモータを使用し
偵察ロボットを製作した。
遅いステッピングモータだが
卓上を走らせるにはちょうど良い。
床を走らせるには速度不足。
電池はダイソーの500円モバイル・バッテリーを使用。
その所為で車体が若干大きめになってしまった。
3Dプリンタで遊ぶには良いテーマだ。
マイコンはESP32 Kitで、
FANコントローラの時に作成した
自作の
CLI_Libraryに前進、後進、右回り、左回り
などのコマンドを追加して動かした。
2021年11月23日火曜日
国土地理院の地図データなどを使うプログラムを書いて遊んでいる。
キッカケは
湊あくあの
マイクラ配信での発言。
ENサーバとの接続前後で、お互いへの観光が盛んになった時期。
ENメンバーに見てもらうような施設をつくりたい。
日本的なものって何? 秋葉原? という発言があった。
秋葉原全体をマインクラフト上に再現するのは大変だが、
用地確保と土地の割当だけし、
あとは作りたい人が作りたいものを作るということにすれば
面白いのではなかろうか。
マイクラのブロック単位(1m)の地図を用意すれば作れるのでは?
地図は公開されている地図データから生成可能ではないかと考えた。
2021年10月7日木曜日
PCファン用4Pコネクタを手に入れたので、
これを使った機器を作ろうと思う。
機能としては温度計測と、それに伴うFANの制御。
温度とFANの状況の報告など。
となるとCPUはESP32、
LCDは沢山もっている2.4インチLCDモジュール・タッチスクリーン付きとした。
ESP32は、当初
ESP32-WROOM32モジュールを直接使用するつもりだったが、
設計を進めるうち、意外と基板のスペースに余裕がないことに気が付き、
ESP32 Devkitを使用するとUSBシリアル、ファーム書き込み、電源レギュレータ等を
省けるし、使い回しも可能なので、こちらを使うことにし、基板を注文。
秋月にも部品を注文するが(コロナのせいで?)発送が滞っているらしく
基板と同時に到着した。
2021年9月27日月曜日
軽トラのラジコンを買ったので
いろいろ遊びたいと思っているのだが、
だらだらやっても面白くないので
この機会にROS2などを学び、
それらの機能を使って遊んで行こうと考えた。
ROSとはRobot Operating Systemのことで、
ロボットの制御を行う複数のプログラム間の通信など
の機能を提供してくれるものらしい。
ROS2は、そのversion2。
あまりよくわかっていないが、
とりあえずインストールしてみる。
2021年2月7日日曜日
esp32でタイマー割り込みを使用するプログラムを書いた。
LEDを色んなパターンで点滅させ、状態を表示するプログラム。
割り込みを使えばプログラムが長い処理を行っている最中でも
状態を表示できる。
"esp32 timer 割り込み"で検索すると
いろいろ情報が出てくるが多くのサンプルプログラムは
同じ。こんな感じ。
2021年1月19日火曜日
昨日 サメちゃんこと
Hololive-ENのGawr Guraが
チャンネル登録者数200万人を達成した。
V-tuberではKizuna Aiに次ぐ2番目だそうだ。
Hololiveの100万人超えメンバーは
戌神ころね126万、
白上フブキ119万、
兎田ペコラ117万で
つい先日、湊あくあが100万を達成、
宝生マリンも99.4万人なので
数日中に100万人を突破するだろう。
チャンネル登録者100万人を越える日
の予想グラフと比べてみると興味深い。
2020年12月7日月曜日
arduino-esp32のライブラリのソースを見ると
log_e()やlog_v()で
各種メッセージが出力されている
(
例)。
これらのメッセージは
Arduino IDEだと メニューのツール→Core Debug Levelで設定で
出したり出さなかったりできる。
platformioだと
platformio.iniでbuild_flagsを指定してやればいい。
2020年11月25日水曜日
PC用のプログラムを作成する場合、
Electron + typescript を使うのが最近の好みだ。
まだまだ理解していない部分も多いが
vscodeとの一体感とか
見た目の綺麗さとか
developer toolの使いやすさとか
intelisenseとかが気に入っている。
自作モータドライバ基板の
特性等を調べるプログラムに
前回はpython + TkInterを使ったのだが
今回はElectron + typescript を使ってみた。
シリアル通信を使うので
serialportライブラリを使用したのだが
使えるまでに色々とトラブったので記録しておく。
2020年10月9日金曜日
フィラメント・ケースの湿度を監視している
XIAOMIの湿度計だがトラブルが発生した。
Linuxサーバーが遅くなる。
調べると bluepy-helperというプロセスが
幾つか全速で走っている。
どうも pythonのbluepyを使用しているプログラムで
Peripheralとのconnectionを切断した時に
時々bluepy-helperのプロセスが走りっぱなしに
なるようだ。
LYWSD03MMC.pyには
bluepy-helperをkillする処理が何箇所か入っているが
それでも充分では無いようだ。
2020年9月26日土曜日
AliExpressに注文していた
XIAOMIの湿度計がやっと届いた。
8月16日に注文していたので5.5週ぐらいで
届いたことになる。
価格は4個で1,229円。1個あたり306円と激安。
コンパクトで可愛いデザイン。
電池の絶縁テープを抜くと
すぐに温度と湿度が表示された。
裏蓋を外し内部を確認。
電池はCR2032。
MOYASHI氏のフィラメントケースの
ホルダーにバッチリはまって気持ちが良い。
2020年8月29日土曜日
HDDサンダーで
回転数をXIAOで読み取るまでできた。
その際に取得できた
ArduinoでXIAOのプログラム、
ライブラリでは解決できず、
自分でチップのレジスタを操作するような
プログラムを書くために
必要な知識をいくつか紹介する。
2020年5月24日日曜日
「ESP8266のntpの設定は1行で」
というのは
3年前にQiitaに投稿した記事なのだが、
地味にLGTM(Look Good to Me,旧like)を
貰い続けている記事の1つ。
その記事に引数の値がおかしい、と
コメントがついた。
サンプルプログラム通りだと
時間が18時間遅れるらしい。
調べると
esp8266/arduinoの
versionのせいらしい。
2.6.3までは正常に動くが
2.7.0以降はおかしくなる。
configTime()関数の
第1引数の符号の解釈が
逆になってしまったらしい。
2020年5月9日土曜日
USB-I2C基板はpythonから使いたい。
pythonでI2C経由で機器を操作する
プログラムを作りたい。
MCP2221 Pythonで検索すると
いろいろ情報が見つかる。
2020年4月2日木曜日
昨日更新した OLED版のRSS表示プログラムの調子は良いが、
LED版の方は調子が悪い。
調子が悪くて、しばらく消していたのだが、
RSS表示はともかく、時計が見易く慣れてしまっていたので
LED表示も復活させたい。
というわけでLED版も更新することにした。
ソースを調べるとLED版はOLED版のソースを流用したものだったので、
変更箇所が同じで、簡単に更新できた。
2020年4月1日水曜日
OLEDの寿命で取り上げた RSSを表示するプログラム: RssDispの表示が
調子悪くなってしまった。
原因の1つは、httpでRSSを提供するサイトが減ってしまったことで、
もう一つは
Make:の
RSSの反応が遅くなってしまったことらしい。
リクエストを出して10秒ぐらい返事が帰ってこない。
OLEDに表示されたRSSを真剣に読んでいるわけではないが、
正常に表示されないと気持ち悪いので
プログラムを修正することにした。
2019年10月18日金曜日
前回シンクロベルトを購入したと書いたが、
タイミング・ベルトというのが正しいのだろうか?
ミスミの分類ではタイミングペルトで、
シンクロベルトはバンドー化学の商品名か?という気もする。
今後はタイミングペルトと書くことにする。
タイミングペルトがあれば、ギアというか歯付きプーリーも必要になる。
とりあえず手持ちで20歯のものが4個あるが、3Dプリンタで自由に作れると大変嬉しい。
2019年6月18日火曜日
テキストファイルをpdfに変換するプログラムを
作成した。名前はsrcPrint。プログラムのソースファイルを
印刷する時に使うやつ。 昔あった a2psみたいなやつ。
GitHubで公開中
プログラムをしていると、時々欲しくなる。
a2psやa2pdfなどや
フリーソフトを探してみたりして、
なんとかしてきたが、
今回
electron と typescript の練習を兼ねて、
作ってみた。
electronを使っているので、テキストファイルは
htmlに変換され、 cssでフォーマットを指定、
electronの機能でpdfに変換される。
現状、最低限の機能のみだが、
自分用としては、十分使える。
気が向いたら、機能拡張したい。
2019年2月28日木曜日
今、マイコンで動くテキスト・エディタを作っている。
まだ、Linux上で開発している段階だが、
ある程度できたので、
ここらでプログラムの整理をすることにする。
関数をグループごとに整理し、必要ならば名前も付け替えたい。
ここで
Doxygenを使ってみたら便利だった。
まず、ファイルごとに関数の一覧を出してくれる。
これだけで便利だ。
次に、Doxygenの生成するhtmlを見ていると、
これを、もっと良いものにしてやろうという気持ちが起こる。
しかし、無駄に説明を追加しがちにもなるので、注意も必要だ。
あと、 graphvizも使うと、関数の呼び出し関係図を表示してくれて
興味深い。
2018年12月18日火曜日
最終的に作ったライブラリは
こちら。
ラズパイ・ファン基板で OLEDを取り付け易くしたのだけれど、
i2c接続なので表示速度はどうなのだろうというのが気になっていた。
というのは、i2cは転送速度が速くない。
ラズパイのデフォルトでは100kbps。
OLEDは 128x64 dot なので、128x64 = 8kbit。
これを100kbpsで転送すると、転送時間は
8kbit ÷ 100kbps = 0.08sec
連続表示させると
毎秒 1 ÷ 0.08 = 12.5 フレーム表示できることになる。
スムーズな動画表示には少し遅い。転送以外の処理の時間も必要。
実際のところはどうなのだろうと測ってみることにした。
2018年8月14日火曜日
windows上のemacsでIMEを上手くコントロールできないため、
VisualStudio Code(以下VS Codeと記す)の環境整備を頑張った所、
かなり使えるようになってきた。
これで移行できるかもしれない。
2018年7月9日月曜日
Electronの本を読了した。
掲載されているコードを律儀に入力し、
動作させながら読んでいったので、
時間はかかったが、
ある程度、知識が身についた気がする。
コードを本の通りに入力しても、
1文字でも間違えれば、動作しない。
コンソールを開ければ、例外のログとかが見れて、
大体理由がわかるのだが、 devToolを開けるのも
大変な場面が多々あり、なかなか大変だった。
あと main process側のメッセージは devToolのコンソールには
表示されないのかな? この辺の話は、まだ十分理解できていない。
こういうデバッグの話も詳しく説明してくれると、
もっといい本になるのではないかと思う。
今後は、独自プログラムの開発を行いつつ、
いろんなライブラリを試し、
Electronの技術を身に着けて行きたい。
2018年6月12日火曜日
HSES-LMC1の秋月電子での発売に合わせて、
電光掲示板プログラムを
GitHubで公開した。
これは、HSES-LMC1を一般(?)の電光掲示板として動作
させるためのプログラム。
表示内容をSDカードに記憶し、読み出しながら表示する。
Web経由で表示内容の編集ができる。
(使用可能なブラウザは chrome のみ)
2018年4月3日火曜日
以前いじっていた esp8266/Arduinoのプログラムを
make ota で書き込もうとするがエラーになる。
ArduinoOTAのexampleの
BasicOTA
で試すと書き込めるので、サイズの問題か?
OTAが使えないと、とてもプログラムを開発する気にならない。
困った。
2.3.0のころは書けていたので、2.4.1から戻してみることにする。
ボードマネージャで戻す方法はよくわからなかったので、
git で esp8266/Arduinoをインストールし直す。
ちなみにgit clone では -b オプションで バージョン(tag)を
指定できる。
Arduino-IDEからは、すぐに使用できるようになったが
makefileからだとエラーになる。
いろいろ調べた結果、git でインストールした際、
テキストファイルの改行コードが変換されていたことが
原因だと判明。
boards.txtや
platform.txtの改行が CRLFになってしまうと、
makefileでの処理中にCRコードが残り、
エラーになってしまうようだ。
これで makefileから OTAで書き込めるようになった。
2.4.1でうまくいかない理由は調べていない。
ArduinoOTAについても、いつか、調べないとなぁ。
2018年3月19日月曜日
hzeller/rpi-rgb-led-matrix付属の
動画再生プログラム
video-viewerを改造し、
動画ファイルを音つきで再生できるようになった。
前にも書いたが
フレームの遅れが蓄積されない
ように改造した。 変更点は、pull-requestを投げたいが、
まだ、ちょっと汚いのが悩みどころ。
音の再生は別プログラム(aplay)で
行っている。これも将来的には組込みたい。
2018年3月6日火曜日
miniHDMI変換アダプタとUSB-microB OTGケーブル が届いたので、
Raspberry Pi Zero WHを動作させてみる。
Zeroは基板は極小だが、ケーブルを刺すと
そうでもなくなる。
ケーブルを
ケーブル・オーガナイザで固定してやると良い感じである。
Raspbianをダウンロード、
microSDカードに書込み
立ち上げたら、特に問題もなく起動。
キーボード、WiFiの設定を行い、
普通に使えるようになった。
その後、
hzeller/rpi-rgb-led-matrixをインストールし、
LEDマトリックスモジュールへの表示を試す。
表示はできるが、負荷が重い感じ。
動画の再生を行うと、はっきりと遅い。
やはり コア4個のRasberry Pi 3と比べると、
コア1個のZeroだと、余裕が無い感じだ。
表示も、多少、ちらつきが感じられる。
2018年2月20日火曜日
ESP32をBluetoothスピーカーにするプログラム
ESP32_bt_speakerを更新した。
作成後、esp-idfが、かなり更新されたので、
いろいろと問題があるだろうなとは思っていたのだが、
手を付けずにいたのだが、
githubにissueついたので、
対応することにした。