2021-01-01から1年間の記事一覧
Scratch3の拡張機能を使って新しいブロックを作る時なかなかバグが取れない。実行環境がブラウザなので、ブラウザで表示されない場合に原因が特定しづらい。デバッグ*1する際、少し調べると、Chrome等のDevToolでデバッグするのが可能と分かった。ビルドは通…
IoT勉強会で拡張機能付きScratch3.0を使ってもらう予定。各自のラスパイでScratchをうごかしてもらってもいいのだが、ビルドに時間がかかるので、あらかじめAWS上でScratchを走らせておいてAWSから持って行ってもらう方がいいのでは?と思い試作中 curl -sL …
npmを使ってScratchをビルドしようとしてエラーになった。根本原因は分からないが、代替え手段としてyarnを使うとビルドが通った。 $ npm --version 5.8.0 $ node --version v10.24.02298 verbose stack Error: chromedriver@90.0.1 install: `node install.…
iOS とペアリングできたので、次はiPadとペアリングさせた。iPadをどこかに立てかけて、Kindleアプリで本を読んでるとページめくりが面倒なので、BLE接続のページめくりボタンを作ってみた。ソースは以下(iOS上でKindleが動いている前提での) Kindleページ…
本来の目的が何なのか分からなくなっているが、道楽だからいいだろうということで、、nRF52840のボードを買った。外観は以下 目の前の目的はBLEでiOSと接続できるKeyboard風SWを実現するため。CircuitPythonを焼いて、modulesで使えるモジュールを表示させた…
前回の反省を踏まえ、再度餃子を作る。材料は以下(4人前、24個ぐらい) 皮 強力粉 160g 水 80cc あん 豚ミンチ 120g キャベツ 120g ショウガみじん切り 醤油 小1 酒 小1~1.5 ごま油 小1 皮を作る。はじめは菜箸で、小麦と水をグルグルと混ぜる。だんだ…
MicroPythonを使ってM5 Stick Cを BLE Keyboard風にしたてようとしたものの、成功せずに原因調査中。Arduino版のNimBLEだと動作したので、パケットに違いがあるのかを見るため、BLE Snifferでキャプチャしてみた。その時の結果は以下 (もう面倒なので、固有…
「イシューからはじめよ」を買った(Kindleで約1000円)。 気になった点をメモする(今後順次追加) 答えの出ない悩みには時間を使わず、考えて答えが出る問に時間をかける 10分考えてらちが明かない場合は、悩みに入っている Issueの定義 2つ以上の集…
HID/HOGPの仕様書や説明サイトがあったのでメモSiliconLab社のBLE HID Keyboard説明ページ BLE HID Keyboard - v2.13 - Bluetooth API Documentation Silicon LabsHOGPの仕様書DL用URL (bluetooth org) https://www.bluetooth.org/docman/handlers/downloadd…
スマフォのシャッターは、BLE Keyboardの音量Up/Downで代用できることが分かっていて、M5 StickCPlusをBLE Keyboard風に仕立てたら、SitckCのボタン押下で、スマフォのシャッターが切れるはず。 KeyboardはHIDプロファイルと思っていたけど、BLEでは、HOGPと…
M5 StickCだからどうということはなく、ESP32のBLEを動かすのと等しいのだが、、最後にBLEを使った時は、MicroPythonのBLEライブラリはサブセットのためWindowsとはペアリングできなかったと記憶している。iOSなら大丈夫だったはず。。過去に試作したMIDI-Ke…
M5 StickCの電源がOnかOffか分かりづらいためLEDを点灯させているが、そもそもLCDに何か表示されていればいいわけで、ST7789用のドライバを探してみた。簡単に見つけられるドライバはC言語で実装されており、C言語版のドライバはビルドが必要なので、Python…
ESP32のDevKit等でMicroPythonを動かしてきたけど、電源供給が必要なため単独では動かせなかった。M5 Stack/M5 StickならLCDも付いているし、LiPoバッテリー内蔵なので、使いたいときにサクッと動かせて便利だ。ということでこぶりでかわいいM5 Stick-C Plus…
Googleから、「保存したパスワードの一部がウェブ上に漏洩しました」とメールが来て、てっきりgoogleアカウントのパスワードが漏えいしたとの警告と思ってしまった。メールの文書は以下 最初はメール自体がフィッシングか?と思って、「パスワードを確認」も…
NHK「今日の料理」(プロ直伝)で、按田優子さんによる餃子の作り方をやっていて、皮も簡単にできそうなので作ってみた。味としては、もっちりした皮で旨かった。一方で醤油の分量を間違って、少し塩味が濃くなってしまった。材料は以下(TVでは20個分で説明…
理解不十分だけど、STEVAL-DRONE01をMicroPythonで制御できるように、加速度センサ(LSM6DSL)のドライバをC言語で作成した。以下は動作させた例 >>> MicroPython v1.16-243-g8c4ba575f-dirty on 2021-11-07; STEVAL-DRONE01 with STM32F401CC >>> import stdr…
子供が遊びでYoutubeの動画を作っていて、某放送局の「プロフェッショナル 仕事の流儀」の効果音を使ってパロディを作りたいと言ってきた。効果音自体ネットにあると思うが、多少アレンジもできるようにと思い、先人の情報を参考に作ってみた。スペアナで見…
当初、STEVAL-DRONE01の制御プログラムをRUSTで開発しようとしたが、コンパイル言語で試行錯誤するのに疲れて、MicroPythonで作ることにした。STEVAL-DRONE01のFlashメモリが小さいので、MicroPythonの機能を極限まで削減してビルドした結果、STEVAL-DRONE01…
タイトルの通りで、Rustで試行錯誤するのはコンパイル、ロード、デバッグの時間がかかり、細かいエラーも出る状況で、コンパイル言語による試作がつらくてテンションが下がっている(ドローンのプロペラの風切り音がうるさすぎるというのもある)。当初の方針…
Zigbeeによる通信は透過モード*1とAPIモードがあるらしい。透過モードはシリアルの全二重のような通信であり、一方のAPIモードは通信パケットを作ってXBeeに投げ込むらしい。APIモードの方がより高度な通信ができるのだが、パケットを作る手間とCRC計算も必…
STEVAL-DRONE01との通信はUSB/Serialを使っている。これはまぁ楽なんだけど、飛行物に有線だといつかはじゃまになる。せっかくだから、BLEで通信させたい。そのためのSPBTLE-RFが搭載されている。 しかし、SPBTLE-RFはデバイスの仕様書はあるけど、UsersManu…
HALを使わず周辺I/Oの制御もフルスクラッチで作ってきたSTEVAL-DRONE01だったが最終的に浮上すらしないという状況に陥った。ST Micro社が提供しているDroneサンプルコードを使って動かすとかなり危険に浮上して飛んだ。だから、、基板のGNDが不安定とかで…
無茶でも飛び上がったら制御プログラムを書こうかという気にもなるが、どうやっても離陸しないDroneを相手にこれからどうしたものか。。やれることとしては、、(1)LiPoバッテリーをフル充電して飛ぶかどうかを確認、(2)ST Microが提供しているサンプル…
DRONEのモータはFETでOn/Offが行われているが、1基だけ動かす分には元気に回っているが、2基以上を動かすと出力が落ちる。落ちっぷりは、複数で回しても1基の時と同じぐらいしか出力が出ていない。テストのやりかたのまずさ(VBATは5Vでなく3.7V)もあっ…
PCからシリアル経由でリモコン状態でSTEVAL-DRONE01のモータ4基をPWMにより出力0%~100%で変化させて浮き上がるかどうかを確かめた。結果、モータ4基で100%出力にしてもドローンは浮きもしなかった。分析すると、、DRONEの重さは約38g(バッテリー除…
これまでNUCLEO上でSTM32用のドライバを作ってきて、大体そろったので、順次STEVAL-DRONE01に移植。マイコンの系列が違うのでレジスタの番地も違うし、フラグの位置も違うので結構変更が発生しています(HAL使っていないのでしょうがない)。とりあえず、シ…
ドローン制御プログラムの続きで、PWMを制御するためのドライバを開発。この理由は、ドローン用モータの制御はPWMで行うため。いきなりドローンでデバッグするのはモータが不用意に回って危険すぎるので、NUCLEO-L476RGのボードでテスト。 NUCELOのボードに…
9DoFからの計測値は数字だけ見てもなかなかどの軸で移動が検知されているのか分かりにくい。そこで、視覚的に把握できるようGUIのViewerを作った。Unityとかだと勉強しないといけないので、、Python+Tkinterで作成。普通の作り方だとボタン操作等を処理する…
Rustで書いた9DoF(ST社のLSM9DS1)の制御プログラムをNUCLEO-L476RG上で動かし、USB-Serial経由でPCに送信している。PC側はPythonのデータダンプツールを作って、9DoFから得られたジャイロと加速度センサの値を随時更新するようにした。実際の値は以下 この値…
9DoFのセンサのI/FがI2Cであったので、HALを使わないI2C用ドライバを作っていた。タイミングのパラメータ等、ベストではないけど、一応動くようになった。これまでずっとバスアービトレーションが異常であったが、根本原因はI2CデバイスによるI2CバスGND引き…