(u_u)

Categories: [blog]


pythonでmbedとシリアル通信をする


Categories: [blog]

あけましておめでとうございます。
pythonでmbedとシリアル通信をするとき、ループの処理が重いと転送の間隔が空いてしまい、リアルタイムに制御できないときがあります。
その時はSerialを別Threadにすることで解決できました。

import threading
import serial
from time import sleep

def portIsUsable(portName):
    global mbedSerial
    try:
        serial.Serial("/dev/ttyACM0", 115200)
        return Tr...

mbedでクラスを作ってプログラムを書くときに参考になるやつ


Categories: [blog]

Mbed OS Documentation | Reference

#include "mbed.h"

/**
 *  Sonar class for the HC-SR04
 */
class Sonar {
    DigitalOut   trigger;
    InterruptIn  echo;     // calls a callback when a pin changes
    Timer        timer;
    Timeout      timeout;  // calls a callback once when a timeout expires...

stm32 nucleo f446reでI2Cと割り込みを同時に使う方法


Categories: [blog]

F446RE、I2Cと割り込みを同時に使うことができません。I2Cの通信をしている最中に割り込みが入ると(InterruptIn, Tickerなど)I2Cの通信はボードをリセットするまで全くできなくなります。これは既知の問題のようで(STM32 I2C fails inside Ticker callback · Issue #3966 · ARMmbed/mbed-os)、解決するには

call the i2c_read/i2c_write from the main thread or another dedicated thread
use the async API a...


PlatformIOでMbed OSを使用する


Categories: [blog]

mbed — PlatformIO 4.0.0a1 documentationに書いてあるとおり、例えばeventライブラリとrtosライブラリを使用する場合、以下をplatformio.iniに追加する。

build_flags = -D PIO_FRAMEWORK_MBED_EVENTS_PRESENT -D PIO_FRAMEWORK_MBED_RTOS_PRESENT

どうも本家のWebコンパイラは遅くてしょうがないので(RTOSプロジェクトを新規作成するだけで5分近く待たされ、コンパイルも5分かかる…)、ローカルでコンパイルしたいところ。Webコンパイラはお手軽でいいん...


platformIOのデバッガを使う(セットアップ編)


Categories: [blog]

プレミアムアカウントでないとデバッガは有効にできないです。

Frequently Asked Questions — PlatformIO 4.0.0a1 documentation
普通にPlatformIOをインストールして、

curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
sudo use...