秋月でLPC11U35 が乗っているボードを買った。うっかり3枚買っていた。EA LPC11U35 QuickStart Board
と互換のもの。

RAM や Flash が少なめだけど以下の点で魅力的なボード

  • mbed 対応
  • 850円と安価
  • 単体で USB 経由で書きこめる
    • デバッグするならシリアルは別途繋ぐ必要あるけど
  • 別のチップに対して USB SWD インターフェイスになれる

コード的な備考を先に書いておく

  • LED1 〜 LED4 は全部 P0_7 のエイリアスになっている。
  • USBTX/USBRX はサポートされない

Lチカのコードは何の変哲もない。

#include "mbed.h"

DigitalOut led(LED1);
// Serial serial(UART_TX, UART_RX);

int main() {
	for (;;) {
		led = 1;
		wait(0.5);
		led = 0;
		wait(0.5);
	}
}

ビルドするも動かない

platformio でビルドしたのを書きこんでもさっぱり動かず、再度 CRP DISABLED というボリュームがマウントされてしまう。オンラインコンパイラでは動くので、手元の環境の問題であることはわかったが、なかなか原因がわからなかった。

結局 platformio は mbed OS 5 の環境でビルドしようとするが、LPC11U35 では RAM が足りず起動できないようだ。

実際、mbed の公式を見て mbed OS 5 系に対応するボードをリストにすると (そういうことができることにはじめて気付いたが)、LPC11U35 は出てこない。

platformio でフレームワークのバージョンを指定してビルドする方法がどう調べてもわからなかった。

mbed cli を使う

そういうことで、いろいろ試したけど、あきらめて platformio のことは忘れましょう。

ARM 公式で提供されている mbed-cli をいれるのが今のところは最良のようです。

インストール

まず Python のツールなので python が必要なのと、pip も必要です。ここでは

  • python は macOS のシステムに入っているものを使う
  • pip はグローバルに入れる
  • mbed-cli もグローバルに入れる
  • ほかだいたいの依存モジュールはユーザー領域にいれる (pip --user)
    • 既存の setuptools をアップグレードしようとするのだが OS 保護に守られて root でも上書きできないので、基本的に --user で入れたほうが良い。

という感じでいきます。

curl https://bootstrap.pypa.io/get-pip.py | sudo python
sudo pip install mbed-cli IntelHex

mbed-cli には GCC_ARM のツールチェーンを入れてくれる機能はなく、前もって arm-none-eabi-gcc とかを入れておく必要がある。https://launchpad.net/gcc-arm-embedded とかを入れてパスを通しておく。

もしくは、platformio で既に入れてあるのがある場合は以下のようにしてパスを通せば使える。

export PATH=$HOME/.platformio/packages/toolchain-gccarmnoneeabi/bin:$PATH

プロジェクト作成

今回使う LPC11U35 は mbed OS 5 未対応のため、mbed 2 (いろいろ別名がある。mbed library / mbed classic など) を使うようにプロジェクトを作る。--mbedlib を指定すると mbed 2 環境になる。

sketch はプロジェクト名。

mbed new sketch --mbedlib
cd sketch
vim main.cpp
mbed deploy
pip install --upgrade --ignore-installed --user -r .temp/tools/requirements.txt
mbed compile -t GCC_ARM -m LPC11U35_401
# LPC11U35 を USB かきこみモードにして
cp ./BUILD/LPC11U35_401/GCC_ARM/sketch2.bin /Volumes/CRP\ DISABLD/firmware.bin 
#リセットボタンで動く

しかし mbed-cli は凶悪で、プロジェクトディレクトリ以下に 2GB ぐらいファイルをコピーしてくる (mbed 2 の全ソースコード)。

自分は複数端末 (ノートとデスクトップ) で開発する関係で Dropbox のディレクトリで同期させておくことが多いのだが、これだと死ねる。つらい。

ピン名など

回路図

見比べると結構違う。

  • Q1 の違い。秋月版はFET
  • 3.3V レギュレータの違い
  • リセットICの違い
  • USB 入力の保護の違い

~/.platformio/packages/framework-mbed/targets/TARGET_NXP/TARGET_LPC11UXX/TARGET_LPC11U35_401 以下にある。

https://os.mbed.com/users/mbed_official/code/mbed-dev/file/57724642e740/targets/TARGET_NXP/TARGET_LPC11UXX/

  1. トップ
  2. tech
  3. LPC11U35 の mbed ローカル開発環境構築

LM1972 デジタルボリューム | tech - 氾濫原 の続きで、Arduino ではなくmbed環境での実装。

LPC11U35 で試した。AD1 にBカーブボリュームをつけてこれによって 78dBから0dbまでアッテネーションレベルをかえる。

#include "mbed.h"

// mosi miso sck
//SPI spi(P0_9, P0_8, P0_10);
//DigitalOut cs(P0_11);

class LM1972 {
    SPI spi;
    DigitalOut cs;
    const uint8_t daisy_chain;

public:
    static const uint8_t MUTE = 0xff;

    // uint16_t to 1dB step attenuation value
    static inline uint8_t volumeToAttenuation(const uint16_t v) {
        // volume 0%   -> 78dB (126)
        // volume 100% -> 0dB (0)
        const uint8_t dB =  ((uint32_t)(1023 - v) * 78 / 1023);
        uint8_t att = 0;
        if (dB < 48) {
            att = 2 * dB;
        } else {
            att = 96 + dB - 48;
        }
        return att;
    }

    static inline uint8_t volumeToAttenuation(const float v) {
        // volume 0%   -> 78dB (126)
        // volume 100% -> 0dB (0)
        const uint8_t dB =  78 * v;
        uint8_t att = 0;
        if (dB < 48) {
            att = 2 * dB;
        } else {
            att = 96 + dB - 48;
        }
        return att;
    }

    LM1972(
            PinName _mosi,
            PinName _miso,
            PinName _sck,
            PinName _cs,
            uint8_t _daisy_chain = 1
          ) :
        spi(_mosi, _miso, _sck),
        cs(_cs),
        daisy_chain(_daisy_chain)
    {
        spi.format(8, 0);
        spi.frequency(1e6);
        cs = 1;
    }

    inline void setAttenuation(const uint8_t channel, const uint8_t v) {
        cs = 0;
        // >150ns
        wait_us(2);
        spi.write(channel);
        spi.write(v);
        // >150ns
        wait_us(2);
        cs = 1;
    }

    uint8_t setVolume(const float v) {
        const uint8_t att = volumeToAttenuation(v);
        for (int i = 0; i < daisy_chain; i++) {
            setAttenuation(0, att);
            setAttenuation(1, att);
        }
        return att;
    }

    uint8_t setMute() {
        for (int i = 0; i < daisy_chain; i++) {
            setAttenuation(0, MUTE);
            setAttenuation(1, MUTE);
        }
        return MUTE;
    }
};

DigitalOut led(LED1);
Serial serial(UART_TX, UART_RX);
AnalogIn pot(P0_12); // AD1

LM1972 volume(P0_9, P0_8, P0_10, P0_11);

int main() {
    serial.baud(9600);
    serial.printf("init\r\n");

    volume.setMute();

    for (;;) {
        led = 1;
        wait(0.5);
        led = 0;
        wait(0.5);

        float val = pot.read();
        serial.printf("pot val = %d\r\n", (int)(val * 100));
        uint8_t att = volume.setVolume(val);
        serial.printf("set att = %x\r\n", att);
    }
}

多摩川河口付近にある旧穴守稲荷神社大鳥居 (大田区羽田空港) から、阿蘇神社鳥居 (東京都羽村市) までのサイクリングロードを往復で走った。116kmを休憩込みで5時間37分ぐらい。

少し前にほぼ同じことをしたんだけど、完全走破ではなかったので、もう一度チャンレンジした。この往復は目標のひとつだったのでひとまず達成できてよかった。

多摩川は今、各所で堤防強化の工事をやっていて、本来のルートを通れないことが多い。堤防上と河川敷をいったりきたりすることになる。

今の自分だとこのぐらい走ると限界。気温5℃ぐらいで寒くて寒くてつらかった。

4ch 分の音量を一括で変更したいと思ったが、4連ボリュームというのは入手性が極めて悪く、市販の2連ボリュームを改造して4連にしたりするようだ。

ということでそもそもアナログボリュームをやめてデジタルポテンションメータを使うことを検討しはじめた。デジタルボリュームならギャングエラーも少ないし、多チャンネル化もしやすい。インターフェイスも自由にできる (といってもアナログBカーブボリュームをADCして4ch分可変させる予定だが)

LM1972

秋月で売ってる中から選ぶと、実質的にはこれしかない。1つで2チャンネル分。これを使ってひとまず2ch分を作ってみる。

実装

回路図

後段のオペアンプは実際は手元にあった OPA2134 を使っている。単電源でも使えるが、今回は正負電源を用意する予定なのでVSSとGNDはわけてある。

基板

コード

さくっと書きこんで動かせるので Arduino Nano で実験。

  • ADC 0 から値を読んで、0から78dBの間を可変する (ミュートなし)
  • ADC 0 にBカーブ可変抵抗器をつける (0〜5V分圧可変)

という前提。以下のようなことに気をつける。

  • SPI は MODE 0。ローからはじまって立ちあがりで読む。
  • D10 SS を使ってるけど、マスターなので特にこのピンを使う意味はない
  • LOAD/SHIFT は1ch書きこむごとにオン/オフすること (16bit 書くごと)
  • DATA-OUT をデイジーチェーンして次の DATA-IN に繋げる場合は単に4ch分を連続して書きこむ

volumeToAttenuation() は 0〜1023 の値を 1dB ステップで 0〜78dB の設定値に変換する関数。48dB を境に減衰量が変わるので注意が必要。0.5dB ステップは使ってない。

#include <Arduino.h>
#include <SPI.h>

void setAttenuation(const uint8_t v) {
	// channel selection
	//     0x00 (channel 1) / 0x01 (channel 2)
	// attenuation setting
	//     0b00000000 (0) 0.0dB
	//     0b00000001 (1) 0.5dB
	//     0b00000010 (2) 1.0dB
	//     ...
	//     0b01100000 (96) 48.0dB
	//     0b01100001 (97) 49.0dB
	//     0b01100010 (98) 50.0dB
	//     ...
	//     0b01111110 (126) 78.0dB
	//     0b01111111 (127)  100.0dB (Mute)
	//     0b10000000 (128) 100.0dB (Mute)
	//     ...
	//     0b11111111 (255) 100.0dB (Mute)
	//
	// initial state is Mute
	digitalWrite(SS, LOW);
	delay(1);
	SPI.transfer(0x00);
	SPI.transfer(v);
	delay(1);
	digitalWrite(SS, HIGH);

	delay(1);

	digitalWrite(SS, LOW);
	delay(1);
	SPI.transfer(0x01);
	SPI.transfer(v);
	delay(1);
	digitalWrite(SS, HIGH);
}

uint8_t volumeToAttenuation(uint16_t v) {
	// volume 0%   -> 78dB (126)
	// volume 100% -> 0dB (0)
	uint8_t dB =  ((uint32_t)(1023 - v) * 78 / 1023);
	uint8_t att = 0;
	if (dB < 48) {
		att = 2 * dB;
	} else {
		att = 96 + dB - 48;
	}
	return att;
}

void setup() {
	Serial.begin(9600);
	Serial.println("setup");

	// LM1972 Pin / Arduino Pin
	//  (9) CLOCK <-> (D13) SCL
	//  (10) LOAD/SHIFT <-> (D10) SS
	//  (11) DATA-IN <-> (D11) MOSI
	pinMode(SS, OUTPUT);
	digitalWrite(SS, HIGH);
	SPI.setBitOrder(MSBFIRST);
	SPI.setClockDivider(SPI_CLOCK_DIV16);
	SPI.setDataMode(SPI_MODE0);
	SPI.begin();
}


uint8_t prevLevel = 255;
void loop() {
	uint16_t val = analogRead(0);
	uint8_t att = volumeToAttenuation(val);
	if (abs(att - prevLevel) > 1) {
		Serial.print("analogRead = ");
		Serial.print(val);
		Serial.print(" att = ");
		Serial.println(att);
		prevLevel = att;
		setAttenuation(att);
	}
}

備考

最初うっかり±15V、つまりVSS=-15V, VDD=15V をかけてしまい、燃やしてしまった (煙が出て、はんだが溶けてチップが脱落した)。LM1972 は絶対最大定格がVDD-VSS=15V、Typical 12V なので、定格の倍以上の電圧をかけていたことになる。あたりまえだけど定格は確認しないといけない。設計段階で回路図を書く前に気付くべきな、あまりにもしょうもないミス。自戒のためアホなことをしたことも書いておく。

運用上でのよくない点も災いした。

いつもは電源をはじめていれるときは安定化電源を電流制限 (CC) をかけつつオンにし、電流量を見るのだが、今回は正負電源を用意する必要があったため、初回から直接手元にあったトランス経由の電源回路へ繋いでしまった。おかげで異常に電流が流れていることに気付きにくかった。

ということで、正負電源を用意しやすくし、事故を減らすために電源を1台増やす予定。


結局 ±5V で試した。当然うまくいった。

  1. トップ
  2. tech
  3. LM1972 デジタルボリューム

3歳児検診のとき、自宅で視力検査とかをする。普通の検査と同様に、ランドルト環の方向を本人に示してもらうようなもの。しかし真面目に書いてある通りにやったら (練習→本番とやるのだが、本番はやりなおし不可)、ちゃんと答えてくれず、結果をそのまま提出したらひっかかってしまって、赤紙 (2月n日に検査するのできてください、という実際に赤い紙) がきた。

結果的には何の問題もなかった。一通り

  • 眼の写真? (両目を何らかの機械で撮影して数値を出してた)
  • ホログラム?なんていうかわからんけど、飛びだすカードで立体視の検査
    • ランダムに見えるカードだけど裸眼立体視できるようになってるやつ
    • 3つのオブジェクトが隠れているので、見つけてね、みたいな感じ
  • ライトを上下左右に追わせて眼球に動きをみる (斜視の検査?)
  • ランドルト環で視力をはかる
    • 「右」とか「左」とかは難しいので、ランドルト環の模型を持たせて、同じようにあわせる

をやった。

LM1972 デジタルボリューム | tech - 氾濫原 に書いたが、正負電源を簡単に用意できない環境だったのが一因で事故が起きたので、もう一台安定化電源を買った。(写真右が買ったもの)

メトロニクスの524Bという型番のものを買った。会社そのものが既にないので、いつ販売されていたモデルかすらわからない。少なくとも自分が小学生のころにはどっかの企業で償却されたものが手元にあったので30年ぐらい前のものではないかと思う。

なんとなく既存のものと同じのを並べたかったので、中古で売ってるのを探して買ってみた。送料もろもろ込みで5000円ぐらい。新品でもっと出力とれるものもあるけど、好みの問題です。インターフェイスがかっこいいんだよね。

チャイルドトレーラーを買ってみた。Burley Bee というもの。

なぜこれが必要か

ベビーカーを卒業して3ヶ月ほど経過したが、こどもがインフルエンザになったときに、病院まで連れていく方法があまりなくて困ったのがきっかけ。子どもも3歳になり体重も15kgぐらいになっている。

タクシーを使えばいいんだけど (実際、休日診療所は遠いのでタクシーをつかった)、かかり付けの小児科は距離が微妙で、タクシーを待っている時間に着いてしまうぐらいの近さだけど、一方で子どもを担いで行くには若干坂もあって遠い。

このときは親戚に子ども乗せ自転車 (子乗せママチャリ) を借りて小児科までいったが、これがだいぶ怖かったうえに疲れた。子どもを乗せると重くて漕ぎ出しでフラつくし、スタンドの上げ下げ時にコけそうになるしでめちゃくちゃ怖くて、二度とのりたくないと思った。安全第一で考えれば、子乗せママチャリなんてイカれた設計は許されるものではないと思った。

しかし子乗せママチャリに3人乗りで爆走してる人とかいるけど、怖くないんだろうか……

チャイルドトレーラー

他に選択肢はないか、と考えてみるとチャイルドトレーラーが浮かんだ。

 -

4.0 / 5.0

チャイルドトレーラーは既存の自転車のリアハブにアタッチメントをつけて牽引するタイプ。トレーラー側にタイヤがついており、静止時の重量はそっちのタイヤで支えている。

牽引する自転車が転倒しても、子どもが乗るトレーラーには影響がない。重心が低いので乗せたり降ろしたりするときに恐怖を感じることはない。というか3点支持で原理的に安定している。牽引するほうの自転車は重くならないので、ふらついたりすることはなく、普通に乗るのとバランスのとりかたは全く変わらない。

おおむね7歳ぐらいまでを想定したつくりらしい。トレーラー内に2人乗り (シートベルトが2つある) 。重さは45kgまでだけど、天井があるため1人乗りでも座高で制限をうけると思われる。

Burley Bee は本体重量 9kg。Honey Bee などグレード違いでベビーカーにもなるタイプのトレーラーもある。ただ、デカいのでベビーカーモードでも普通のベビーカーのように電車に乗ったりはできないと思ったほうがいい。徒歩で小児科いくときに使いたいとかならベビーカーにできたほうが楽かもしれないと思った。

牽引する感覚

前提としてクロスバイクでひいている。ママチャリでもひけるけど、坂のこととブレーキのことを考えると軽いギアが多くて制動力が高い (Vブレーキやディスクブレーキ) クロスバイクなどか、電動アシスト自転車 (車重が重いのに速度も出せるのでブレーキ制動力も高めに設計されている) が良さそうと思った。

漕ぎ出しが少しだけ重くなるが、ひと漕ぎして慣性がつけば、転がってくれるのでほとんど牽引している感覚はなくなる。本当についてきてるか?と不安になるぐらい。上りは相応に重くなるはずだが、早く走ろうと思わないのでギアを落とせば意外と気にならない。立ち漕ぎでバイク振るのも特に違和感なくできる。下りで押されるような感覚もなかった。

若干車体が左に寄るような設計になっているので、あまり車線の左側ぎりぎりを走ると電信柱や縁石にひっかかりそうで怖い。左側にミラーが欲しいと初めて思った。

トレーラーの最大のデメリットは法律

牽引すると「普通自転車」でなくなり、普通自転車で可能ないくつかの行為ができなくなる。

  • 歩道通行禁止
  • 「自転車を除く」の交通標識に従う必要がある
    • 一方通行や進入禁止で困ることがある
    • 交通標識における「自転車」は「普通自転車」のことなので、牽引した自転車は該当しなくなる
  • 交通のひんぱんな道路の通行禁止
  • サイクリングロードが走れない
    • 普通自転車専用通行帯は走れるらしい (謎)

厳密に守るとかなり難しいときがある。

例えば高架の自動車専用道路 (だいたい交通がひんぱんな道路) へ誘導され、平行する道路が「進入禁止 (自転車を除く) 」になっているような道路だと、どちらも通れないので困る。ややこしいマイナールートを探しだす必要がある。

平行する道路がとぎれて幹線道路に合流するような場合も困る。

橋みたいな必然的に交通が集中するところでも乗って通行することができない。

つまり普通自転車でも自動車でも困らない思わぬ行き止まりが頻発する。ユーザーが少ないせいなのでもっと流行ればいいと思う。


本当にどうしようもない場合、降りて歩くぶんには歩行者扱いとなるので、降りて歩道という手がある (乗って徐行はできないが降りるのは問題ないらしい)。

ということで初めて通るルートの場合、事前に自転車単体で走行して下見したほうが確実。ストリートビューでおおまかにルートを確認して、一回自転車単体で実走してみるぐらいの段取りをしたほうが良い。


速度も目安は直線で最大25km/h、曲がるときは8km/h以下。

自転車乗るとき腰が痛くなりがちだったので、プランクとスーパーマンみたいなやつと腹筋ローラーを多少やってる。腰に効果ある気がしてるけど、それよりもとにかくお腹が緩くなる。毎日うんこでるのはいいけど、通りこして夜中に下痢で起きたりする。

保育園からの要請でミシンした。型紙をレンタルするから作ってこい、みたいなのりなんだけど、完全なレシピは用意してくれないので、最大限忖度して作らないといけなかった。というか時間なくて保育園に預けてるんだから作らなくても買えるようにしてほしい。

まぁそれはともかく、仕様が雑なので外注するのも難しいわけで、結局作ったほうが早い。

「エプロン」と書いてあったけど、構造的にはノースリーブワンピースのようなもので、袖口とかが存在する。「服」は小物と違って曲線で立体的なので素人には難しい。

型紙から 10mm 縫いしろをつけて裁断し、完全に同様の例はないものの既存の本を参考にしながら以下の手順で完成とした。

  • 前身頃・後ろ身頃をそれぞれ裁断
  • 周囲をジグザグですべてかがる
  • 表あわせで前身頃・後ろ身頃を縫いあわせる
  • 袖口・襟などを内側に 10mm 折ってステッチ
  • うらがえす
  • 袖口と襟をパイピング
  • 後ろにゴムをつける (つけかたが分からなかったので適当にミシンで2往復した)

布団カバーを作ったときに余っていた布を使ったので生地が若干うすい。あとやたらシックな感じになった。

同じ布・バイアステープで給食帽もつくった (写真はない)。こちらのページを参考に直径40cmで、バイアステープでゴムを入れる部分をつくった。両折りではなく縁取り用のバイアステープを使ったので広げながら縫ったけどなんとかなった。

ググった

「前身頃」「後ろ身頃」

この用語を初めて聞いたのでググった。それぞれ服の前のパーツ・後のパーツの意味らしい。

バイアステープの処理

バイアステープで縁取り(パイピング)するのが初めてだったので、「バイアステープ 処理」「バイアステープ 縫い終わり」とかでググった。買ったのは縁取り用に折られているバイアステープ 11mm。

やらなくても直接的に服の機能にあまり問題はないけど、袖や首まわりは肌にあたる可能性があり、かがった部分が直接露出しているとあんまりよくなさそう。またカーブしている部分は縫いしろに切り込みを入れたりするので、本体だけでは綺麗に処理できず、パイピングすると相当綺麗に仕上るように見える。あと袖とかはバイアステープで処理すると形が安定する模様。

例によって本とかにも「何のためにパイピングするか」ということは書いてないことが多いので、何らかの目的を持ってこれを行うのだということが書いてあるものが欲しくなる。

  1. トップ
  2. tech
  3. 最近のミシン - エプロン

実態が似たようなものなので紛らわしいが動作に違いがある。

ラジアルは放射状の設置されたエレメントが等電位面を形成する。この等電位面は大地とは別のもの。

カウンターポイズは大地との間でコンデンサを形成することで、交流的に大地と接続する。つまり大地そのものを等電位面として利用する。

動作の境目

十分に大地と容量結合できている場合はカウンターポイズとしてはたらく。低い周波数ほど容量を増やさなければいけない。容量結合できればいいので放射状に置く必要はない。

容量結合が十分ではない場合はラジアルとして働く。等電位面をラジアルエレメントだけで構成しなければいけないので、しっかり放射状に配置する必要がある。

大地から離れるほど、例えばマンションの高層などではカウンターポイズは十分に動作させるのが難しいと思われる。等電位面が離れすぎてエレメントの代わりにならなくなるのと、容量を確保するのが難しい。

先々週ぐらいに子どもがB型インフルエンザになっていた。

金曜ぐらいから微妙な感じだったけど、土曜日に高熱になり嘔吐したりしていた。普通の風邪かと思って出掛けて帰ってきたらゲロ臭がしててヤバい状態だった。感染拡大しないようにと消臭のために一通り次亜塩素酸ナトリウム溶液で処理したりもろもろ。

日曜日も高熱だったので、もしインフルなら早めに薬を処方してもらうべきということで夜間休日外来を受診。このときB型と診断されタミフルを処方される (夜間休日なので1日分のみ)。待ち合い室もA型・B型インフルエンザだらけだった。

月曜日かかりつけの小児科に。8:50ぐらいに電話したけど予約が11時だった。小児科の隔離室も溢れていて外で待ったりしている状態。ここもA型とB型の人がいた。熱が下がれば最短で金曜日からは登園許可といわれた。

薬局の隔離室も溢れていてしばらく寒い駐車場で待つことに。

その後1週間はいまいち熱も下がらず咳が多かった。最短の登園許可には間に合わなかったので1週間休み。もともと喘息気味なのがぶりかえして咳がなかなか収まらなかった。

保育園がB型インフルエンザでパンデミック気味になっているようだった。

ふと、今乗ってる自転車のホイールは多少ディープリム (45mm) なので、クロスバイクから引き継いで今まで持ち歩いていたチューブのバルブ長 (48mm) では足りないのではないか? と思った。

もしそうなら万が一のための持ち歩いているチューブの意味がないので確かめたところ、本当にぎりぎりバルブ先端が出る状態だったので 60mm のものを買いなおした。

なお


とのことなので多少余裕があったほうが安心っぽい (手元のモバイルポンプは問題なさそうだった)

買ったのは以下 (普通のブチルゴムチューブが欲しかったので)

SCHWALBE(シュワルベ) 【正規品】プレスタ 700×18/28Cチューブ 仏式 60㎜ロングバルブ 15SV-E.L - シュワルベ(SCHWALBE)

シュワルベ(SCHWALBE)

3.0 / 5.0

フロントホイールのチューブを既存のと入れかえて空気を入れて問題ないことを確認した。もう一度入れ替えるのも面倒なので既存のを予備として畳んだ。

いままで常備してたチューブ

パナレーサー(Panaracer) R'AIR 軽量チューブ 700×23~28C 仏式 48mmバルブ 日本製 TW723-28LF-RA - パナレーサー(Panaracer)

パナレーサー(Panaracer)

3.0 / 5.0

ところで常備していたチューブは パナレーサー チューブ R'AIR 48mm というやつだった。2015年4月に購入したものなので約4年ほど経っていた。結局一度もパンクしてない (1700km程度しか走ってないが) ので出番なし。

購入してから一度も膨らませていなかったのだけど、この期に膨らませてみたら、2本中1本がパンクしていて使えない状態だった。購入直後に膨らませていないので初期不良だったのか経年劣化なのかよくわからない。保管するときはジップロックに入れて密閉していたけど、くっついてしまったのかもしれない。

よく知らなかったがこのチューブは軽量タイプ (薄いタイプ) みたいでパンクしやすいみたい? 体積的にも重量的にも普通のブチルゴムチューブより小さい。


これからは新しいチューブを買ったら一旦膨らませて初期不良を確認することにしたい。

スーパーマリオ オデッセイ - Switch - 任天堂

任天堂

4.0 / 5.0

マリオオデッセイしばらくちまちま進めてる。一応ストーリーはクリアした。

ダンジョン的なところで2個目を見つけるのが一番楽しいかなあ。純粋にアクションをうまくやれ!みたいなのはあんま好みじゃないのでチックタックアスレチックとかレースとかは好みではない。

64の操作を結構覚えてるから、幅跳びとかヒップドロップとかはいいんだけど、ジャンプ(B)→帽子投げホールド(Y)→飛び込み(ZL+B)がむずくて、ほとんどできない。これ (ホールド飛び込み?) 基本アクションに書いてないからしばらく気付かなかったけど、一部で必須テクっぽい。のこのこがレースでやってるのを見てできることに気付いた。

今年も今年で気が重い。

言語化しづらいけど、頭の中がぐちゃぐちゃしているというかなんというか。ふりかえりながら先に見通しを考えたときに、迷走しているなという感じがする。特に社会性が低くなり続けている。仕事面が主観的にとても厳しい。何かわからんが頑張った結果ひどい目にあって解決しないことが発生して、何もしないのがベストになっている。それに複数のことを同時に進めることができない。一年以上チーム開発もしてない。

社会性が低くなりすぎると、身動きがとれなくて余計に厳しくなる。ひきこもりすぎて物理的に筋肉がなくて外に出れなくなるのと同様に、心理的な筋肉がなくなって外に出れなくなる。片足をつっこんでいるか、手遅れかわからんが、見通しが立たない。

前(いつ?)は日記に試して失敗したこと「xx したけどわからんかった。ダメだった」ってことを結構書いていたけど、いつのまにかあんまり書いてない。

  • 最近は Google Keep にメモするようにしているので、日記をメモ帳代わりにしてない (日記がブログ化してる)
  • うまくいかないことでも数日試すと解決するので一回寝かすことが多くなった
  • 完全にうまくいかないと興味を失って日記も書かなくなる
  • なんとなく日記書くことにプレッシャーを感じる (根拠なし)

もうちょっと思考過程が日記になっててもいいはずなんだけど、うまいやりかたはないものか。

そういえば31歳になっていた。

妻が誕生日プレゼントだ!つってウィッシュリストに入れておいた家庭用トランポリンを買ってて、組立てたけどだいぶ部屋の中で存在感をはなっている。飛ぶと30秒ぐらいで足が疲れる。

あとトミカの建築現場のおもちゃを貰ったけど、子どもに貸している。しかしトミカのトラックとかはない。


急に「月日は百代の過客にして」とか思い出したけどよく覚えてなかった。


はてなにインターンしてたときから今年で10年らしい。2008年に産まれた子どもは小5になるってことでビビる。てかうちの子どもでも今年4歳なわけで、ここ3年は本当に目紛しく感じる。そうこうしているうちにエンジニア定年の年齢になってしまいそうなのでやばい。

今の会社は1月入社だったため、ちょうど6年目になる。仕事面での成長はないことはないと思うけど、急激にできることが増えたりは全然していない。趣味でやってることで成長と充実がギリ感じられる程度で、今のスキルセットに不安感がある。

ITエンジニアが重視するのは成長機会と書いてある記事があったけど、純粋に向上心というだけじゃなくて、単に成長機会がないと生き残れない・死活問題だからということが関わってると思った。


はてブがなかったころは、こういうはてブに書く感想みたいなのも日記にしていたので、なんかそういうふうに戻していきたいな

12月中旬から自宅回線に異常が発生していて困っていた。

最初の症状:上りが異常に遅い

最初の症状は上り速度が異常に遅いという症状。下りで70Mbps出ても上りは0.6Mbpsとかがザラ。この時点では明確な症状といえず、プロバイダに連絡するも軽くあしらわれる。この時点では上りだけおかしいので回線異常とは思わずプロバイダ側になんらかの制限がかけられているのでは?と疑っていた。

不規則に回線不通

12月下旬の年末ぎりぎりあたりから回線そのものが不通となる自体が発生。PPPoEセッションが一切張れず、ルータを外してノートPC直結でPPPoEもダメだったため、回線異常であると切り分け。

さすがに症状が明確なのでNTTに連絡したりしていたが、特定の時間になると回復したりして「今起きてます」という状態がつくれず連絡しても「問題なさそうなんですが…」とか言われて困る。

宅内VDSL端末の交換

ただ、宅内VDSL端末(集合住宅なので共有ONU・共有VDSL端末と電話回線経由で宅内VDSL端末を繋ぐ構成)の不具合かもしれないので交換しますということになり交換。しかし交換翌日に再度同様の現象が発生したため、原因は宅内VDSL端末ではないことがわかる。このときは、やはり時間で回復したので連絡せず。

完全な回線不通

ある日、不通になったのち一向に回線が回復しないという自体がたまたま土曜日に発生し、即座に電話すると回線調査が入り、共有ONUから応答がないという旨を伝えられる。

その後すぐに担当者が来訪することとなった。調査の結果、宅内VDSL端末から共有ONUまでのリンクは問題なく (宅内VDSL端末側のLinkが点灯していたため) 共有ONUの電源部がフリーズのため再起動でとりあえず復帰。内心「これはまた発生するだろうな」と思ったけど、NTT設備なのでこっちからONU交換してくれとは言えず、再起動だけで帰ってもらう。

共有ONU交換

その後6日間ぐらいは回線異常にはならなかった。しかし再度現象が発生したため営業時間外ながら即座に電話をかけてみると、録音対応ではあったものの10分程度でコールバックがきて再度担当者がくることとなった。

今回は2人担当者が来訪し、片方は共有設備、片方は宅内端末およびユーザ(自分)対応という構成だった。作業時には既にリンクが回復していたため、宅内から見る限り共有設備は正常といわれ内心解決しないのではないかと緊張が走る。

その後2人とも共有設備を見にいった。しばらくたって、共有設備ONUがフリーズしておりデータ送り出しができない状態であったため、この設備を交換したといわれる。「この状態でなんで通信できていたかわからない」とも言っていた。

ひとまずこれで異常は回復したとみられる。アップロード帯域が異常に狭い現象も再現しなくなった。

ひかり回線異常のノウハウ

現象が発生し次第に即座に連絡する。

NTT側は過去の回線状況はわからないらしいので、回線の不具合が発生したら即座にひかりサポートセンターに連絡を入れる必要がある。時間外は録音と書いてあるので翌営業日対応なのかと思いきや、縮退運用しているだけで担当者は裏にいるみたいで一応即座に調べてコールバックしてくれる。

状況を監視する

自宅内に常時外部と通信しているちょうどいい Raspberry Pi があったため、これに mackerel-agent を入れて、年末から監視を開始した。mackerel-agent は特に設定せずとも connectivity を監視してアラートを出してくれる。ネットに繋ってる Raspi があれば一瞬でできるので便利だった (本来の用途ではないが)。

あとアラートにメモを書けるので対応状況をメモったりしていたのと、アラート対応という形にすると、半ば機械的にNTTに電話したりするメンタルになるのでキレにくくなって精神的にも良かった。

固定回線はオワコンだなと思う

回線異常のときいちいちNTTの担当者を家に召喚する必要があるとかキツい。ハードがマンション共有部や宅内にあるから、こういうことになっている。

モバイル回線は外の基地局との通信なのでこういったことはない。固定回線も窓の外から家に中にWiFi吹いてくれればいちいちこっちで応対する必要がない。

  1. トップ
  2. tech
  3. 固定回線異常との戦い