chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

2021-01-01から1年間の記事一覧

Scratch3の拡張機能の開発にChromeのDevToolを使ってデバッグ

Scratch3の拡張機能を使って新しいブロックを作る時なかなかバグが取れない。実行環境がブラウザなので、ブラウザで表示されない場合に原因が特定しづらい。デバッグ*1する際、少し調べると、Chrome等のDevToolでデバッグするのが可能と分かった。ビルドは通…

AWSでNode.js + Scratch 3.0を動かす->動くには動いたがWebAPI連携で問題があり却下

IoT勉強会で拡張機能付きScratch3.0を使ってもらう予定。各自のラスパイでScratchをうごかしてもらってもいいのだが、ビルドに時間がかかるので、あらかじめAWS上でScratchを走らせておいてAWSから持って行ってもらう方がいいのでは?と思い試作中 curl -sL …

Scratch 3.0をビルドしてError -> yarn で通った

npmを使ってScratchをビルドしようとしてエラーになった。根本原因は分からないが、代替え手段としてyarnを使うとビルドが通った。 $ npm --version 5.8.0 $ node --version v10.24.02298 verbose stack Error: chromedriver@90.0.1 install: `node install.…

nRF52840 + CircuitPyton + BLEによるKindleページめくりボタン試作

iOS とペアリングできたので、次はiPadとペアリングさせた。iPadをどこかに立てかけて、Kindleアプリで本を読んでるとページめくりが面倒なので、BLE接続のページめくりボタンを作ってみた。ソースは以下(iOS上でKindleが動いている前提での) Kindleページ…

BLEを動かすためにnRF52840のボードを買った->CircuitPythonによるBLE Keyboardが動いた

本来の目的が何なのか分からなくなっているが、道楽だからいいだろうということで、、nRF52840のボードを買った。外観は以下 目の前の目的はBLEでiOSと接続できるKeyboard風SWを実現するため。CircuitPythonを焼いて、modulesで使えるモジュールを表示させた…

手作り餃子(改訂版)

前回の反省を踏まえ、再度餃子を作る。材料は以下(4人前、24個ぐらい) 皮 強力粉 160g 水 80cc あん 豚ミンチ 120g キャベツ 120g ショウガみじん切り 醤油 小1 酒 小1~1.5 ごま油 小1 皮を作る。はじめは菜箸で、小麦と水をグルグルと混ぜる。だんだ…

M5 Stick CがBLE Advertisingしている時のパケット

MicroPythonを使ってM5 Stick Cを BLE Keyboard風にしたてようとしたものの、成功せずに原因調査中。Arduino版のNimBLEだと動作したので、パケットに違いがあるのかを見るため、BLE Snifferでキャプチャしてみた。その時の結果は以下 (もう面倒なので、固有…

イシューからはじめよ

「イシューからはじめよ」を買った(Kindleで約1000円)。 気になった点をメモする(今後順次追加) 答えの出ない悩みには時間を使わず、考えて答えが出る問に時間をかける 10分考えてらちが明かない場合は、悩みに入っている Issueの定義 2つ以上の集…

HID/HOGPの仕様書

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…

M5 Stick C PlusをBLE Keyboard風にしてみる->BLE KeyboardはiOSではまともに動かない

スマフォのシャッターは、BLE Keyboardの音量Up/Downで代用できることが分かっていて、M5 StickCPlusをBLE Keyboard風に仕立てたら、SitckCのボタン押下で、スマフォのシャッターが切れるはず。 KeyboardはHIDプロファイルと思っていたけど、BLEでは、HOGPと…

M5 Stick C PlusでBLEを動かしてみる

M5 StickCだからどうということはなく、ESP32のBLEを動かすのと等しいのだが、、最後にBLEを使った時は、MicroPythonのBLEライブラリはサブセットのためWindowsとはペアリングできなかったと記憶している。iOSなら大丈夫だったはず。。過去に試作したMIDI-Ke…

M5 StickC Plus用LCDドライバ(ST7789)を導入する

M5 StickCの電源がOnかOffか分かりづらいためLEDを点灯させているが、そもそもLCDに何か表示されていればいいわけで、ST7789用のドライバを探してみた。簡単に見つけられるドライバはC言語で実装されており、C言語版のドライバはビルドが必要なので、Python…

M5 Stick-C Plusを買った。MicroPythonを入れて使いたいが結構面倒な印象->場当たり的だがESP32のGeneric版ファームで動いた(駄文)

ESP32のDevKit等でMicroPythonを動かしてきたけど、電源供給が必要なため単独では動かせなかった。M5 Stack/M5 StickならLCDも付いているし、LiPoバッテリー内蔵なので、使いたいときにサクッと動かせて便利だ。ということでこぶりでかわいいM5 Stick-C Plus…

Googleからのアラートメール「保存したパスワードの一部がウェブ上に漏洩しました」

Googleから、「保存したパスワードの一部がウェブ上に漏洩しました」とメールが来て、てっきりgoogleアカウントのパスワードが漏えいしたとの警告と思ってしまった。メールの文書は以下 最初はメール自体がフィッシングか?と思って、「パスワードを確認」も…

餃子を作ってみる(按田優子氏のレシピ)

NHK「今日の料理」(プロ直伝)で、按田優子さんによる餃子の作り方をやっていて、皮も簡単にできそうなので作ってみた。味としては、もっちりした皮で旨かった。一方で醤油の分量を間違って、少し塩味が濃くなってしまった。材料は以下(TVでは20個分で説明…

STEVAL-DRONE01用MicroPython拡張モジュールの試作

理解不十分だけど、STEVAL-DRONE01をMicroPythonで制御できるように、加速度センサ(LSM6DSL)のドライバをC言語で作成した。以下は動作させた例 >>> MicroPython v1.16-243-g8c4ba575f-dirty on 2021-11-07; STEVAL-DRONE01 with STM32F401CC >>> import stdr…

プロフェッショナル 仕事の流儀の効果音を作ってみる

子供が遊びでYoutubeの動画を作っていて、某放送局の「プロフェッショナル 仕事の流儀」の効果音を使ってパロディを作りたいと言ってきた。効果音自体ネットにあると思うが、多少アレンジもできるようにと思い、先人の情報を参考に作ってみた。スペアナで見…

MicroPython用の拡張ライブラリをCで作る

当初、STEVAL-DRONE01の制御プログラムをRUSTで開発しようとしたが、コンパイル言語で試行錯誤するのに疲れて、MicroPythonで作ることにした。STEVAL-DRONE01のFlashメモリが小さいので、MicroPythonの機能を極限まで削減してビルドした結果、STEVAL-DRONE01…

Rustでドローン制御プログラムを書いてるけど、TurnAroundTimeが長くてしんどい->試作はMicroPythonに変更

タイトルの通りで、Rustで試行錯誤するのはコンパイル、ロード、デバッグの時間がかかり、細かいエラーも出る状況で、コンパイル言語による試作がつらくてテンションが下がっている(ドローンのプロペラの風切り音がうるさすぎるというのもある)。当初の方針…

Zigbeeの透過モードでシリアル通信させてみる

Zigbeeによる通信は透過モード*1とAPIモードがあるらしい。透過モードはシリアルの全二重のような通信であり、一方のAPIモードは通信パケットを作ってXBeeに投げ込むらしい。APIモードの方がより高度な通信ができるのだが、パケットを作る手間とCRC計算も必…

BLEデバイス、SPBTLE-RFを使ってみたいが、、GATT/GAPを実装しないとダメな感じか。。->XBeeを使うことにする

STEVAL-DRONE01との通信はUSB/Serialを使っている。これはまぁ楽なんだけど、飛行物に有線だといつかはじゃまになる。せっかくだから、BLEで通信させたい。そのためのSPBTLE-RFが搭載されている。 しかし、SPBTLE-RFはデバイスの仕様書はあるけど、UsersManu…

ST Micro社のサンプルコードを参考にSTEVAL-DRONE01のPWM制御部を改良ー>少なくとも浮上はした

HALを使わず周辺I/Oの制御もフルスクラッチで作ってきたSTEVAL-DRONE01だったが最終的に浮上すらしないという状況に陥った。ST Micro社が提供しているDroneサンプルコードを使って動かすとかなり危険に浮上して飛んだ。だから、、基板のGNDが不安定とかで…

離陸しないDrone(STEVAL-DRONE01)をどうするか。。->サンプルコードだと飛行した->原因は自分のプログラムのまずさであった!!

無茶でも飛び上がったら制御プログラムを書こうかという気にもなるが、どうやっても離陸しないDroneを相手にこれからどうしたものか。。やれることとしては、、(1)LiPoバッテリーをフル充電して飛ぶかどうかを確認、(2)ST Microが提供しているサンプル…

なぜモータを2基動かすと電圧が下がるのか?? 定電圧電源なのに??ー>GNDパターンに十分が電流が流せられないからではないかと推測

DRONEのモータはFETでOn/Offが行われているが、1基だけ動かす分には元気に回っているが、2基以上を動かすと出力が落ちる。落ちっぷりは、複数で回しても1基の時と同じぐらいしか出力が出ていない。テストのやりかたのまずさ(VBATは5Vでなく3.7V)もあっ…

STEVAL-DRONE01の開発・・出力100%でも浮かない

PCからシリアル経由でリモコン状態でSTEVAL-DRONE01のモータ4基をPWMにより出力0%~100%で変化させて浮き上がるかどうかを確かめた。結果、モータ4基で100%出力にしてもドローンは浮きもしなかった。分析すると、、DRONEの重さは約38g(バッテリー除…

NUCLEO上で開発したドライバをSTEVAL-DRONE01に移植、PWMでモータを制御

これまでNUCLEO上でSTM32用のドライバを作ってきて、大体そろったので、順次STEVAL-DRONE01に移植。マイコンの系列が違うのでレジスタの番地も違うし、フラグの位置も違うので結構変更が発生しています(HAL使っていないのでしょうがない)。とりあえず、シ…

STM32+RustでHALを使わず素でPWM制御

ドローン制御プログラムの続きで、PWMを制御するためのドライバを開発。この理由は、ドローン用モータの制御はPWMで行うため。いきなりドローンでデバッグするのはモータが不用意に回って危険すぎるので、NUCLEO-L476RGのボードでテスト。 NUCELOのボードに…

Python+Tkinterによる9DoFセンサビューアの作成

9DoFからの計測値は数字だけ見てもなかなかどの軸で移動が検知されているのか分かりにくい。そこで、視覚的に把握できるようGUIのViewerを作った。Unityとかだと勉強しないといけないので、、Python+Tkinterで作成。普通の作り方だとボタン操作等を処理する…

9DoFのセンサーをNUCLEO経由でPCに転送できた

Rustで書いた9DoF(ST社のLSM9DS1)の制御プログラムをNUCLEO-L476RG上で動かし、USB-Serial経由でPCに送信している。PC側はPythonのデータダンプツールを作って、9DoFから得られたジャイロと加速度センサの値を随時更新するようにした。実際の値は以下 この値…

STM32/RustでHALを使わずレジスタを直接操作してI2Cの send/receive

9DoFのセンサのI/FがI2Cであったので、HALを使わないI2C用ドライバを作っていた。タイミングのパラメータ等、ベストではないけど、一応動くようになった。これまでずっとバスアービトレーションが異常であったが、根本原因はI2CデバイスによるI2CバスGND引き…