**48 × 32、1536 LED のゲームコンピュータ(2023)**

2026/03/05 9:10

**48 × 32、1536 LED のゲームコンピュータ(2023)**

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

要約

Japanese Translation:

著者は、高級商用ゲームと競争しようとするのではなく、安価なハードウェア上でシンプルで楽しいゲームを作ることに焦点を当てるべきだと主張しています。彼は、自分の子どもたちが学校でAndroidスマートフォンとWindowsラップトップを使用しなければならないため、ゲーム依存症を招く可能性があると指摘し、低コストの代替案を提案しています。
Arduino R4プラットフォームを使用して、彼は6つの32 × 8アドレス可能モジュール(各約20ユーロ)から48 × 32 LEDパネルを構築し、約19 × 12 cmで1,536ピクセルのディスプレイを実現しました。エンクロージャは中国製の安価なレーザーカッターで合板を切り出し、ジョイスティックはThingiverseのデザインから印刷しました。
このハードウェア上で彼はNokiaスタイルの「スネーク」ゲーム(緑色の蛇体、青い頭、黄色い食べ物、紫の障害物)を実行し、さらにシンプルな2人対戦ゲームも作成しています。次回の記事ではソフトウェア詳細、CADファイル、および配線ヘッダーを共有し、読者が構築を再現できるようにします。このアプローチはホビイストや学生、教育者が高価な機材なしでゲームを開発できるようにし、同様の低コスト教育またはエンターテインメントプロジェクトへの刺激となる可能性があります。

本文

子どもたちはゲーム機に極度の中毒状態にあります。これは問題ですが、学校が彼らにAndroidスマートフォンとWindowsラップトップを両方持つことを義務付けているため、直接解決できるわけではありません。そこで、直面するよりも「消費」から「創造」に置き換えるほうが効果的だと判断しました。

スマートフォンやラップトップで何かを作り出すことは、競争が激しくツールチェーンが非常に複雑なため、まるで山登りのような挑戦です。今日では、多くのゲームタイトルは専属スタッフや大規模開発チームを持ち、平均的なゲームが備える「アイキャニ」と3Dグラフィックに匹敵するものを作ることはほぼ不可能です。

しかし、競争できる分野は「楽しさ」の要素です。古いゲームの中には新しいものと同等か、それ以上に楽しいタイトルもあります。さらに私のスキルセットにも合致し、Arduinoエコシステムを活用すれば初心者でも簡単に取り組めます。偶然、32×8 のアドレス可能LEDディスプレイを販売している店を見つけました。

一個あたり約20ユーロという高価なコンポーネントですが、実際には個々のLEDよりも安いです。ただし、32×8 だけではゲームに必要なサイズが足りないため、6枚を組み合わせて48×32 のディスプレイにしました。これはプロジェクト名にもなります。高解像度ディスプレイであれば文字2文字分のスペースですが、LEDは一般的な画面ピクセルよりも大きいため、最終的には48×32 cm(約19×12インチ)とかなり大きいディスプレイになります。

ケースが必須なので、中国製の安価なレーザーカッターで厚木をカットしました。手作業ではこのレベルの精度は実現できませんでした。全てを組み立てるのは手間がかかりましたが、最終的に本格的に使えるパーツセットが完成しました。

ジョイスティックも課題でした――ディスプレイより小さいですが、Thingiverse が助けてくれました。印刷するだけで最初の試みで合った簡単なデザインです。以下は完成品と内部構造です:

全体を組み合わせると、Arduino R4 をコンピュータ部品として使用し、標準ワイヤリングとコネクターで接続すれば次のようになります:

さらに作業を重ねた結果、Nokia の「スネーク」ゲームが自然な環境で動きます。
グラフィックはすべて単一LEDで構成されており、障害物(紫)、食べ物(黄)、蛇本体(緑)と蛇の頭(青)が表現されています。このゲームはシングルプレイヤーですが、簡単な2人対戦ゲームも作っています。

次回ではソフトウェアを解説し、簡単なゲームの作り方を紹介します。プログラミングに慣れている方や自分で作りたい方には、CADファイルとインクルードファイルはこちらにあります。

同じ日のほかのニュース

一覧に戻る →

2026/03/08 5:43

CAS番号(化学物質登録番号)

## Japanese Translation: CasNumは、コンパスと定規を用いた幾何学的構成により任意精度算術を実装するPythonライブラリです。数値は平面上の点としてエンコードされ、加算・乗算・除算・論理ゲートなどの演算は、線/点、円、直線と円の交点などの5つの基本的な幾何学プリミティブから構築されます。最適化には、2倍による特殊ケース乗算や剰余計算で最高位ビット(2のべき乗)を除去する手法が含まれています。 このライブラリはGame BoyエミュレータのALUに組み込むことを想定しています。CasNumを統合するには、PyBoy の `opcodes_gen.py` を編集するだけで、他のエミュレータコードは変更されません。使用例としては、単純なRSA実装(`python3 -m examples.rsa`)や、幾何学ベースの算術のみで動作させるポケットモンスター 赤版(`python3 -m examples.basic`)があります。初回起動に約15分かかりますが、その後はPython の `lru_cache` によりほぼ 0.5–1 FPS で再起動できます。 ビュアースクリプト (`casnum/cas/viewer.py`) は幾何学的構成を可視化し自動ズームします。RSA例では手動ズームが必要になる場合があります。依存関係は、sympy(コア)、可視化用のオプション pyglet、テスト用 pytest‑lazy‑fixtures、RSA 用 pycryptodome、および任意で Euclid Postulate V です。インストールは `git clone --recursive` の後に `pip install -r requirements.txt` を実行します。使用している ROM(`2048.gb`)は zlib ライセンス、CasNum コアコードは MIT ライセンス、PyBoy は LGPL v3.0 でライセンスされており、このプロジェクトはオープンソースや教育プロジェクトに適しています。

2026/03/08 6:56

3T ブラインドスポット:米国の非営利団体

## Japanese Translation: **概要** 米国の非営利セクターは年間 **3兆ドル** を管理しており、これはイギリスのGDPを上回る金額ですが、そのうち実際にプログラム費用に充てられるのは **約36%(1,800億ドル)** に過ぎません。残りはオーバーヘッド、スタッフ給与、資金調達に使われています。登録済み非営利団体は **180万人以上** であり、その多くは収益が5万ドル未満の場合 IRS Form 990 の提出義務から免除されているため、セクター全体の大部分が公衆の監視から隠れています。 寄付者の信頼感は低下しています。**米国の寄付者の32%が5年以上前よりも慈善団体に不信感を抱いています**(BBB Wise Giving Alliance)、世界的にも三分の一が非営利団体への信頼を失っています(Gallup)。財務的負担は顕著で、**調査対象の非営利団体の36%が2024年末に営業赤字を報告し、10年間で最高水準となりました**。また **41%しか全職員に生活賃金を支払えません**。資金提供者は通常オーバーヘッドを約15 % に抑えるよう指示しますが、多くの非営利団体は管理費に **31 % 近くを使っており、過小報告やコーナーカットが頻発する** ― これは「非営利組織の飢餓サイクル」と呼ばれる現象です。 企業会計との大きな違いは顕著です。IRS Form 990 は年間一度提出され、公開までに **12–18か月** を要し、監査済み財務諸表や詳細なプログラム内訳が欠如しています。一方で公的企業は **10-K(年次)、10-Q(四半期)、8-K(重要事象)** を提出し、60日以内に監査済みの声明を求められます。このコンプライアンス中心の枠組みが可視性の問題を生み出し、寄付者の信頼を侵食しています。 国際的には、英国で実施された研究で **ウガンダの井戸の45%が非営利団体によって資金提供されましたが、機能していませんでした**。これにより 2億1,500万〜3億6,000万ドル相当のリソースが無駄になっています—非効率性の重大さを示しています。既存技術(カメラ・センサー・衛星画像)はリアルタイムで成果を追跡できる可能性がありますが、現在の報告規則ではそのような機能は義務付けられていません。 非営利セクターの将来は、コンプライアンス重視から真の透明性と説明責任への転換にかかっています。この変革なしには、非営利団体は営業赤字と寄付者の懐疑心を続けるでしょう。変革が実現すれば、信頼を回復し持続可能な資金調達を確保できる可能性があります。

2026/03/06 16:17

既存のブリックからLEGO NXTファームウェアをダンプする(2025)

## Japanese Translation: > 著者はPybricksプロジェクトで作業している際、オリジナルのファームウェアバージョン 1.01を動作させていた中古Lego NXTを入手し、このファームウェアの保存コピーが存在しないこと(利用可能なのは新しい 1.03のみ)に気づきました。 > > NXTのAT91SAM7S256 MCU上では、SAM‑BA PEEK/POKE を呼び出すことはできますが、それを行うとファームウェアを書き換えてしまい、古いMCUにはモダンなデバッグインターフェースが欠けているためJTAGも実用的ではありません。ロボットのプログラムは制限付きメモリ内で動作するバイトコードVMで走るので、著者は低レベル機能に焦点を当てました。 > > PyUSB を介して USB 「Read IO Map」コマンドを送信し、`0x100d3d`(フラッシュの約 3 KiB)に位置するVMの書き込み可能な関数ポインタ `pRCHandler` を読み取りました。32 KiB の書き込み可能 MemoryPool は NOP とカスタム ARM コードで埋めることができ、`pRCHandler` をこのプール内のアドレスにリダイレクトすることで任意の直接コマンドをそのコードとして実行させることができます。 > > 著者は、受信パケットから4バイトのアドレスを読み取り、そのアドレス上のワードを返す組み込みアセンブリを挿入し、元のハンドラを置き換えました。この乗っ取られたハンドラを利用して、USB経由で「direct」コマンドをバイト単位で送信し、フラッシュ領域全体(`0x00100000–0x00200000`)を読み取り、完全なファームウェアとユーザーデータを `nxtpwn-dump.bin` にダンプしました。 > > この脆弱性は、ストックファームウェアを実行している任意のNXTで機能し、未改変デバイス上でもベアメタルコードが動作できることを示しています。これにより、保存ツールや自己複製型マルウェアなどの可能性が開かれ、NXTファームウェアの整合性チェックにおける脆弱性も浮き彫りになっています。