光る縄文土器を作る (前編)

ワイヤレス給電でゆらゆら光る火焔型土器を作ってみました。火焔型土器とは歴史の教科書でもおなじみの縄文土器の一種です。マイコンを内蔵しLEDで電飾しました。またBluetoothにも対応しスマホから電飾のコントロールができます。制御ソフトウェアはUSB接続でPCから書き換え可能です。

今回は電装系とソフトウェアの作成をレポートします。
土器の制作について後編でレポートします。

電装系の部材

給電台の部材

回路



  • ワイヤレス給電モジュールで電源を供給します。(入力:9〜12V、出力:5V 500mA)
  • 小型のBLEマイコン基板 Seeed Studio XIAO nRF52840で制御します。(開発環境は Arduino )
  • ワイヤレス給電とUSBの電源がぶつからないようにショットキーバリアダイオードを挿入しました。
  • フルカラーシリアルLEDのNeoPixelを16個つなぎます。
  • ワイヤレス給電での電源立ち上がり時にNeoPixelの挙動が安定せず、変な色に発光することがあったので、NeoPixelの電源はマイコンからFETでON/OFFするようにしました。
  • NeoPixelの電源には1000uFのコンデンサを並列に入れることが推奨されていますが、かさばるので省略しました。使用したNeoPixelのテープには素子一個ずつにコンデンサが付いています。(容量は不明)

中継基板

XIAO nRF52840と電源およびNeoPixelを接続するために下図のような中継基板を作りました。



ソフト


  • 16個のNeoPixcelをさまざまな発光パターンで光らせます。
  • 発光パターンはBlluetooth(BLE)でスマホやパソコンからコントロールできます。
  • ブラウザからコントロールできるWebアプリも作成しました。(iOSは非対応)

参考:XIAO nRF52840

BLEマイコン Seeed Studio XIAO nRF52840 については上記の商品ページおよび下記の記事を参照。

次回の後編では、この回路を組み込んだ火焔型土器の制作をレポートします。

トースカンの自作

トースカン(上の写真のような工具)は買うと高くて、安いやつでも5000円くらいします。工具にかけるお金はケチるべきでないとは思ってますが、トースカンは自分にとってはめったに使わない工具なので自作することにしました。

材料

合計1300円くらいになりました。手持ちの部品が使えればさらに安上がりになります。

目玉クリップについて

鉛筆、ケガキ針、マジックペンなどがはさめる大きさのもので、目玉の穴にM5のネジが通れば良いです。


ナットについて

蝶ネジの反対側を止めるナットは、手でしめやすいように蝶ナットを採用しましたが、より安く作りたいならふつうのM5ナットでもまあ大丈夫です。バネワッシャーがあればベターでしょう。また、フランジナットでも良いです。適宜、手持ちの部品でアレンジしてください。

M5ナットと平ワッシャー (左)、フランジナット表・裏 (中央)、蝶ナット (右)

M5ナットは、ダイソーのボルト・ナット・ワッシャーセットに入ってます。

木ネジについて

適当な木ネジの手持ちが無かったので、邪道ですが今回はふつうのM4ネジ (12mm) を使用しました。3.5mmのドリルでネジの深さ以上の下穴を掘っておけば、まあ締められます。上記のダイソーのボルト・ナット・ワッシャーセットに入っているものを使いました。

5.5mm幅のスリットに対してネジ頭がやや小さめなので平ワッシャーを入れたほうが良いでしょう。平ワッシャーも上記のセットに入ってます。

土台の木材について

土台の木材はなんでもいいですが、(1) コケない程度の幅と長さがあること (2) ネジ深さ以上の厚みがあること が必要です。今回はセリアの厚さ15mmのヒノキ板を50mm×70mmに切って使いました。

ノコギリで切って、ボール盤で下穴を掘りました。電動ドリルで掘る場合は、斜めにならないよう、貫通しないように気を付けましょう。ケガキには完全スコヤがあると便利です。


組み立て方

写真のとおりなので特に説明は不要かと思います。
目玉クリップを下向きにすれば、より低いラインに対応できます。

参考にした記事

UEW(ポリウレタン線)の許容電流

UEW(ポリウレタン線)に流せる電流について、とくに規格があるわけでもないようですが、一般的にだいたい φ0.2mmで100mAφ0.5mmで600mA 程度とされていることが多いようです。ここから逆算すると、1mm² あたり3A くらいが目安ということになります。

線径、AWG線号と許容電流の目安を下表に示します。
(あくまで根拠レスの参考値と考えてください。)

線径 AWG 許容電流
0.2mm 32 100mA
0.26mm 30 150mA
0.29mm 29 200mA
0.32mm 28 240mA
0.4mm 26 380mA
0.5mm 24 600mA

パソコン版Googleドライブのキャッシュファイルをクリーンアップ

やりたいこと

パソコン版Googleドライブ(Googleドライブがローカルドライブのように見えるやつ。利用には Google Workspace (GWS) 導入が必要。)は便利だけど、キャッシュファイルがCドライブを圧迫しがち。これをクリーンアップしたい。

キャッシュファイルはどこにあるか?

下記のような場所にある。

C:\Users\ユーザー名\AppData\Local\Google\DriveFS

クリーンアップの手順

  • まず、Googleドライブの同期が完了していることを確認する。
    (ファイルのアイコンに雲マークが付いていること)

  • Googleドライブのアプリを終了する。
    (通知領域のGoogleドライブのアイコンをクリック→歯車のアイコンをクリック→終了)

  • 上記のキャッシュファイルのフォルダ(DriveFS)を削除
  • Googleドライブのアプリを起動する。
    (タスクバーの検索ボックスで google drive と入力すれば見つかる)

  • 起動時にログインを求められたらブラウザからログインする。

(備忘) 箱の折り方

よく忘れるのでメモ。
箱の折り方はいろいろあるけど、いちばん分かりやすいタブ付きのやつ。

  1. 4つ折りにする。
  2. つぶし折りにして5角形にする。(頂点を下向きに)
  3. 両サイドを内向きに折り込む。(側面になる)
  4. 上辺を下向きに折り込む。 (タブになる)
  5. 下部の三角形を上向きに折って折り目をつける。(底面になる)
  6. 開く。 (完成)

【参考】

チェス盤風の将棋盤になるタオル

チェス盤風の将棋盤になるタオルをデザインしてみました。
符号と角の利きが見やすくなってます。(写真は後手番目線)


特長

  • 市松模様なので角の利き(斜めのライン)が見やすい。
  • 先手側からも後手側からも符号(座標)が見やすい。
  • タオル地なのでシワになりにくく、駒が拾いやすい。


pixivFACTORYで制作

タオルはpixivFACTORYで制作しました。

サイズ大のタオルで 37 cm x 40cm。標準的な将棋盤の寸法は 33.3cm × 36.4cm なのでそれより大きいのですが、印刷の誤差の都合で余白を取る必要があり、また上下左右に符号を入れたため、マス目のサイズは標準的な将棋盤より少し小さめになりました。そのため上の写真のようにややタイトな感じはありますが普通サイズの駒でも使えます。

データ

符号の文字のフォントには、やさしさゴシックボールドを使用しました。

Seeed XIAO BLE nRF52840を試す

1. Seeed XIAO BLE nRF52840とは

BLEタイプのXIAO。
Seeed Studio XIAO nRF52840

2. Arduino開発環境

上記のSeeed Wikiにしたがってセットアップする。

2.1 ボードの追加
  • Arduino IDEの「ファイル」>「環境設定」>「追加のボードマネージャのURL」に下記URLを追加。
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
  • 「ツール」>「ボード」>「ボードマネージャ」で 「seeed nrf52」を検索。
  • 「Seeed nRF52 Boards」と「Seeed nRF52 mbed-enabled Boards」が見つかる。ここでは後者を選択。
  • ボードとシリアルポートを選択。

※ シリアルポートが認識しないときは、USBコネクタの横の小さなリセットボタン(RSTのシルクあり)をダブルクリックする。

2.2 ライブラリの追加
  • 「スケッチ」>「ライブラリをインクルード」>「ライブラリを管理」で「ArduinoBLE」を検索してインストール。
2.3 (捕捉) ボードとライブラリについて

ボードの選択が Seeed nRF52 Boards か Seeed nRF52 mbed-enabled Boards かで利用できるBLEライブラリが異なる。 Seeed nRF52 Boards では Adafruit Bluefruit nRF52 Libraries が、Seeed nRF52 mbed-enabled Boards では ArduinoBLE が利用できる。前者のほうがサンプルが豊富だが、ここではシンプルで分かりやすかった後者をまず使ってみる。

ボード BLEライブラリ
Seeed nRF52 Boards Adafruit Bluefruit nRF52 Libraries
Seeed nRF52 mbed-enabled Boards ArduinoBLE

3. Lチカ

3.1 オンボードのLED

基板上に3色LEDがある。

void setup() {
}
void loop() {
  digitalWrite(LEDB, HIGH);
  digitalWrite(LEDR, LOW);
  delay(500);
  digitalWrite(LEDR, HIGH);
  digitalWrite(LEDG, LOW);
  delay(500);
  digitalWrite(LEDG, HIGH);
  digitalWrite(LEDB, LOW);
  delay(500);
}
3.2 NeoPixel

NeoPixel(WS2812B)のドライブにはAdafruitのライブラリが利用できる。
「スケッチ」>「ライブラリをインクルード」>「ライブラリを管理」で「Adafruit NeoPixel」を検索してインストール。
下記は、D0ピンで12個のNeoPixelを制御するスケッチ。

#include <Adafruit_NeoPixel.h>
#define PIN D0 
#define NUMPIXELS 12

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
uint16_t colorH = 0; // 色相(HSVのH)

void setup() {
  pixels.begin(); 
}

void loop() {
  colorH = colorH + 1;
  for (int i = 0; i < NUMPIXELS; ++i) {
    // H(色相), S(彩度), V(明度)を制御
    pixels.setPixelColor(i, pixels.ColorHSV(colorH, 255, 255));
  }  
  pixels.show();
  delay(5);
}


4. BLE

4.1 スケッチ

BLEで基板上の赤色LEDをON/OFFするサンプルを試す。
「スケッチ例」>「ArduinoBLE」>「Peripheral」>「LED」を開く。
ただし、LEDのON/OFFが逆なので下記のように修正する。
また、ターミナルでシリアルポートを開かないと動作が始まらないことにも注意。

        if (switchCharacteristic.value()) { 
          Serial.println("LED on");
          digitalWrite(ledPin, LOW);     // LOWでON
        } else {
          Serial.println(F("LED off"));
          digitalWrite(ledPin, HIGH);    // HIGHでOFF
        }
4.2 スマホで動作確認

nRF ConnectやLightBlue等の汎用のBLEツールで動作確認する。ここではnRF Connectを使用した。
まずデバイスをスキャンする。このサンプルではデバイス名は「LED」と表示される。見つかったら接続する。

次にサービスを選択する。サービスのUUIDはスケッチの20行目で "19B10000-E8F2-537E-4F6C-D104768A1214" と定義している。表示名は「Unknown Service」となる。

するとキャラクタリスティックが表示される。キャラクタリスティックのUUIDはスケッチの23行目で "19B10001-E8F2-537E-4F6C-D104768A1214" と定義している。表示名は「Unknown Characteristick」となる。

「↑」のボタンを押すと Write value の画面になる。0x01 を SENDすると赤色LEDが点灯する。0x00 を SENDすると消灯する。またシリアルポートにもログが出力される。