LPC810の書き込み&プログラム開発に関する備忘録

部品箱から、大昔に買ったLPC810がたくさん出てきた。

LPC810というのは、「8ピンARM」などと称していっとき話題になった、
NXPのARMマイコンで、多分流行った頃に買ったのだと思う。

8ピンの小さなパッケージにもかかわらず、ARM Cortex-M0コアを搭載した32bitマイコンであるということで話題になったものと思われる。当時はmbedも全盛期だったはずで、mbedのオンラインコンパイラを使った開発例もしばしば見かけた。

今となってはもっと良いマイコンがあるので積極的に設計に採用しようとは思わないものの、この在庫分に関しては、せっかくなのでなんとか料理してやりたい。
しかしながら、電子工作界隈でのLPC810に関する記事は流行当時のものばかりで、そもそも2025年にはどうすればプログラムがビルドできるのかすらよくわからなかった。

そんなわけで、何とか調べてLチカまではできるようになったので、その備忘録を残しておく。

#方針

普通のARMマイコンなので、究極的にはARMのコンパイラを持ってきて、データシートを読みながらリンカスクリプトを書いてビルドしてやればいいのだろうが、流石に面倒なので、できるだけ高級な(と言ってもプログラムメモリが貧弱なのでそこまで強力な抽象化ができるわけではないのだが)ツールを使おうとしてみる。

#プログラムのビルド

流行当時の記事をみると、mbedのオンラインコンパイラを使っている例と、LPCXpressoを使っている例がある。

mbedのオンラインコンパイラは、mbedのサービスが終了してしまったので使えない。その後の後継サービスもあるようだけれど、そもそもプログラムメモリが大きくはないので、mbedを使うくらいならもう少し薄い環境でやりたい。(RoboCup Juniorをやっている時にmbed 5を使っていたが、あれは結構デカい)

そういうわけなので、LPCXpressoを使ってみる方法で行くことにする。
しかし、実はLPCXpressoもソフトウェアとしてはdeprecatedらしい[1]

そういうわけで、その後継のMCUXpressoを使ってみることにする。

#MCUXpressoのインストール

無料。やるだけだった。MCUXpressoのダウンロードページからダウンロードして、インストールするだけ。 STとかだとこういうツールがWindowsだけというのはありがちだが、Macでも普通に使えた。

#プロジェクトの作成

  1. MCUXpressoを起動して、新規プロジェクトを作成する。
  • [File] → [New] → [Create a new C/C++ project]
  • Preinstalled MCUsからLPC810を選択。
  • ボードは選択せずにNext
  1. ウィザードの選択
  • “C++ Project” を選択してNext.[2]
  • "LPCOpen"とかいうウィザード群もあって、こっちの方が新しいらしいのだけれど、私の手元では上手くいかなかったので、一旦LPC810向けのLPCOpenライブラリはなさそうなので、LPCOpenではない方(CMSISというライブラリ群らしい)を選択する
  1. プロジェクト名の設定
  • ここではLチカなので"blink"にしておきました
  1. ライブラリの設定

CMSISライブラリを選択する。たぶんここでハードウェアごとの設定を指定するようになっているのだろうと思われる。
私はNXPのマイコンはマジで初心者なので、合ってるかわからん。
MCUとしてLPC810を選択していれば、それぞれ一択になるはずなので、選択できるものを選択する。

  1. DSPライブラリの設定

DSP(Digital Signal Processing / ディジタル信号処理)に使う高級な関数群を使うかどうかの設定。
基本は使わないのでいいはず。デカいので、不要なら無視してNextでいいはず。
高速フーリエ変換とか使いたい場合は使うといいのかもしれないが、使ったことないのでわからん。

  1. MTBの設定

Micro Trace Bufferを使うか、使う場合はどのくらいの容量を割くかの設定ができる。
こんなことをしているとメモリがすぐに足りなくなるので、使わない。

  1. CRPの設定, C++の設定

MTB同様、無視していく。

  1. プロジェクトの作成
    Finish.10秒くらいかかった。

  2. post-build stepsの設定
    このままでもビルドはできるのだけれど、これだとaxfファイルしか生成されないので、binファイルを生成するように設定する。
    [Project]→[Properties]→C/C++ Build → Settings → Build Steps の中にある、Post-build stepsに、コメントアウトされた部分があるので、アンコメントしておく。

#プログラムの実装

今回はポート2(4番ピン)でLチカする。
blink.cppを以下のように書き換えた。

#ifdef __USE_CMSIS
#include "LPC8xx.h"
#endif
#include <cr_section_macros.h>

#include "lpc8xx_clkconfig.h"
#include "lpc8xx_gpio.h"

volatile uint32_t msTicks = 0;
volatile uint32_t power=0;


void SysTick_Handler(void) {
	msTicks++;
}
void systick_delay (uint32_t delayTicks) {
	uint32_t currentTicks = msTicks;
	while ((msTicks - currentTicks) < delayTicks);
}

#define LED_PIN 2

int main(void) {

    // Clock configuration
	SystemCoreClockUpdate();
	SysTick_Config(SystemCoreClock / 1000);

	LPC_SYSCON->SYSAHBCLKCTRL|=(1<<6); // Provide clock to switch matrix
	LPC_SWM->PINENABLE0|=(1<<3); // Enable fixed pin function PIO0_2
	LPC_GPIO_PORT->DIR0 |= (1 << LED_PIN); // Set LED_PIN as output

	while(1) {
		uint32_t current = msTicks;
		LPC_GPIO_PORT->NOT0|= (1 << LED_PIN); // flip LED
		while(msTicks<current+1000){ // wait 1s
			asm volatile ("nop"::);
		}
	}
	return 0; // unreachable
}

#ビルド

上のハンマーのボタンか、Cmd+Bでビルドできる。

#書き込み

書き込みには、USB-シリアル変換回路を使う。
以下のような回路が必要。

私は、LPC810書き込み装置 | 電脳伝説を参考にして、以下のようなボードを組んだ。

実験する分にはブレッドボードに直に組んでしまえばよいと思う。

回路ができたら、書き込みにはlpc21ispを使う。

Windows向けにはFlash Magicなどのより高級なツールもあるらしいが、Macで使えるのはこれが一番安定している感じがする。
先ほどビルドしたプログラムは、プロジェクトディレクトリ下のDebug/blink.binにビルドされているので、これを使って書き込む。
(リリースビルドだとRelease/blink.binになる)

ISPボタン(SW2)を押しながらリセットボタン(SW1)を押すことで書き込みモードに入る。

lpc21isp -bin blink.bin -control /dev/tty.usbserial-0001 115200 12000
  • /dev/tty.usbserial-0001は、自分の環境に合わせて変更すること。
  • 115200はボーレート、12000はマイコン側のクロック周波数。

書き込みが成功すると、自動でリセットされ、LEDが1秒おきに点滅するはず。

#おわりに

LPCOpenを使いたい。
ってかRustで書きたい。


  1. Wayback machine ↩︎

  2. C Projectでもいいと思うけど、C++が使えるならそのほうが嬉しいからね。Rustも使えたりしないかなぁと思うけど、プログラムサイズがどうなるかが課題と思う。 ↩︎


電子部品の「受動部品」と「能動部品」(MECEじゃない)

電子部品を大きく二分するカテゴリとして、「能動部品」と「受動部品」がある。

よく見られる範囲[1] [2] [3]では、以下のようにカテゴリ分けされる。

#能動部品の例

  • トランジスタ(含 FET)
  • ダイオード
  • IC類

#受動部品の例

  • コイル
  • 抵抗器
  • コンデンサ

#定義

上で挙げた参考ページの趣旨をまとめると、能動部品と受動部品は、それぞれ以下のように定義されるようである。

  • 受動部品:外部から供給されたエネルギーを消費・蓄積・放出する部品
  • 能動部品:外部から供給されたエネルギ-を増幅・整流する部品

…… MECEでない!!

おれは、おこっています。

ICもエネルギーは消費するよ!!!

そんなわけで、おれにはこの分類の意味がよくわからないと思った。

単に回路の基本要素であるLCRとそれ以外を分けたいだけのような気もするし、それならLCRと呼べばよい。

確かに回路設計の際に「このICを使って……」から考えはじめることはあっても、「この抵抗を使って……」から考え始めることはまずないだろうから、
その意味で気持ち的な意味はわかるのだけれど、それ以上に意味のある用語とはとても思えず、
この分類がしばしば電子工作の本のはじめに出てくるのも、甚だ無意味でないかと思う。

そう思ったよ、という記事でした。


  1. 新人エンジニアの赤面ブログ 『受動部品・能動部品とは!それぞれの違いについて!』 - 半導体事業 - マクニカ ↩︎

  2. 能動部品と受動部品 - パナソニック ↩︎

  3. 『受動部品』と『能動部品』の違いと一覧! - Electrical Information ↩︎


KiCadのSPICEシミュレーションに入門してみた備忘録

もうKiCadを使ってずいぶん経つのだけれど、実はシミュレータを使ったことがなかった。
わけあって使いたくなったので、入門してみることにした。

最終的には、以下のようななんの変哲もないコレクタ接地回路の過渡応答のシミュレーションができた。

基本的には、KiCad7のSpice機能で回路シミュレーションを行う - おながわの日記 (以下、この記事を 元ネタ と呼びます)に従って、やってみただけ。

#使ったもの

元ネタ ではKiCad7の話をしているが、KiCad8が手元にあるので、それを使った。

元ネタの内容から特に変化はないが、ややUIに差分があったので、適宜補足していく。[1]

  • Macbook Pro 2021 (M1 Pro, 11 Core, 32GB RAM)
  • KiCad8.0.3

#回路図の作成

マジで、やるだけ。

  • 元ネタ と基本的な回路定数は同じ。
  • NPNトランジスタのシンボルはKiCadに同梱のSimulation_SPICEライブラリにあるNPNを使う
  • 左上にある信号源(V1), 電源(V2)は、それぞれ VSIN, VDC である。これも 元ネタ と同じ。

元ネタ では、V1の設定の画面しか拡大されたscreenshotが出ていなくて、V2の設定をはっきりとは書いていないのだけれど、
回路図を見れば9Vであることがわかる。 そのように設定する。 (デフォルトでは1Vなので、波形がクリップする)

#SPICEモデルの追加

NPNトランジスタQ1の特性を設定する。
元ネタ 同様に、RohmのBC847BのSPICEモデルを使う。
直接のリンクは 元ネタ では示されていないのだけれど、BC847B - データシートと製品詳細 | ローム株式会社 - ROHM Semiconductor からモデルはダウンロードできる。

ダウンロードしたら、解凍して、Q1のプロパティ→"Simulation Model…"→ “SPICE model from file (*.lib, *.sub, or *.ibs)” からダウンロードした bc847b.lib を選択する。

#シミュレーションの設定

やるだけ。
元ネタ では「コマンド」を設定せよと書いてあるが、KiCad8では"New Analysis Tab…"という正弦波に+記号が重なったようなボタン(またはショートカットキー ⌘ + N) から設定できる模様。

値を設定したら、“OK” を押して設定完了。
上の再生ボタン的なやつまたはショートカットキー “R” でシミュレーションが実行される。

それから、右側の"Signal" の表から “V(OUTPUT)” と “V(INPUT)” を選択して、プロットさせると、以下のようなグラフが得られる。

シミュレーションはこれで完了。

これでちょっとした回路設計とか、回路の勉強が捗るといい。


  1. ところでKiCad9がこの記事の4日前にリリースされていてこの記事はすでにやや古い。 ↩︎


FPCのブレークアウトボードのカバー

WaveshareのE-Inkディスプレイ で遊んでいて、
しばらくは専用のHATを使っていたのだが、直接触ってみるためにFPCのブレークアウトボードをAmazonで買った。

実験に使っているデスクがスチールデスクで、塗装されているので絶縁されているとは思うのだけれど、
裏面で短絡したりすると怖いので、カバーを作ってみた。

せっかくなのでデータ公開。

組み立てにはM3のビス2本が必要。

ダウンロード(STL)


デザインスケッチの勉強に使った本とか

昨夜、高校時代のチームメイトであるTomixが以下のようなtweetをしているのを見かけました。

本人に聞いたわけではないので、彼のツイートの真意は不明なのです。が、私はこれをみて、私自身がこの夏スケッチの勉強を少ししていたことを思い出しました。

だからといって特別上手くなったわけではないのですが、良い勉強でした。

そういうわけで、彼に頼まれたとかでは全くないのですが、当時利用したいくつかの資料をまとめておくことで先人たちから受けた恩を送ることにします。

なお、本稿では「スケッチ」の語をもっぱら物理的な製品の核心的なアイデアを記録、伝達したり、意匠を検討するためのメディアとして描画されるものの意味で使います。
より広範な絵画のクラスとしてのスケッチにも学ぶべき点は多い[1] が、本稿の主な対象ではないのでご留意を。

#きっかけ

私がスケッチの学習に手をつけようと思ったのは、今年の夏、UC BerkeleyのSummer Sessionに行った ことがきっかけです。

この中で、Prototyping and Fabrication(DESINV22) という授業を受講しました。

授業は、こんな感じ。(1単語分だけ私も出演している。)

授業では、3D プリンタやレーザー加工機などのおなじみのデジタルファブリケーションの技術の基礎から、それを使ったRapid prorotypingに基づくデザインのプロセスを取り扱いました。
その中で、Chris Myers先生(めちゃくちゃ褒め上手。“Good design is less design” と “Iterations!!” が口癖)が、スケッチをして見せてくれたり、スケッチの描き方についてちょっとしたワークショップをしてくれたりしました。

そこで勉強を進めるうちに、「スケッチはおもしろ工作おじを目指す上での基本スキルだろうな」と思ったので、今のうちに身につけておこうと、勉強してみることにしました。

#リソース色々

在米中は主に先生に色々聞いていたのだけれど、帰国後は本を読んでみることが学習法のほとんどの部分を占めました。
先生に聞いた部分はあまり再現性がないので割愛して、読んだ本(+動画)を紹介します。

#『プロダクトデザインのためのスケッチワーク』

Amazon

ケーススタディが充実していたのが良かったです。
遠近法や投資図法などのパースの取り方が主な話題でした。

絵を描くのが好きだけど得意というほどでもない私が、基本的語彙や前提となる知識を整えるのにはちょうど良かったです。
デザインという領域は芸術領域から工学領域にかけて広がる広範な概念ですが、工学畑出身の人間に特にお勧め。

#『プロダクトデザインスケッチ : デザインの発想から表現』

Amazon

こちらは、表紙にあるような色彩に富んだスケッチにまつわる話題が多かった印象です。
陰影の入れ方とかがよく説明されていたので、レンダリングを作る時には参考になるかも。逆に、その場でザクザク描いていくようなスケッチに関する話題は少なかった印象です。

#『スコット・ロバートソンのHOW TO DRAW : オブジェクトに構造を与え、実現可能なモデルとして描く方法』

書誌情報(国立国会図書館には書影がないらしい)
Amazon

これは、かなり汎用的なスケッチの本です。地力がつく感じ。パースの勉強をするには一番役に立った気がしますが、ちゃんと分厚いので、完走はしてません。
中で出てくるエクササイズはかなり有用なのですが、個々のエクササイズが無限に凝れてしまうので、どこで次に進めるかが難しかった印象です。

#『気になるモノを描いて楽しむ 観察スケッチ』

これは、描き方というよりは、スケッチする上でどんな部分に注目するかの点で参考になりました。
絵だけ眺めていても面白いので、パラパラとめくっていけるのも良い。

#『だれでもデザイン』

Amazon

日本のデザインイノベーション界隈では大・著名人であるところの山中先生の本です。
この本はスケッチの勉強をしようとはとは無関係に読んだのですが、スケッチの話が出てきます。

山中先生といえば、今年開催されていた「未来のかけら」展はすばらしかったです。

その中でも、デザインスケッチに関するワークショップをされていたようで[2]ていねいなレポート を書かれている方がいらっしゃいます。

それから、TEDxでの以下の講演も、その場で描いている臨場感が伝わって刺激的で、モチベーションが上がりました。

山中先生のスケッチの話題は、スケッチを単に伝達のためのレンダリングに留めず、描く人本人の思考の場としても捉えている点が一貫していて素敵です。
Berkeleyで学んだときもやはり思考の場としてのスケッチの使い方を学んで感銘を受けたので、どうも私はこのスタイルが好きなようです。

Instagramにもたくさんのスケッチが上がっているので、楽しい。

#気になってるけどまだ読んでない本

#Sketching: Drawing Techniques for Product Designers

Amazon

なんかいい噂をたまに聞きます。(読んでないからそれ以外に言うことながない)
カーリルの情報ではつくば周辺には蔵書がなさそうなので、どこかに行った時に探してみます。

#自動車とプロダクトデザインの基本と応用 : DESIGN & SKETCH : プロダクトデザイナーになるためにスケッチから始める実践的方法 新装版

Amazon

なんかこの記事を書いていて、そういえばちゃんとNDLで検索はしてなかったなと思った[3] ので、検索してみたら出てきました。
なんか良さそうですね。(読んでないからそれ以外に言うことながない)

#まとめ

この手の記事は実は世界初ではなくて、例えばこれとかもそれ系の記事です。
他にもいくつかあるので、興味があれば探してみてください。

他にもいろんな本やWebサイトを見たり読んだりした気がするのですが、今覚えているのはこの程度なので、思い出したら追記します。


  1. 画材や、パースのとり方など ↩︎

  2. 私は米国にいたので参加できず…… ↩︎

  3. 筑波大生なので、普段は筑波大が誇るディスカバリサービスであるところのTulipsをよく使います。 ↩︎


Xを演じている

絶望している。
先日、ある血縁関係にある人間 [1]から「blog見ているよ」と言われた。

正直なところ、本人が「見ている」と主張する私のblogなるものが、本当に正しくここであるかは怪しい [2] ものの、本人が私をインターネットで探しているという事実だけで吐き気がする。

この問題は、俗に「身バレ」と呼ばれるものだと思うのだけれど、私に関して言えば本名でやっている以上身バレなどと烏滸がましいことをいうつもりはない。

しかし、だからこそ、インターネットには入ってきて欲しくなかったのだ。

私は家族の前では ゆうせい を演じているし、インターネット[3] や友人たちの前では yuseiito を演じている。それらは相互に関連しあっているし、多くを共有しているが、しかしそれぞれにそれぞれの優先順位があり、敵がいて、味方がいる。

ここに文章を書いているのは、 yuseiito であって、ゆうせいではないので、それを一方的に接続されると、読んでいる君にも有害な結果にしか繋がらない。

もう本人は気づいているものと期待して、ここに警告する。読むな。これはあなたのための文章ではない。

より理性的に言えば、インターネットは公共空間であるから、読むのは君の自由であるが、それを読んであなたがどのような心境になろうと、私はその説明責任を負わない。これは私の表現の自由の範疇の問題である。

私は〈私〉という〈個人〉として、いま自由に生きている。干渉してくれるな。


  1. 名誉のために言うと、親ではない。 ↩︎

  2. 本人のインターネットぢからを信用していない。 ↩︎

  3. ここまで頻繁にインターネットと書いてから、これは本来Webという語を使うべきだったと反省している。インターネットとWebは区別しような。もう直すのも面倒なのでこのままいく。 ↩︎


人称代名詞としての「人間」

blogを書きたい気分なので、書く。

といっても、米国の紀行録以外に特段書きたいことがなく、かつそれはあまりにも多くの労力が必要なので、
先日人に言われて気づいたことについて書く。

私は、しばしば三人称代名詞として「人間」ないし「ヒト」「ホモサピ」を使う。

例えば、「XXXはYYな人間である」だとか「人間に会いたい」、「XXな人間がいた」「私はfoobarなホモサピです」のように。

もっとも、身体がパソコンでできているような人々の仲間内では、こういった語用は当然のものとして流通しているので、普段意識する機会はない。

しかし、どうやらこれは一般的な語用ではないようで、しばしば違和感を持った人間が驚いたような反応をする。

実のところ、このある種の 逸脱 は、50%無意識で、50%意識的である。
50%の無意識は、世界のあらゆるagentを計算機かそれ以外かで認識していて、その点で計算機以外をホモサピと呼んでいるだけという話で、私にとってホモサピに見えたものがホモサピであるという、 きわめて素直な 語用である。

他方、意識的に、そのように言葉を選んでいる面というのもあって、これが重要である。

「ホモサピ」とか「ヒト」とか「人間」という言い方の代替案を日本語で考えてみる。
すると、実はこれが案外難しく、極めてニュートラルな(すなわち、先輩、後輩、恋人、友人、同僚、家族 etc…のような、「ヒトである」以外の追加の情報を相手に与えない)人称代名詞というものが見当たらないのである。

たとえば、「彼は〜な先輩です」のような言い方では、続柄を示してしまっているし、「〜な男だ」のような言い方では「男である」という余分な属性を提示していて、好まない。

続柄は話題に余分なcontextを加えるし、性別を使った人称代名詞も、本人に尋ねるまで不明確であることはいうまでもない。[1]

唯一使えるとしたら「人」(ひと)なのだけれど、おれは自分も他人もどのくらい「ひと」なのかに自信がない。homo sapiensだけれど、ひとである感覚がないヒトというのは、案外いるものだ。

そんなわけで、ひとまずは種としてのhomo sapiensと、その言い換えをなるべく使おうと思っている。

と言いつつ、なんとなく流れで「人」(ひと)を使うことも多いので、自己矛盾、単なる逆張りでは?と言われると、そうかも?とも思うが、それはそれでいいじゃないか。

言葉遊びは、楽しい。


  1. そして、私はその必要に迫られない限り人に本人の性自認は尋ねない。余分なcontextだから。 ↩︎


【平歯車・板歯車・内歯車】Fusion360でギヤを作る備忘録

Fusin360でいろんな種類のギヤが組み合わさった構造[1]を作ったので、作り方の備忘録。

3Dプリントするにしても、レーザーカットするにしても、Fusionは便利でいい。

筆者は機械工学に関する専門的教育を受けておらず、独学と模索をまとめています。趣味の工作やプロトタイプには十分な内容と考えていますが、プロとしての品質が要求される目的では参考にしないでください。

#平歯車

インボリュート曲線は大変なので、辛いかと思いきや、一番簡単。
標準で含まれているSpurGearアドインを使う。

Utilities > ADD-INS > SampleScripts を実行する。 (PythonのバージョンとC++のバージョンがあるっぽい。どちらも動く)

#板歯車

いわゆるラック. (rack) 歯は台形でよいので、モジュールを決めてしまえばほぼ自動的に決まる。

形状は以下を参考にして、歯を一つ作ったあと、繰り返し配置して好きな長さに伸ばす。

最後にギヤの厚さでExtrudeして終了。

#内歯車

正しい内歯車の作り方 - 歯車のハナシ が参考になる。

前述の方法で平歯車を作ってから、それをPress/Pullで内歯車の歯形になるよう変形して、それを鋳型のように使って補集合をとることで得られる。
変形は、歯元のたけを0.25モジュール小さく(するために円の方を0.25モジュールのばす)するのと、歯先を0.25モジュール伸ばす2つ。


  1. Passive offset adjusting wheel mechanism (Kanako Hodo, Yasuyuki Yamada 2022) にある車輪を作りたかった。 ↩︎


【渡米】UC Berkeley のSummer Sessionsを受講します

今日(2024/06/12)から、8月中旬まで、渡米します。
主な目的は、はカリフォルニア大学バークレー校 (University of California, Berkeley)のSummer Sessionsを受講すること[1]です。

#

アメリカの大学において、 Summer Sessions とは春学期と秋学期の間に行われる夏の短い講座群を指します。
通常の学位取得を目指す目的の学生のほか、 一般にも開放されている ことがあり、私も visiting student として受講します。

したがって特定の専攻が決まっているわけではなく、散発的に関心のある講座を履修登録しています。[2]

#経緯

そもそも、高校の頃から米国の大学には関心があり、直接海外進学を悩んだこともありました。
しかし、COVID-19もあり、また自分の決心もうまくついていない状態だったので、日本の大学 [3] に進学しました。

しかし、大学生活のどこかで一度、海外での大学生活を経験してみたいという思いが残っており、休学して 時間ができた今しかないと考え、この夏に渡米することにしました。

正直、 円が弱すぎてかなり迷った のですが、 時間は不可逆なので、今のタイミングを生かす べく思い切りました。

ベイエリアの家賃の高騰も重なり、正直通帳はみたくない心境ですが、今後の人生において、それに見合うだけの影響を受けることができると信じています。 [4]

#Why UC Berkeley?

最も原始的な理由は、強烈な憧れです。 BSDのBはBerkeleyのB
やはりコンピュータ屋さんとしてBerkeleyには、強い憧れがあります。

しかし、「今、いく先」としての決め手となったのは、CSよりもむしろその外側の分野が強いことです。

CSの研究が盛んなのはもちろんですが、(Computer以外の)EngineeringやArtなどの分野も、興味を惹くプログラムや研究が多く見つかりました。このような、バランスのよいトップレベルの環境に短期間にしろ身を置くことには、 おもしろ工作おじさんになるための何かが得られそうだという直感的期待 があります。

また、同校には RCJ で知り合った米国人の友人が進学しており、かねがね現地の様子について聞いており、影響を受けました。

さらに、それらに加わる小さな(しかし重要な)理由として、夏の間だけ留学生にもForm I-20を発行しており、学生ビザ(F-1)が取りやすいという都合もあります。[5]

それ以外にも理由があるといえばあるのですが、あまり勉強の中身に関連したことを言ってしまうとまた行動が割れるので、ここまでにしておき、また終了後に述べようと思います。

#今後の予定

6月12日に出発し、8月20日ごろに帰国予定です。
その間、考えたことや現地での(束の間の)生活については、このblogで報告できればと思います。

記事が出なかったら、余裕がないか、めちゃめちゃ楽しんでいるかのどちらかです。

渡航期間中、皆様にはご心配をおかけすることも多くなるかと思いますが、どうかご容赦ください。

高々2ヶ月強 の留学[6] ですから、どうぞご心配なさらず。みなさんから見れば、おれが実家(あるいは、地元の人々にとっては、つくば)に行っている期間と同じようなものです。

いつもこのような無謀を応援してくれる友人や家族に、本当に感謝しています。
渡航の計画を明かした途端、周囲の人間が「見送りに行こうか」とか「体に気をつけてね」とか「寂しい」とか言ってくれて、本当に幸せです。

それから、このような機会をもてたこと自体にも、心からの感謝を。


  1. 受講は手段であり、目的ではないので、本当は「目的」というのは適切な表現ではないが、「渡航」という手段をとる目的は受講である。 ↩︎

  2. ゆえに、勉強する内容を晒す=参加する授業を晒す ということになり、この先2ヶ月強に渡っての行動パターンが割れてしまうので、ここでは伏せます。 ↩︎

  3. みんなだいすき(?)筑波大学 ↩︎

  4. 脳の塑性の変化 もあるので、なるべく早い方が良い。 ↩︎

  5. 普通に進学する学生にはI-20が出るが、Visiting Studentに出してくれるところは多いとはいえない ↩︎

  6. この短期間なので、私自身はマジで1日たりともムダにしねーぞという気合いです。 ↩︎


筑波大学を休学します:2024年の過ごし方について

あけましておめでとうございます。[1]
昨年末は例年出していた年次の振り返りも書かなかったので、従前ここに書いていた自分の人生の方向性に関するような話はかなり久々になる。

タイトルでもう盛大にネタバレしているが、2024年度の 1年間、筑波大学情報科学類を休学する ことにした。

今は3年生で、今のところ進級はできる見込みなので、「4年生になった途端に休学」という形になる。

ここでは、その理由と、私の昨今の関心などについて述べようと思う。

先に述べておくが、この記事は 長いうえに、まとまりがない


休学を考え始めたのは2023年の11月末で、それから何人かの信頼している仲間に客観的なアドバイスを求め、12月には決定した。

その後担任や配属先研究室の教員、所属学類の長との面談を経て、2月14日、休学届を提出した。

考えはじめたきっかけは、「もう4年生になるのか」とふと感じたことである。
4年生 ーー学士課程の最後の年ということになるが、どうも自分が当初期待していたB3の成熟度には自分は達していないように思えた。
そう思ったことから、卒研着手前にもう少し時間をかけるべきではないかと考えるに至った。

ちょっとわかるツイート

動機

#まともに生きてきすぎた

もちろん、 多くの人に色々なご迷惑をかけ散らかしながら生きてきた 自覚はある。とはいえ、小中高と皆勤で通学し、ヘンな入試ながらも比較的名の知れた国立大学に入り、というのは、どう考えても「まとも」な経路である。

こういうわけで、今の経路は「まとも」だとして、一方「わたし」自身はどうかといえば、 到底まともではない 。ものづくりが(時折健康を害する程度に)好きすぎる[2]。一方で、ソーシャルスキルの成熟は、大体周囲から3年くらい遅れているなと感じ続けてきた。

まったり成長していること自体は、良くも悪くもないと思うが、自分の成長にライフステージが見合っていないのはあまり自分にとっていい話とは言えなそうである。人生を通してみれば、もっとゆっくり生きる方が自分には合っているように思えた。

そもそも、「まとも」な生き方は、どこか受動的であって、自分の意思決定よりも社会のペースに合わせている面が強い。

「まとも」を脱し、能動的に人生を構成する すべを身につけねばなるまい。

そもそも、自分の信じるものが見えた時、ダラダラと批評だけを続けるよりも、信じるものに全てをかけているやつの方が人としてattractiveと思う。

私はそうありたい。

↓休学など全く考えていなかった少し前の自分も似たようなことを言っていた


#「勉強したいので休学します」

もう一つの休学を決めた理由は、「勉強したいから」である。
大学に勉強しに行ったはずが、あべこべな話 ではある。
しかし、どうやら私には学部のような入力に偏った学び方は消化不良を起こすようである。

形式言語の勉強をすれば正規表現エンジンが作りたくなるし、DBの勉強をすればDBMSが作りたくなるのが私だ。

しかし、大学での勉強の多くは実際にはただレポートを書くことに終始する。これは、一週間ごとに課題を出すという授業のサイクルから考えると現実的なラインではあるのだが、やはり私は手を動かして学ぶタイプだ。

これまでの技術遍歴からしても、大学で先生に 「教わる」スタイルになったのはつい最近の話 で、小学校から高校までの間、自分の先生は図書館でありウェブサイトであってきた。

これは、どう考えても「知の高速道路」とはいえないが、私は つくばから栗東に18切符で帰るような鈍行派 。その道ごとの経路を楽しみたいという想いが強い。このおかげで、ある目的の技術だけでなく、周辺の技術も含めて 自分のモノにできてきた。

回路基板からWebまで、 レイヤを問わず ものづくりができるようになれたのは、私が思うに鈍行のおかげだ。

鈍行だと途中でおいしい蕎麦屋を見つけることもある

とはいえ、取り組むことの高度化に伴って、鈍行では放課後の時間に収まらなくなってきた。
鈍行でのびのび好きにものづくりするには、大学生は忙しすぎる。

そこで、じっくり時間をとってものづくりを楽しむ時間を取りたいと考えたのだ。


「勉強したいから」には、「じっくりものづくりを楽しみたいから」以外にもうひとつ意味がある。

それが、「図書館の勉強をしたい」ということである。

情報科学を専攻している身でこれを言うのもどうかと思うが、情報科学が情報科学[3]だけで辿り着ける世界はあまりに狭い。むしろ、 情報のエンジニアには、情報をあまねく統べる視点 が求められているように感じる。
電子計算機以前に情報学( informatics )の代表選手だったのは図書館だ。

情報学徒を名乗るなら粘土板からNVRAMまで全部やれよ 」と、自分に対して強く感じた。[4]

そこで、司書資格の科目を受講するようになったのは、昨年のことである。

ここまで1年間図書館について勉強を進める中で、情報学と図書館について、色々なことが見えてきた。
そもそも自分にとってとても大切な居場所であり続けている図書館に恩返しもしたい。
そんなことを考えているうちに、図書館の勉強をするための時間もほしくなってきた。

そんなわけで、やはり「 勉強をするために休学を 」と思うわけだ。

#コンクール病と、ものづくりに関する危機感

休学を決めた最後の決定的な理由は、 ものづくりとの向き合い方を改めて考えねばならない フェーズにきたことにある。
高校までは「エンジンに突き動かされるように」ものづくりができていたが、大学に入って以来、しばらく陰鬱な時期があったこともあって、最近はかなり健康的に生活している。それ自体はいいことだけれど、あまり深く打ち込んでいる感じがなく、面白くなく思ってきた。

この点、自分の主観では、私の人生ではじめてのプログラミング的な意味での「実績」である2017年のU-22プログラミング・コンテスト 受賞以前が最も自分に成長圧があった と思っている。

ところがコンテスト以後、 受賞に味をしめ、承認欲求に溺れた ことにより、変な癖がついた。

その結果、RCJ未踏ジュニアなど、名前のついた「実績」らしきものは、(特に高校時代)たくさん生んできた。
それはそれで、自分が機会を掴み取るには 便利 なのだけれど、結局のところ「答え」が見えていたところでラベルを獲得していただけに思える。

承認欲求を、「答え」を出すことでインスタントに満たそうとする「コンクール病」である。[5]

そもそも、これらの「実績」の多くは、一義的には実績ですらない。

この「コンクール病」の傾向は、 自分の価値を権威に委ね、自分の信じる善さや美しさを表現することから逃げ続けている [6]ということであって、 控えめに言ってセンスがない[7]

むしろ 一人で好き勝手に勉強していた時代[8]の技術への姿勢の方が遥かに尊い [9]ものであり、私は再びその感覚を取り戻すことを願ってやまない。


もうひとつの危機感は、大学に入ってから、学友から技術の相談を受ける時に「これ最後にやったのk年前なんだよね〜」とよく言っていると気づいたことに端を発する。こんな発言が出るのは、学友たちよりも技術を長くやっているから、とも言えるが、 実は自分が勉強できていない のではないか。

だとすれば、これは 技術の切り売り とでもいうべきもので、到底持続するものではない。
何より、勉強できていないまま技術のことを語るのは、 明らかにクソ格好悪い

これは私が嫌った「『基礎は変わらないから』と言いながら新しい技術を勉強しないおじさんエンジニア」に近づきかねない 危険信号 である。[10]

新しい技術を追っている者が「 やってみたけど 変わっていなかったよ」というならいいが、知らずに「本質は変わらないから」なんて、 比較ができない以上原理的に言えるはずがない。従ってこういったおじさんたちの言明は 「知ったか」にすぎず、非難すべきもの [11]である。

このままコンクール病を続ければ、この種のおじさんへまっしぐらだろう。
しかし私は、自分の興味に向き合い、勉強する道を選びたい。
これが、休学を決めた決定的な理由となった。

周囲の反応

休学します、といった後の各位の反応が、本当に好意に満ちていて、
こんな素敵な人たちと仲良くなれていることが誇りに思えたので、ここで一部を紹介する。
私も身近な人が自分の道を行くことを決めたらこんなふうに素敵に応援できる人でありたいものである。

各位には心から御礼申し上げる。

やっと言い出したか、と思ったぞ。

幼馴染

担任

伊藤くんらしいなぁ

後輩

友人

これからすること

「勉強したい」とは書いたが、具体的には次のようなことをするつもりである。

#無限ものづくり

前述の通り、手を思ったほど動かせていないことに課題意識を持っているので、第一に たくさんのものづくりをしようと思う[12]

これまで、学部生として勉強する中で時間がとれず向き合えなかった色々な技術を、実際に実装してみる経験を多くしたいと思っている。また、これまでちゃんと勉強したことがないテーマを学ぶことにも期待がある。[13]


他にも、型システムやAFLIE、ハイパーバイザといったように、 深掘りしたい技術山積みになった技術書 があるので、それらに集中的に挑もうと思う。

また、これまでに取り組んだことのないものづくりの形態への挑戦にも関心がある。映像や音楽といった今はあまり得意でない表現手段を自分のものとしたり、薄い本を書いたりできるといいかもしれない。[14]

その中では、時間を生かして丁寧にしつつも、作る時には雑に作ることを心がけたい。色々な未完成のプロジェクトを山積させるのではなく、レベルが低くとも完結させることが大切である[15]

#図書館についての勉強

図書館については、いくつかの点で関心を持っている。

#メイカースペースとして

まず自分にとって図書館は 常に変わらずそこにあったもの であり、人生のどのフェーズでも重要な意思決定を支えてくれた存在である。特に、技術については おりがみの本からタミヤモータの工作の本、そして情報理論の本と、たいへん助けられてきた

このように、図書館のものづくり関連の本で技術に入門した身として、 図書館にメイカースペースを作る事例[16]に関心をもっている
いくら公共図書館がすべての市民に開かれて[17]おり、そしてそこに巨人たちの叡智が積み上げられているとしても、それを実践する機会に恵まれないと利用者個人の人生には十分に効果を発揮できない。

私は知識を図書館から学んだが、同時に偶然にも PicKitをくれるサンタさん のいる家に生まれた点で ずば抜けて恵まれていた[18] からこそ、今、技術でそれなりのお仕事や活動ができている。
しかし、ものづくりに目醒めるかどうかが、この 「偶然の恵まれ」に依存する現状は明らかに不公平 である。したがって、ものづくりの民主化を推し進める上で、オープンなものづくり環境の整備を抜きに語ることはできない。

そこで、すでに十分な知識資源と人間の往来をもつ図書館に目が向く。 図書館には、その「オープンなものづくり環境」たるべき素質がある と考えている。

とはいえ、実際のところ、メイカースペースの運用は一筋縄には行かないことも、いちメイカーとして十分承知している。特に、初心者の入りやすさを高めたり、スペース内での交流をうまく促したりすることについては、各地のFabLab等の苦悩を頻繁に聞くところである。[19]
だからこそ、これまでの図書館における事例はどのようにその点を乗り越えてきたのか(あるいは課題となっているのか)について考えたい。

#RoboticsやComputer Scienceのフロンティアとして

今、司書科目を受講し、図書館について勉強しているわけだが、かつてにも増して「 司書、すごすぎでしょ 」という気持ちが高まっている。情報資源を取り扱うprofessionalとしての司書の技術体系は、そもそもその体系そのものがよくできているうえに、それを実際の利用者サービスとして成立させるには個々人の十分な鍛錬を必要とする[20]

しかし、地元の公共図書館を見てみるとどうだろうか。 目に見える司書の仕事は多くが排架業務か貸し出し・返却の受付であり、 「誰でもできる」ように思われている節があるように思える
これは、あまりにももったいないことである。

プロにはプロの仕事をさせるべきである。 「プロの仕事」とは、利用者に寄り添ったレファレンスやコレクション構成、企画展開のことでもあるし、あるいはそれ以外の まだ見ぬ新たな図書館の姿を実現させること かもしれない。

ーーそれでは、今行われているような「誰でもできる」ように見える[21]が重要な仕事は、誰がやるのか。

もうお分かりであろう。 退屈なことは何にやらせるのか 、この記事の読者ならすぐにピンと来るはずである。[22]

図書館に理解があってコンピュータやロボットの知見がある人間が必要だ。ーーここにいるぞ。

#海外に行こう

実は 最後にこの国を出てからもう4年経つ 。海外は好きだし、色々なきっかけで世界各地に友人がいるにもかかわらず、このような状況下にあるのは憂慮すべきことである。当然、 COVID-19という存在は大きいが、今やそれも社会的には過去のものとなっている[23]

というわけなので、積極的に海外渡航をしたいと思っている。特に、英国にはもう一度行きたいと思っているのと、エストニア, 台湾, 中国(というか深圳), ルワンダおよび東南アジア諸国に関心がある。もちろんシリコンバレーにも。 [24]

それから、 スペイン語の勉強をしはじめてもう4年経つ ので、スペイン語圏のどこかにも行ってみたい。南米もよいし、スペインもよいと思う。[25]

これらの取り組みのために、目下計画と調査を進めているので、いずれ決まったら続報を書く。[26]

未来へ

休学という、ある意味では大きい(?)意思決定をしたわけだが、私は将来どこに行くのだろうか。

わからないというのが正直なところではある。しかし、 将来について何も考えずに意思決定したわけでもない

今の所の人生の大目標は おもしろ工作おじさんになることである。
このコンセプトは私が作ったもので、「ある種のユーモアや人間性の深さに裏打ちされたテーマのものづくりを楽しみ、それによってものづくりを楽しむ人を増やす人」的なものとして考えている。[27]

そして、その人生の目標を達成するための、キャリア上の現時点での目標地点は、レイヤ問わずテクノロジを駆使して現実の課題を解決することにある。

現実の課題 とは、例えば「司書がプロとしての仕事をできる時間が限られている」といったようなことであり、 レイヤ問わず とは、その問題を解決するためにはWebアプリであろうがロボットであろうが選択肢になりうるということである。

#現実の課題

私のここ最近の強い意識として、「エンジニアども、もっと 現実の課題を観察せよ 」というのがある。
エンジニアたちは手が動くので、ものを作るのは容易い。それは私も半人前ながら技術者として、よくわかる。しかし、それらの多くは現実の課題の観察が足りないと思う。もっと現実の困り事や利用の姿をよくみる必要がある。[28]

このことは、私がシビックテックや未踏ジュニアの取り組みで学んだことでもあるし、大学に入ってから学園祭実行委員会等で痛感したことでもある。[29] 現実の課題をみるということは、現実の課題に介在する人とコミュニケーションすることでもあるし、ドメイン知識を学習することでもある。
これを怠って現実の課題を解決できると思うのは、驕りである。

だからこそ、私は図書館の課題に向き合うために司書資格を取ろうとしているのだ。[30]

手法のprofessionは、テクノロジで代替されうるが、目的のprofessionはそうは行かない だろう」というのが私の考えだ。

私がこのように考える一方で、世間では「DX」「エーアイ」「クラウド化」といったバズワード祭りであり、めまいがする。

あたりまえの話であるが、 生半可な技術の理解で適切な技術を導入できるわけがないし、ドメイン知識なくして現実の課題が解決できるわけがない

しかし、現実にそれを勧めている方は、それらのコンセプトがなんであるか、実際にはまるでわかっていないことも多い。技術を社会に実装する立場にありながら、技術を不勉強なのは不誠実な態度であり、情報技術業界全体の信頼を損ねる行為であって、詐欺である。短く言えば、カスだ。

幸い、私はパソコン愛好家であって、かつ現実の課題を観察することの重要さに気づけた立場である。
カスのDXを一掃したい。

#レイヤを問わず

特に大学に入ってから、色々な会社の話やエンジニアとのキャリア談義が多くなってきて気づいたこととして、「基板のアートワークも描くし、アセンブリも書くし、普通のアプリケーションも書くし、なんならWebもやる」みたいなエンジニアはそんなに多くないことがわかってきた。[31]

しかし、この技術をレイヤ問わず「縦に」みるスキルは、適切なレイヤでの課題解決につながる可能性が高い、有用なものであると感じているので、これは積極的に活かしたいと思っている。

#あれ、なんだかこれ聞いたことあるな

ここまで、ダラダラと「 現実の課題 に注目すること」そして「 レイヤ問わず 選択肢とすること」について述べたが、
これらをそれぞれ「社会への関心・知見」と「技術力」に言い換えて、「社会への関心と技術力の両輪で生きる」というとどうだろう。

AC入試の自己推薦に書いたところに帰着してしまった[32]。人は変わらないようである。

↓高3のころに書いた自己推薦書(恥ずかしいけど人生の記録として貼っておいてみる)

3年経って同じところに戻ってきた。やはり私の進む道はここらしい。

エピローグ

というわけで、筑波大学を休学し、 本気のお勉強タイム に入る。

物事の優先順位として、「より面白いことを勉強するので」という理由でお断りすることはあるかもしれないが、基本的には無限フッ軽人間になるはずなので、ぜひ面白い機会にはお招きいただきたい。
私も、何か勉強した面白いことがあればぜひお話しする。

それから、このような自由な生き方を許してくれ、応援してくれる周囲の人間に、普段にも増して感謝している。
何度も書いているが、私は本当に人間に恵まれていて、周りにはいい奴しかいない。

では、このあたりで。

なんかバカ真面目に書いちゃった。たかが休学でイキり散らかしてる奴みたいでやだな。


  1. と、いうにはもう遅いですね…… ↩︎

  2. 技術に嫌われても私は技術を嫌いになれず、そして精神を害するだろうという意味で、しばしば 技術メンヘラ 」を自称 している ↩︎

  3. というより計算機科学か ↩︎

  4. 電子計算機に特化した他人を情報のエンジニアではないと非難したいわけではない。 ↩︎

  5. 「コンクールは自信がない人がやるもの」「本当に自信がある人は、コンクールになど出ない」そう述べたのは、ピカソとも親交のあった芸術家、松井守男である。《『夕日が青く見えた日』 松井守男 (2021) p.107)》 ↩︎

  6. なぜなら、好きなことをずっとやり続けるのは実際には辛いからである。 ↩︎

  7. 「センスがない」のは、RCJや未踏ジュニアに参加すること自体ではない。 それを無意識下で自分の人生の道具ではなく目的に位置付けてしまった点が である。他のロボカッパーやクリエータを非難する意図は当然ながら毛頭ない。できることから挑戦するのは、それがなんであれ一旦は賞賛されるべきことである。 ↩︎

  8. 中3とか ↩︎

  9. 成長にはどうも孤独が必要であるようだ。 ↩︎

  10. Web上でも稀に述べているが、私には個人的に管理している「 こういう人にはなりたくないなリスト 」がある。無論、このような「基本は変わらないおじさん」も、回避行動の対象である。 ↩︎

  11. 「アホはいいけど、ウソはだめ」 だから ↩︎

  12. 実はアイデア帳にだけは色々溜まっている。 ↩︎

  13. 例えば、電子回路の勉強は「電子工作」の域で覚えたものが多いので、ちゃんと勉強しなおしたいところである。 ↩︎

  14. 技術書典や としょけっと 、MakerFaireなどに出ていけると最高である。 ↩︎

  15. これまでの経験的に、「まだ見せられる状態ではありません」は禁句である。それを言うと期待値が上がるし、一生見せられる状態など来ない。 ↩︎

  16. 国内では県立長野図書館「信州・学び創造ラボ」や石川県立図書館「モノづくり体験スペース」などの例がある。 ↩︎

  17. 実際にはアクセスには未だ課題があるが、少なくとも「公立図書館は、入館料その他図書館資料の利用に対するいかなる対価をも徴収してはならない。」(図書館法↩︎

  18. この意味では、親ガチャは「親の機械提供能力と子の関心との整合性」という面に限っていえば確実に存在する。 ↩︎

  19. 身近なところでは、OpenEsys創房などに関して運営に腐心する仲間たちがいる。 ↩︎

  20. 例えばレファレンスの練習などもやるが、正直私の現状の能力はおよそ一般のサービスに供することができるレベルではない ↩︎

  21. 見えるだけで実際には色々なことを気にしている、ということも多い点には注意を要する。 ↩︎

  22. ISBN: 978-4873117782 ↩︎

  23. とはいえ、「終結」したわけでは全くないし、現在も努力を継続していただいている医療・保健関係者には感謝するばかりである。 ↩︎

  24. 読者の中で、これらの地域にお知り合いのある方がいらしたらぜひご紹介いただきたい。いろんな人と話したい。 ↩︎

  25. 治安が良くて、ちょうどいい感じにスペイン語の勉強になるおすすめの国や街を募集している。 ↩︎

  26. 最近はこのために各分野の本を片っ端から図書館で集めてきては貪るように読んでおり、大変楽しい。 ↩︎

  27. 無理に説明を試みたものの、これは正確な言語化ではないし、正確な言語化は未だ自分でもできていない。しかし、 昔から「おもしろさ」には強いこだわりを持っている 。余談であるが、私が第90回滋賀大学データサイエンスセミナーで講演した際のタイトルは「おもしろくしよう おもしろがろう」である。 ↩︎

  28. 月に数件、「起業家」(笑)たちから「CTOになりませんか」的な話が飛んでくるのだが、この理由で全蹴りしている。そもそもビジネスとして成り立ちようがないことが一介のエンジニアに指摘できるようなものではダメだと思うし、さらにまだプロダクトもないんですということであればなおさらである。絵でもいいからまずは自分でめちゃめちゃ勉強して自分で作れ。その程度のことをやらないやつに人生を預けるとか無理です。 ↩︎

  29. だからと言って、今自分が100%できているかと言えば、そんなこともない。技術的なおもしろさに走りたくなる時もある。それでも、どうにか自分に「現実の課題を直視せよ」と言い聞かせて、今日も生きている。 ↩︎

  30. という説明をすると長いので、普段は 「司書にナメられずに図書館にテクノロジを実装するためです」 と説明している。 ↩︎

  31. 身の回りがそんな奴らばかりなので錯覚していた。 君たちヘンだよ。 ↩︎

  32. この「両輪」の関係の整理は、未踏ジュニアの担当メンターだった関さんの助け無しには成し得なかったので大変感謝している。 ↩︎