プロジェクト · Arduino / ESP32 / Pico

Arduinoのプロジェクトをさがす

初級から上級まで、回路図・コード・動画付きのプロジェクトを数百件収録しています。自分のレベルに合ったところから始められます。

ESP32 PIR人感センサーによる自動照明
#121中級
プレミアム

ESP32 PIR人感センサーによる自動照明

このプロジェクトでは、HC-SR501 PIR人感センサーで部屋に入った人を検知し、LEDを自動で点灯させます。`millis()`で点灯時間を管理します。センサーの値がHIGHの間は最後に動きを検知した時刻を更新し、最後にHIGHを読み取ってから少なくとも10秒後にLEDを消灯します。現在のコードは各ループで`delay(50)`により50 ms待機するため、完全にノンブロッキングではありません。階段や廊下、浴室、戸棚内の照明などに応用できます。

4.4(24)
38
ESP32 WS2812B NeoPixel LEDテープの制御
#126中級
プレミアム

ESP32 WS2812B NeoPixel LEDテープの制御

WS2812B(NeoPixel)は、1本のデータピンで連結したLEDを個別に制御できるスマートなRGB LEDです。このプロジェクトでは、8個のLEDを備えたWS2812BテープをAdafruit_NeoPixelライブラリで制御し、滑らかな虹色のアニメーションを作ります。ESP32の3.3VロジックレベルはほとんどのWS2812Bのロットで問題なく動作しますが、不安定な場合に備え、470Ωの直列抵抗と1000µFのコンデンサを使う対策も紹介します。アニメーションは、HSV色空間の色相(hue)をずらして作ります。

4.9(19)
30
Raspberry Pi Picoで信号機の4モードをボタンで切り替え(ステートマシン、GP11-13 + GP4)
#158中級

Raspberry Pi Picoで信号機の4モードをボタンで切り替え(ステートマシン、GP11-13 + GP4)

1個のボタンで信号機の4つのモードを切り替えます!押すたびに、**通常サイクル**(赤→黄→緑の順に点灯)、**赤のみ**(停止)、**黄色点滅**(注意・夜間モード)、**消灯**(メンテナンス)へ切り替わります。**ステートマシン**(`mode`変数で実行する動作を決定)、**剰余演算によるモードの循環**(`(mode + 1) % 4`で0→1→2→3→0を繰り返す)、**処理を止めない時間管理**(`time.ticks_ms()` + `time.ticks_diff()`でLEDの各段階の時間を管理)を学びます。ただし、モード切り替え時には待ち時間があります。

5.0(1)
15
Raspberry Pi Picoのボタンのチャタリング対策:IRQとソフトウェアポーリングの比較(GP5 + GP4)
#159中級
プレミアム

Raspberry Pi Picoのボタンのチャタリング対策:IRQとソフトウェアポーリングの比較(GP5 + GP4)

ボタンを1回押しただけで、コードでは3~4回と数えられますか?原因は**チャタリング**です。金属接点がマイクロ秒単位で振動します!シリアルモニタで、2つのカウント方法を並べて比較します。**未処理のポーリング**は振動も検出して多く数え、**IRQとソフトウェアによるチャタリング対策**は正確に数えます。接点が振動する仕組み、ソフトウェアによる対策(`ticks_diff() > 50ms`)、**Pin.irq()**による割り込みの登録、**IRQ_FALLING**トリガー、ISRハンドラー、`global`とISRの安全な扱い方を学びます。IRQでLEDを切り替え、動作を目で確認できます。シリアルモニタには押すたびに両方のカウントが表示されます。

0.0(0)
12
Arduinoで傾けると流れるデジタル砂(MPU-6050+8x8 NeoPixelマトリクス)
#163中級
プレミアム

Arduinoで傾けると流れるデジタル砂(MPU-6050+8x8 NeoPixelマトリクス)

回路を傾けた方向に流れるLEDの砂を作ります!**MPU-6050**加速度センサーが傾きを測り、**8x8 NeoPixelマトリクス**上の24個の粒が重力の方向に落ちて、本物の砂のように端に積もります。**テーマボタン**で砂、水、溶岩、虹の色に切り替えられます。ライブラリを使わないI2Cの読み取り、傾きからの重力方向の算出、砂の落下を再現するシンプルなアルゴリズムを1つのプロジェクトで学べます。

0.0(0)
Arduino超音波テルミン(HC-SR04+NeoPixelリング+ブザー)
#165中級
プレミアム

Arduino超音波テルミン(HC-SR04+NeoPixelリング+ブザー)

触れずに空中で手を動かすだけで演奏できる楽器を作ります!手を**HC-SR04**に近づけるほど**パッシブブザー**の音が高くなり、**24個のLEDを備えたNeoPixelリング**が色と点灯する割合で音程を示します。ボタンで2つのモードを切り替えられます。**SCALE**モードでは距離に応じて五音音階の音に合わせ、**GLIDE**モードでは昔のSF映画のように音が滑らかに変化します。メロディーを生み出すのは、用意されたコードではなく手の動きです。

0.0(0)
Raspberry Pi PicoのLED綱引きゲーム(NeoPixelテープ+ボタン2個+ブザー)
#168中級

Raspberry Pi PicoのLED綱引きゲーム(NeoPixelテープ+ボタン2個+ブザー)

2人でボタンを連打して対戦するゲームです!**Raspberry Pi Pico**が、30個のLEDを備えた**WS2812B NeoPixelテープ**を綱に変えます。左が赤のプレイヤー、右が青のプレイヤーです。ボタンを押すたびに自分の色がLED1個分進み、テープ全体を自分の色にするとそのラウンドの勝ちです。先に3ラウンド取ると試合に勝ちます。カウントダウン中に早く押すと押し戻され、**パッシブブザー**はプレイヤーごとに異なるクリック音を鳴らします。試合の最後は虹色の光で締めくくります。MicroPythonの`neopixel`、チャタリング対策、処理を止めない音の再生を1つのプロジェクトで学べます。

0.0(0)
Raspberry Pi PicoのLEDキャンプファイヤー(8x8 NeoPixelマトリクス+可変抵抗+ブザー)
#169中級

Raspberry Pi PicoのLEDキャンプファイヤー(8x8 NeoPixelマトリクス+可変抵抗+ブザー)

燃やすことも温めることもないのに、パチパチと音がするキャンプファイヤーです!**Raspberry Pi Pico**が**8x8 NeoPixelマトリクス**に、毎フレーム計算し直したリアルな炎を描きます。下部で火花が生まれ、熱が上昇しながら冷めていき、赤から白の光で表現されます。**可変抵抗**で炎の高さを調整し、**ボタン**で炎、ガス、魔法、アメジストのテーマを切り替え、**ブザー**で薪が燃える音を加えます。計算で生成するアニメーション、ADC、PWM、MicroPythonを1つのプロジェクトで学べます。

0.0(0)
Raspberry Pi Picoの記憶ゲーム(LED4個+ボタン4個+ブザー)
#174中級
プレミアム

Raspberry Pi Picoの記憶ゲーム(LED4個+ボタン4個+ブザー)

何ラウンドまで覚えられるでしょうか?定番の色と音の記憶ゲームを**Raspberry Pi Pico**で机の上に再現します。Picoがランダムな順番で色を示し、それぞれの**LED**を固有の音とともに点灯させます。**4個のボタン**で同じ順番を繰り返してください。ラウンドごとに色が1つ追加されます。間違えると**ブザー**がゲームオーバーのメロディーを鳴らし、正しい色が点滅します。リスト、乱数、ボタン入力の読み取りを1つのゲームで学べます。

0.0(0)
ArduinoTetris(MAX7219 8x32 LEDマトリクス + ボタン4個 + ブザー)
#188中級
プレミアム

ArduinoTetris(MAX7219 8x32 LEDマトリクス + ボタン4個 + ブザー)

画面の代わりに256個のLEDで、Arduinoの音楽付きTetris!縦に置いた**MAX7219 8x32 LEDマトリクス**が横8列・縦32行のプレイフィールドになり、4つの**ボタン**でブロックを移動・回転・落下させます。**パッシブブザー**がTetrisのテーマ曲を奏で、そろった行が点滅して消え、2行消すごとにゲームが速くなります。マトリクスは**ライブラリを使わず**に制御し、最高スコアは**EEPROM**に保存します。

0.0(0)
Arduinoもぐらたたきゲーム(LED4個+ボタン4個+TM1637ディスプレイ)
#190中級
プレミアム

Arduinoもぐらたたきゲーム(LED4個+ボタン4個+TM1637ディスプレイ)

光った瞬間にたたきましょう!遊園地でおなじみの**もぐらたたき**を机の上で楽しめます。**4個のLED**のうち1個がランダムに点灯し、消える前に同じ色の**ボタン**を押すと得点になります。5回命中するたびにレベルが上がり、もぐらが顔を出す時間が短くなります。違うボタンを押すと1点と3秒を失います。残り時間とスコアは**TM1637**に表示され、最高スコアは**EEPROM**に保存されます。**パッシブブザー**が穴ごとに違う音を鳴らします。

0.0(0)