2021-01-01から1年間の記事一覧
次は、HALを使わず素でI2Cを制御しようと思って、いろいろ試作しているけど、うまくいかない。I2Cの9DoFセンサ(LSM9DS1)と接続して、STM32からI2Cアドレスを出すタイミングでなぜかI2CバスがHi-Zになってしまうようで、STM32からクロックを出せないでいる。S…
ひきつづき、HALを使わず、素でレジスタを叩いてUART用のsend/receiveルーチンを作成 以下のソースはシステムクロック4HMzで、38400bpsで通信する。抽象化していないので、STM32L47xxxシリーズ専用。 変数型もu32でなくてもいいところがあるけど、、無駄が多…
前回、HALを使わずレジスタ直叩きでLチカさせてみた。次はシリアルをつなぎたいが、シリアルを動かすにはUARTのブロックにどのようなクロックが供給されているのかを理解しないといけない。でないとボーレートが計算できないから。前回のソースではクロック…
組み込みRustでは、ハードウエア抽象化したライブラリHALを使ってプログラミングするのが正統派なんでしょうが、自分の場合、Rustの正しい所有権の書き方がイマイチわかっておらず、どうやってもペリフェラル操作をmainからモジュール側に出すことができなか…
STM32用のRust開発環境を設定して、I2CとかUARTとかボチボチ動いている。が、、あくまでもサンプルコードをベースに修正した程度である。 素の状態から最低限のコードだけで動かそうとすると、いろいろエラーが出てくる。一つはSTM32用ライブラリのエラーで…
絶対座標で計算するから大変なんであって、XYZ軸の傾きを検知して、相対的にモータの回転数を±で補正する程度のアルゴリズムで、まずはドローンを飛ばしてみようと思う(変な方に飛んでいくかもしれないが)。ただ、このままMicroPython で試作を続けるとあ…
SPIでレジスタが読めるようなので、センサを動かすための最低限の設定だけ行って、ジャイロセンサ、加速度センサ、温度センサの値を読んでみた。以下がその値。ドローンを置いただけなので、Y軸の加速度だけ値が出ている。それ以外は誤差なんだろう。 # gyro…
STEVAL-DRONE01上の加速度センサはマイコンとSPI 3-Wireモードで接続されていてMicroPython上で利用可能な標準のSPIドライバでは制御できない*1。 泥臭いが、ビットバンギングでIOポートを上げ下げしてSPI 3-Wire相当のバスを作って加速度センサのレジスタを…
STEVAL-DRONE01に制御ボードSTEVAL-FCU001V1が搭載されていて、そのボードには、角速度センサ(LIS2MDL)や加速度センサ(LSM6DSL)が搭載されている。STM32F401CCとセンサーはSPIで接続されている。が、、回路図をよく読むと接続が、SPIの3線(CS/CLK/MOSI)なの…
背景: STEVAL-DRONE01上にSTM32F401CCが搭載されていて、普通にCとかRUSTとかで開発するにはサイズの問題が出ないと思うが、センサのデータ処理や姿勢制御アルゴリズムについて試行錯誤したいのでSTM32F401CC上でMicroPythonを動かしたいと思っている。が、…
先人の情報を参考に、普通にNUCLEO_F401REとしてビルドしてみる。使った環境は、WSL上のUbuntu $ uname -a Linux DESKTOP-TRNV8F8 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux sudo apt-get inst…
クオータニオンの理解*1が最後まで終っていないが、、クオータニオンがある程度わかっても、ドローンを制御するには、ジャイロセンサのXYZ軸変換とか、カルマンフィルタとかまだまだ技術の壁があることが分かった。で、、少し動かしながらセンサ類のデータ処…
ドローンの飛行制御プログラムをRustで書くのを目標にクオータニオンを勉強してきた。本に載ってる証明もなるべく追いかけて理解を積み上げたつもりで、そろそろ最後の証明になりつつある。で、クオータニオンが理解できたか?と言われると、腑に落ちてると…
大阪はスパイスカレーの店が多くて、北浜で働いていた時は、カシミールにも食べに行った*1。どういうスパイスを使ったらあんな味になるのか想像もできなかったが、その後、スパイスカレーの本が出てきて、スパイスの配合とか作り方がだいぶ分かってきた。エ…
多分Scipyとかにあるんだろうけど、Quotanion(四元数)の演算をプログラムでできるようにPythonでクラスを定義してみた*1。 証明とか手で計算していると間違いまくるので、簡単な式変換ならプログラムにやってもらおうという。。 演算子のオーバーロード(?…
過去Interface誌で、ドローン用の姿勢制御プログラムの特集があって、本を買って、ドローン開発キットも買った。が、、肝心の姿勢制御のコアであるクオータニオンの概念が全く理解できず*1、開発キットも押し入れに入れたままであった。 普段はPythonを使っ…
やりたいこと: OpenECHOのElectricStormWindowクラス(通称:電動窓シャッター)に対して属性を加えたい*1。ElectricStormWindowクラスでは開閉状態(OpenCloseStatus 0xEA)がサポートされていない(仕様上も必須属性ではないので)。だから、、setupPropert…
近々IoT勉強会でScratchを簡単に説明する予定。機器制御のためScratchでWebAPIを叩くのだがそのためのオリジナルブロックが必要。以前手順を理解するために一度作ったのだが、最新状況はどうなっているのかを確認。オリジナルの拡張ブロックを作るための手順…
あまり気にしてなかったけど、どうもWindowsUpdateが正しく行えていないようである。パッチありませんと言いながら、OSが最新になっていない。対応としては、サービススタック更新プログラム(SSU)を手動で適用するべきらしい。アップデートでデバイスに重…
講習会ではアプリを同一条件で統一するため、dockerを入れてその上に構築することにする。多分素で入れるより、imageを配布する方が早いだろうと予測(生徒用のRPi(何十台)で各々ビルドしていると全く早くない。教師環境でimageをビルドして配布するようにす…
Node-REDをインストールする方法として、Docker上に構築する方法と、素で入れる方法があるのだが、どっちがいいのかちと分からない。Ubuntu/Rasbian上で動かすための推奨スクリプトは以下らしい bash <(curl -sL https://raw.githubusercontent.com/node-red…
8月号のInterface誌は全面Pico特集です(8月号は連載記事もお休み)。 SDKを使ったLチカやPIO(Programmable I/O)、FreeRTOS、Pico上で動作するTensorFlowも解説されています。編集部の方々が作られた、CircuitPythonによるUSB接続のキーボードという記事もあ…
頼まれ仕事があって、PCをフリーズさせるわけにいかないので、WindowsUpdateをずっと止めていた。当初のUpdateしない期限が切れたので再起動しろと言ってくる。前回ブルースクリーンになってえらいことになったけど、今回は戻ってこれるのだろうか。。 021-0…
シンセのボタンやスイッチの使い方が分かっても自分が聴きたいと思う音をどうやったら作り出せるのかが分からない。試行錯誤しても全然違う音になる。。HowTo本を少し読んだけど、説明の音にならない。。というわけで、、シンセの音作りを学ぶSyntorialとい…
CircuitPythonの組み込みライブラリには、USB MIDIがあり、AdaruitBundleも使うと簡単にMIDI Controllerが作れる。以下は、ボリュームの操作に応じて、MIDIのControl Changeを送信するアプリ import time import random from analogio import AnalogIn impor…
サンプルを見たところ、USB MIDIを使うことで、MIDIのNoteOn/NoteOffを送ることが簡単にできることが分かった。そこで、、ドミソの和音からランダムに音を選択して自動演奏するソフトを作ってみた。以下のアプリを走らせて、FL StudioのMIDI INに設定すると…
Spireでボチボチ音作りをやってるけど、マウスでボリュームを動かすのはなかなか慣れない。できたら、本物のボリュームやらスイッチをグリグリ動かして音色を調整したい。だから、、抵抗とマイコンでMIDIコントローラを作りたい。 CircuitPythonならUSB MIDI…
先日 Spireを買って、一気に理解したいので、オンラインのビデオチュートリアルを契約して大体見終わった。 ビデオは英語だったので細かい部分がちょっと分かっていませんが、スイッチやらボリュームやらを動かしながら、音を出して説明されているので、何を…
自分は某原稿を書いている。製作記事というか。。採用の可否は分からないが。 熱い人間ではないし、すぐに仕事に取り掛かれるタイプではない。 だから、、まずは延々と逃避が発生する。逃避とは。。スマフォでニュースを読んだり、無料のKindleマンガを読ん…
今ちょうど割引中でお安くなっているので、Spireを買ってしまった。 自分はEDMとか全然分かっていないが、できたら音作りもやりたいと思って、一定の評価がされているSpireを買いました。GUIが整理されていて音作りもやりやすいそうなので。。*1 試行錯誤す…