**カードプチュア uLisp マシン(2024)**

2026/01/15 21:01

**カードプチュア uLisp マシン(2024)**

RSS: https://news.ycombinator.com/rss

要約

日本語訳:

以下のテキストを日本語に翻訳しました。文脈や技術用語はできるだけ原文と同じ意味・表記で保持しています。


(主要ポイントを網羅)

記事では、M5Stack Cardputer Kit を使用して安価な携帯型 Common‑Lisp コンピュータを構築する方法について説明しています。
ハードウェア: Cardputer は ESP32‑S3 を中心に設計されており、240 × 135 のカラー TFT ディスプレイ(最大 16 行 × 40 文字、または大きめフォントで 9 行 × 30 文字表示可能)、56 キーの統合キーボード、SD‑カードソケット、120 mAh のメインバッテリー、およびオプションの 1400 mAh Li‑Po バックパックを備えています。価格は約 £30($30)です。
ファームウェアのインストール: Arduino IDE に M5Stack コア URL を追加し、

M5Cardputer
ライブラリ(v1.0.3)をインストールした後、GitHub から uLisp ファームウェア (
https://github.com/technoblogy/ulisp-cardputer
) をダウンロードしてアップロードします。一般的な問題として、ESP32‑S3 が数行程度のプログラムで停止するケースがあり、対処法は G0 キーを押し続けてリセットし、アップロード後に G0/Rst を放すことです。
uLisp の機能: ファームウェアは Common Lisp のサブセット(約 200 関数)を実装しており、list、symbol、integer(-32768 〜 +32767)、32‑bit float、string、stream、array などの型があります。GC は mark‑and‑sweep を採用し、約 1 ms の時間で処理されます。キーボード編集ツールにはバッファ移動、括弧一致確認、タブベースのオートコンプリート(キーワードを循環)、Aa↩ で最後の行をコピー、および Esc または G0 で実行中プログラムを中断する機能があります。
音声: デバイスは内蔵スピーカーを使って音符を再生できます。サンプルコードでは
note
delay
を用いて C スケールを演奏します。
ファイル I/O: SD‑カード機能により
(directory)
でファイル一覧を表示し、
(save-image)
でワークスペースを永続化できます。また、
#define sdcardsupport
を無効化するオプションもあります。
グラフィックスとターミナル: 拡張機能によりピクセル描画、図形描画、フルスクリーングラフィックスが可能です。ターミナルコード 14/15 は表示出力をミュートまたは再開します。Cardputer 固有のコマンドとして
get-key
read-pixel
、SD にスクリーンショットを保存する
save-bmp
があります。
アップデート: リリース 4.7c でピクセル読み取りと画面キャプチャ(
save-bmp
)が追加され、リリース 4.7d ではオートコンプリート、Shift‑↩ で最後の行をコピーする機能、およびその他小さな修正が導入されました。
記事の目的は、ホビイスト・教育者・開発者が携帯型デバイス上でグラフィックス、音声、ファイル I/O を備えた Lisp アプリケーションを作成できるようにし、組み込み Lisp 学習と迅速なプロトタイピングを促進することです。

本文

2024年11月16日

この記事では、M5Stack Cardputer Kit を使って携帯型 Lisp コンピュータを構築する方法をご紹介します。


概要

Cardputer uLisp Machine は

  • キーボードとディスプレイを内蔵したポータブルな Lisp コンピュータです。
  • M5Stack Cardputer はカードサイズで ESP32‑S3 ベース、価格は約 30 £ / 30 $ です。
  • 240×135 のカラー TFT スクリーン(最大 16 行 × 40 列)と 56 キーのキーボード、SD カードスロットを備えています。
  • M5Stack または UK の The Pi‑Hut から直接購入可能です。

制限事項

ESP32‑S3 の内蔵 USB サポートは、Mac の Serial Monitor 経由で数行以上のプログラムをアップロードするとハングすることがあります。(「Problem uploading」を参照)


イントロダクション

  • プロセッサ:ESP32‑S3 デュアルコア LX7、2.4 GHz Wi‑Fi、Bluetooth 5 (LE)、8 MB フラッシュ。
  • ディスプレイ:1.14″ ST7789V2 SPI IPS LCD、240×135 解像度、Arduino GFX ライブラリでソフトウェアスクロール。
  • キーボード:56 キー、フル ASCII セット(小さいキーは小指で入力)。
  • 電源:ボード上の 120 mAh リチウム充電池 + バックパック内の 1400 mAh LiPo。USB 経由で両方を充電。

注意:StampS3 モジュールは Cardputer のディスプレイに不可欠ですので、取り外さないでください。


ファクトリーファームウェア

Cardputer はいくつかのビルトインアプリケーションとともに出荷されます。uLisp をインストールするとそれらは削除されますが、必要なら M5Cardputer UserDemo GitHub リポジトリ (

M5Cardputer-UserDemo
) から再インストールできます。


Cardputer uLisp ファームウェアのインストール

  1. M5Stack コアをインストール

    • Arduino IDE の PreferencesAdditional Boards Manager URLs
      https://static-cdn.m5stack.com/resource/arduino/package_m5stack_index.json
      を追加。
    • M5Stack core (v2.1.2) をインストール。
    • M5Cardputer ライブラリ (v1.0.3) もインストール。
  2. ボードを設定

    • Board メニューから M5Stack ArduinoM5Cardputer を選択。
    • 設定項目:
      • USB CDC On Boot:
        Enabled
      • Flash Size:
        8MB (64 Mb)
      • Partition Scheme:
        8MB with spiffs (3MB APP/1.5MB SPIFFS)
  3. uLisp をインストール

アップロード後、ディスプレイに uLisp のプロンプトが表示されます。Arduino IDE の Serial Monitor からもプログラム入力が可能です。


アップロード時の問題

以下のエラーが出た場合:

A fatal error occurred: Failed to connect to ESP32-S3: No serial data received.

次の手順を実行してください。

  1. G0(背面パネル)を押したまま Rst を押して放し、再び G0 を離すとブートローダーに入ります。
  2. Tools → Port でポートを選択。
  3. 再度 uLisp をアップロード。
  4. アップロード完了後、Rst を押して放し、再びポートを選択。

これで uLisp のプロンプトまたは Serial Monitor 出力が確認できるはずです。


大きめフォント

9 行 × 30 列の大きいフォントを使いたい場合は、uLisp をアップロードする前に

#define largerfont
のコメントアウトを外してください。


Cardputer uLisp Machine – スペック

項目詳細
サイズ84 × 54 × 19.7 mm (2.7″ × 3.9″)
重量93 g
ディスプレイ40 × 16 文字(大きいフォント時は 30 × 9)
キーボード統合型 56 キー
メモリ23,750 の Lisp オブジェクト
ワークスペース用フラッシュSD カード未使用時は 1.5 MB を予約
プロセッサESP32‑S3、240 MHz

言語

  • uLisp:Common Lisp のサブセット(約200関数)。
  • リスト、シンボル、整数、浮動小数点数、文字、文字列、ストリーム、配列をサポート。
  • 整数範囲は –32768 から 32767。16進 (
    #x2A
    )、8進 (
    #o52
    )、2進 (
    #b101010
    ) を扱える。
  • 関数と変数のための単一名前空間。
  • マークアンドスイープガベージコレクタ(約1 ms)。

uLisp の使い方

プログラム入力

  1. キーボードでコマンドを入力し Enter を押す。
  2. キーボードバッファは画面全体分保持でき、Backspace で編集可能。
  3. 括弧の対応が緑色でハイライトされる。

特殊キー

キー機能
Aa (Shift)大文字/青いシンボル入力
Esc (`fn‑``) / G0実行中のプログラムを中止
Tabビルトインキーワードの補完。複数一致時はサイクル
Aa + Enter前回の行を再表示して編集

Serial Monitor

USB で接続し、Arduino IDE の Serial Monitor を使用してプログラムを入力/編集できます。


機能一覧

音声

(defun scale ()
  (mapc (lambda (n) (note 0 n 4) (delay 500))
        '(0 2 4 5 7 9 11 12))
  (note))

write-byte 7
でビープ音が鳴ります。

SD カード

  • ファイル一覧:
    (directory)
    ("T1.bmp" "A1" … )
    .
  • SD カードを使わない場合は
    #define sdcardsupport
    をコメントアウト。ワークスペースはフラッシュに
    (save-image)
    で保存。

グラフィックス

(defun damped ()
  (cls)
  (dotimes (x 240)
    (let ((y (round (+ 80 (/ (* 40 (sin (/ x 3.1416))) (exp (/ x 36)))))))
      (draw-pixel x y 2016)))
  (loop))

テキスト出力を

(write-byte 14)
で停止し、
(write-byte 15)
で再開。

Cardputer 拡張機能

  • get-key
    : キー入力待ち。文字を返す。
  • read-pixel x y
    : (x,y) の 5‑6‑5 色値を返す。
  • save-bmp filename
    : 現在の画面を SD に BMP 形式で保存。

リソース


更新履歴

日付内容
2025年4月25日ピクセル読み取りと画面画像保存機能を追加 (Release 4.7c)。
2025年4月28日オートコンプリート機能追加 (Release 4.7d); 「最後の行コピー」を Shift‑Enter に変更(Tab はオートコンプリートへ)。

謝辞

本ファームウェアは @hasn0life が最初に Cardputer への uLisp 移植を行い、オートコンプリート機能を追加した成果物をベースにしています。

同じ日のほかのニュース

一覧に戻る →

2026/01/19 2:40

ガウス・スプラッティング ― A$AP ロッキー「ヘリコプター」ミュージックビデオ

## Japanese Translation: ## Summary: A$AP Rocky の新しい「Helicopter」ビデオは、ライブアクション撮影におけるブレークスルーを示しています。動的ガウシアン・スプラッティング(dynamic Gaussian splatting)という手法により、カメラ映像が即座にレンダリング可能な体積データへ変換されます。56 台の RGB‑D カメラからなる大規模アレイを使用してチームは 10 TB 超の原始映像と約 30 分間の事前レンダリング済みスプラッティングコンテンツを生成しました。Houdini(シーケンス作業)、OctaneRender(ライティング調整)、Blender(レイアウト・プロキシキャッシュ)を組み合わせることで、セット上で数秒以内にショットのプレビューが可能となり、重いポストプロダクション作業に入る前に迅速なクリエイティブ判断を行うことができました。 これは A$AP Rocky の 2023 年に「Shittin’ Me」で実施した NeRF ベースの放射場(radiance fields)実験を踏襲しています。現在のワークフローは、各テイク後すぐにライブ空間フィードバックとメッシュプレビューを提供することで、動的ガウシアン・スプラッティングの最も高度な実世界利用例の一つです。この手法は、体積キャプチャがリアルなモーションを保持しながら、監督に広範なポストプロダクションの柔軟性を提供できることを示しています。 広く採用されれば、この技術はミュージックビデオ、映画、広告などを変革し、セット上のリソース削減、ワークフロー高速化、アーティストやスタジオにとっての創造的可能性拡大につながるでしょう。

2026/01/19 3:01

Flux 2 Klein 純粋 C 推論

## Japanese Translation: ドキュメントは、テキストから画像および画像から画像へのタスクの両方をサポートする純粋なC実装であるFLUX.2‑klein‑4B画像生成モデルについて説明しています。外部依存関係はC標準ライブラリのみで、HuggingFace から小さな Python スクリプト (`pip install huggingface_hub`) を介して VAE、Transformer、Qwen3‑4B エンコーダ、トークナイザを含む約16 GBの事前学習済み重みをロードします。Apple の Silicon 上では Metal Performance Shaders、Linux/Intel macOS では BLAS(OpenBLAS)によるオプションの高速化が可能で、最大約30倍の速度向上と Apple マシン上で自動的に GPU を使用します。 ライブラリは単純な C API (`flux_load_dir`、`flux_generate`、`flux_img2img` など) を公開しており、ユーザーのプロジェクトへリンクできます。サンプルコードではプログラムから画像を生成または変換する方法が示されています。またコマンドライン利用も可能で、例として `./flux -d flux-klein-model -p "prompt" -o out.png`(テキスト→画像)や `-i input.png` と `-t strength` を付けて画像→画像を実行します。オプションには幅/高さ(64–1024 px、16ピクセル単位)、ステップ数(デフォルト 4)、シード、quiet/verbose フラグが含まれます。 プロンプトのエンコード後、Qwen3‑4B エンコーダは自動的に解放され(約8 GB が解放)拡散中のピークメモリを約16 GB に抑えます。複数のプロンプトが同じエンコーダを再利用でき、再ロードは不要です。サポートされる最大解像度は 1024×1024 ピクセル、最小は 64×64 で、VAE のダウンサンプリングにより 16 の倍数に制限されています。 MIT ライセンスの下で配布されるこのパッケージは、軽量かつ依存関係がないため組み込みシステム、高性能サーバー、クロスプラットフォームアプリケーションに適しています。オープンソースおよび商用プロジェクトの両方で広く採用されることを奨励します。

2026/01/18 17:18

ソーシャル・ファイルシステム

**カードプチュア uLisp マシン(2024)** | そっか~ニュース