mermaid で クラス図を描いてみる

7年前に『モデルとは基本的に図のことである』というタイトルで "DOT言語" や "PlantUML" でUMLのクラス図を描く方法を紹介しました。先日、GitHubが対応を発表して盛り上がっている "mermaid" を使ってUMLを描いてみたので紹介します。

mermaidのコード

コードから生成した画像(png)

クラス図

タミヤ カムプログラムロボット工作セット Machine Vision改造編

Eye Robot Eye Robot

前回はArduino Unoを搭載しマイコン化を果たしたカムプログラムロボット。

しかしタイマーを使ってジタバタさせているだけでは退屈。そこで、ロボットにさらなる高度な機能を付け加えました。

我、ロボットに『機械の眼(Machine Vision)』を与えん!

続きを読む

モデルとは基本的に図のことである

あるETロボコン参加チームの進捗報告をちらちらと拝見させていただいているのですが、最近の進捗報告の中に「モデルとは基本的に図のことである」という記載をみつけたので、ちょっと放っておくことができずにマサカリを投げてみることにしました。 😉

続きを読む

Mindstormsのセンサー接続方式

これは、ETロボコン Advent Calendar 2014 – Adventar の18日目のエントリーです。

Mindstorms EV3ではセンサーとインテリジェントブロックを「アナログ方式」、「I2C」、「UART」のいずれかの方式で接続(通信)しています。いずれの方法でもケーブルは同じものを共用します。ケーブルは「アナログ方式」、「I2C」、「UART」のいずれの方式でも接続できるようにと複数のワイヤー(信号線)を束ねた構成になっています。

1. アナログ方式

電圧の高低でセンサーの値を伝えます。インテリジェントブロックに内蔵されたA/D(Analog/Digital)コンバーターによってデジタル値(二進数)に変換されます。

初代 Mindstorms RCXからサポートされている最も原始的な接続方法です。互換性を保つために二代目NXT、三代目EV3もアナログ接続をサポートしてます。タッチセンサーは単純にスイッチのOn/Offの二状態を判定しているだけですがアナログ接続を使っています。

  • Hi-Technic NXT Gyro Sensor (ハイテック製 ジャイロセンサー)
  • LEGO NXT Light Sensor (LEGO純正 NXT光センサー)
  • LEGO NXT Touch Sensor (LEGO純正 NXTタッチセンサー)
  • LEGO EV3 Touch Sensor (LEGO純正 EV3タッチセンサー)

続きを読む

フラッシュメモリ書換え回数上限の考察

参加者メーリングリストにフラッシュメモリの書換え回数の上限について質問が出ていたので調べてみました。

まずLEGO社が公開しているハードウェア仕様を見るとNXTにはATMEL社のARMベースマイコン AT91SAM7S256 が載っていることが分かります。

つぎに、ATMEL社のホームページからダウンロードした AT91SAM7S シリーズの仕様書に以下の記述を見つけました。

  • AT91SAM7S256
    • 256 Kbytes of Flash Memory, single plane
      • 1024 pages of 256 bytes
      • Fast access time, 30 MHz single-cycle access in Worst Case conditions
      • ( 中略 )
      • 10,000 write cycles, 10-year data retention capability
    • 64 Kbytes of Fast SRAM
      • Single-cycle access at full speed

この記述を信じれば、普通の使い方をしている限り、すぐにフラッシュメモリの寿命が尽きる心配はないように思われます。チャンピオンシップ大会に進むチームの中には普通ではない使い方をしているチームもあるとは思いますが・・・ 😉

ちなみに素のフラッシュメモリの場合、書換え回数の上限は数十回から数百回の場合が一般的ですが、ATMEL社の AT91SAM7S シリーズのマイコンには Embedded Flash Controller (EFC) と呼ばれる回路が内蔵されており、Flashへの読み書きを調停することでアクセス速度を向上させたり、Flashの寿命を延ばす工夫をしているようです。