mbed OS5 の Callback

mbed OS2 までは、引数に関数を受け取る場合、FunctionPointerArg1<戻り値, 引数> を使って抽象化していた。mbed OS 5 では Callback を使う。 https://developer.mbed.org/users/mbed_official/code/mbed/file/f9eeca106725/Callback.h mbed OS 5.1 からこ…

mbed で Serial の CTS/RTS を普通のGPIOとして利用する

現状バグっていて出来ない。 BLE NanoのSerialクラスのバグ回避 - 滴了庵日録 BLE Nano + mbed の Serial の実装がつらい感じだった | tech - 氾濫原 DEVICE_SERIAL_FC を定義すればうまくいきそうなものの、こちらもうまく動かない。(リンカエラーになるの…

HX711 の準備完了時間、mbed OS5 での thread

HX711 では、データ出力準備が整ったら、DOUTが HIGH -> LOW になる。この出力時間の待ち受け時間を計ったところ、約77msかかる。メインループで待ち受けすると77msは割と支配的でUIのレスポンスに悪化に繋がる。 AVR の Arduino なら Timer のハードウェア…

安い電子パーツを ebay や aliexpress (アリババ) で買う

時間がかかっても安く買いたい、そんなときは ebay もしくは ali で買う。 http://www.ebay.com/ https://ja.aliexpress.com/ ebay は "Free international shipping" な物が国際送料無料。基本送料込みで ebay はソートしてくれるので買う。ebay に無い場合…

mbed SDK での C++ コーディングルール

https://github.com/ARMmbed/mbed-os/blob/master/docs/COMMITTERS.md にコーディングルールが書かれていた。 今まで C++ でちゃんとしたコーディングルール上で開発をしたことがなかったので読んでみた。 ルール The mbed SDK code follows K&R style (Refe…

mbed で Callback 関数を扱う

mbed のコアAPI、 Ticker などでも使われている、FunctionPointer を使う。 https://developer.mbed.org/users/mbed_official/code/mbed-src/file/a11c0372f0ba/api/FunctionPointer.h typedef FunctionPointerArg1<void, void> FunctionPointer; typedef FunctionPointe</void,>…

BLE Nano V1.5 を mbed 上で 32K RAM で扱う

BLE Nano は V1.0 では 16KB の RAM が、V1.5 から 32K RAM がのっている。が、mbed 上では現在 1.0 ベースしかなく、折角の 32K RAM が使えない。ので使えるようにする方法メモ。 mbed OS 5 の場合 rtos の INITIAL_SP でスタックポインタのアドレスをマッ…

バルミューダ用の5cc計量カップを3Dプリンタで作る

バルミューダのトースター、スチーム用に5ccのコップデザインの付属の計量カップを使んだけど、この計量カップは一般には市販されて無くて、かつ小さいのでうっかり無くしそうなので、作って印刷してみた。 Fusion 360 でモデリングして印刷。5cc はざっくり…

1mA単位で計れる OLED USB電流チェッカー

このタイプの物で 1mA 単位で計れるのは珍しく、また OLED なので暗いところでも見やすい。約1000円。 http://www.ebay.com/itm/291824083937 Robit社 で教えて貰った。

mbed で MAX7219 + 8桁7セグメントLEDを使う

ebayで約200円で売られている、MAX7219 + 8桁7セグメントLEDを mbed で動かした。 SPIで制御するのだけど、MISO は必要なく、繋ぐ線は (mbed) MOSI -> (MAX7219) DIN (mbed) SCK -> (MAX7219) CLK (mbed) CS -> (MAX7219) CS の3本で良い。 オフィシャルが提…

HX711で重さを量る

ハカリなど重さを量るには、一般的にロードセルとひずみゲージセンサーを使って実現している。HX711 は安価なひずみゲージを読み取るためのICで、24bit ADCを搭載していて、ICにクロックを送ることでデータを受け取る。ebay では実装済の物が一つ100円以下で…

nrf51 の nano.specs で printf で float の値を表示する

float の値を printf に表示したいだけなのに時間がかかった…。 newlib-nano を使ってるので、 https://devzone.nordicsemi.com/question/5076/using-floats-with-sprintf-gcc-arm-none-eabi-nrf51822/ にあるとおり、 -u _printf_float を ldflags に追加す…

nRF5x-DK のファームウェアを更新する

nRFのDKのJLinkを使ってのファームウェア書き込み、windows 環境のnRFgo からだと5%ぐらいの確率で、Linux環境だとJLinkExeで書き込むとほぼ二回目で失敗する。調べたらファームウェアアップデートしとけ情報があった。 https://www.nordicsemi.com/eng/nord…

1~5V -> 5Vへの昇圧DCDCコンバータ

3V->5Vへの昇圧が必要になったので袋から出してきた。英語だと boost converter か step-up converter。 http://www.ebay.com/itm/5PCS-DC-DC-Boost-Converter-Step-Up-Module-1-5V-to-5V-500mA-for-Arduino-phone/142047353770 ebay で約一個60円で売ってる…

nrf51 で SWDIO がピンリセットとして認識される

SWD経由で書き込んでちゃんと動いて、電源入れ直すと動かなくなってハマった…。VINとGNDのみの配線なら動いてるので、一つ一つ確認するとSWDIOのピンがGND(かLOW)の時に起動せず、HIGHかオープンな時に起動することが解った。 nrf はSWD書き込み直後の起動は…

nrf51 のファームウェアから SoftDevice を切り離す

mbed 環境でコンパイルすると、現在S130のSoftDeviceが結合されて作成される。SoftDevice は一度書き込めば再度書き込む必要が無く、分離することでSoftDevice書き込みを省略し、高速に書き込める。 nRF51_OTA_strip.py を使う https://developer.mbed.org/u…

nRF51/nRF52 DK を J-Link のライタとして使う

nRF51-DK や nRF52-DK (Preview含む) から J-Link を使って SWD で書き込む。具体的な方法は http://electronut.in/nrf51-dk-external-programming/ のページに書かれているとおり。P20の八本のインターフェイスから書き込める。 MicroUSB に近い方から http…

USB の Serial Number を調べる

Linux の場合 差すと dmesg に出るので調べる $ dmesg | grep SerialNumber ... [351921.174389] usb 1-2: SerialNumber: 5CF37074... Windows の場合 USBDevice を使う。 http://www.nirsoft.net/utils/usb_devices_view.html 差した順にソート等もできるの…

ESP8266 上で Lua インタプリタが動くファームウェア、NodeMCU を使う

NodeMCU は、Node.js のように非同期でイベントドリブンなコードを書く事が出来る、ネットワークを利用する ESP8266 とは相性が良い開発環境(ファームウェア)。Lua インタプリタが動くので、マイコン上でプログラムを動的に実行できる。また NodeMCU 用のハ…

EPS8266 の MQTT subscriber ライブラリ

ESP8266 から MQTT で~、という記事、大体データを publish することしか書かれて無くて、subscribe することについては触れられていることがほとんど無い。というわけで色々試してみたのでメモ。 SSL が必要か 接続でSSLが必要な場合、esp_mqttぐらいしか…

mbedで開発出来るようになるかもしれない、2$のWiFi SoC、RTL8710について

蟹NICでお馴染みの realtek 社の WiFI が使える SoC マイコン RTL8710。安価なWiFi SoC は TELEC認証通ってるESP8266あるし、そんなに興味が無かったんだけど、Tiny $2 IoT module runs FreeRTOS on Realtek Ameba WiFi SoC の記事に出ている PADI IoT Stamp…

esp8266 のSRAM

データシートによると RAM size is around 50 KB, that is to say, when ESP8266EX is working under the station mode and is connected to the router, programmable space accessible to user in heap and data section is around 50 KB.) とのこと。メモ…

組み込み関係の情報が少ない

Web 上には組み込み関係の情報は、Web系の情報に比べると圧倒的に少ない。でも Qiita に書くのは知識が足りないからか、有益な情報が書けなさそうなので敷板が高い。また書いてもストックされない(承認欲求~~)。 というわけで、雑にはてなブログに書いてい…