- HTML 100%
| .github/workflows | ||
| assets | ||
| public | ||
| .gitignore | ||
| .marprc.yml | ||
| Makefile | ||
| README.md | ||
| marp | paginate |
|---|---|
| true | true |
2026-02-07 ハンズオン
Raspberry Pi Zero 版
CHIRIMEN ハンズオン
WebDINO Japan エンジニア 渡邉浩平
むずかしい言葉が出てきたら、お気軽にご質問ください ☺️
プロフィール
渡邉浩平 一般社団法人 WebDINO Japan エンジニア
1992 年生まれ。岡山県総社市出身。鳥取大学工学部卒。 2019 年から WebDINO Japan で、Web の仕事をしています。 OSSを組み合わせてコンピューターで遊ぶのが好きです。
本日の内容
CHIRIMEN ワークショップ
- 11:15 Hello Real World 〜LEDを光らせてみよう〜
- 12:00 〜昼休憩〜
- 13:00 CHIRIMEN チュートリアル
- 16:30 解散
本日のゴール
CHIRIMENでセンサーやモーターを動かして電子工作を楽しもう
Slack にアクセス
https://webiotmakerschallenge.slack.com
👉 2025年度-徳島参加者
CHIRIMEN チュートリアル資料
https://chirimen.org/pizero/ にアクセス
困ったとき・分からないとき
Slack や会場のスタッフに気軽に声をかけてください ☺️
用意するもの
Raspberry Pi Zero の起動
- microSD カードを差し込む
- 専用ケースに入れる (オプション)
- パソコンと USB ケーブルで接続する
ターミナルに接続
https://chirimen.org/PiZeroWebSerialConsole/PiZeroWebSerialConsole.html
- ターミナルにアクセス
- [Connect and Login PiZero] を選択
- [接続]
このような画面が出たら「接続」をクリック ✅
Wi-Fi の設定
- [wifi panel] > [SSID] [PASS PHRASE] を入力
- [SET WiFi] を選択
- [wifi Info] を選択して接続を確認
- 青字で "Raspberry Pi's IP Address: ***" が出たら OK ✅
- "Fail to connect chirimen.org." が出たら NG ❌
- もう一度 1. からやり直す
フリーズしたときは再起動
- USB ケーブルを抜く (電源 OFF)
- (もう一度) USB ケーブルを接続して起動
- ターミナルの画面をリロード (🔁 ボタン・
Ctrl+R・F5キーなど) - [Connect and Login PiZero] を選択
- シリアルポートが表示されていれば OK ✅
- 起動完了まで約 2 分かかります
- (もう一度) [接続]
ブレッドボードでの配線
https://chirimen.org/pizero/chapter_3-1
プログラムを書く
[myApp] > [移動] > [Create New Text] > "hello.js" と入力
import { requestGPIOAccess } from "node-web-gpio"; // WebGPIO を使えるようにするためのライブラリをインポート
const sleep = (msec) => new Promise((resolve) => setTimeout(resolve, msec)); // sleep 関数を定義
const gpioAccess = await requestGPIOAccess(); // GPIO を操作する
const port = gpioAccess.ports.get(26); // 26 番ポートを操作する
await port.export("out"); // ポートを出力モードに設定
// 無限ループ
for (;;) {
// 1秒間隔で LED が点滅します
await port.write(1); // LEDを点灯
await sleep(1000); // 1000 ms (1秒) 待機
await port.write(0); // LEDを消灯
await sleep(1000); // 1000 ms (1秒) 待機
}
コピー&ペースト > [Save] (保存)
プログラムの実行
"hello.js" を実行する方法
node hello.js
止めるには Ctrl+C
書式:
node [ファイル名]
サンプルコードのダウンロード
CHIRIMEN panel > Get Examples > hello-real-world (L チカ) > JS GET
ほかのサンプルコードや配線図を見られます
ここまでのまとめ
- Raspberry Pi Zero W のセットアップ
- LED を制御するプログラム (通称 LED チカチカ、L チカ) の実行
2026-02-08
本日の流れ
- 10:30 タイムテーブル説明・接続方法のおさらい・I2C でデバイス扱い、カメラの注意事項
- 10:40 自由時間
- 11:45 片付け
自由時間
いろいろなデバイスを自由に試してみよう
- センサー・アクチュエータに触れる実験時間
- デバイス決める 👉 応用センサーキットの使い方 を読みながら試す
- 自分のペースで進めて OK 👌
I2C で複数のデバイスを扱う
それぞれのデバイスの VCC/GND/SDA/SCL を並列接続します
※ 画像にある I2C デバイスは例です
スレーブアドレスが同じデバイスは同時に接続できません
I2C 組み合わせて扱う例
import { requestI2CAccess } from "node-web-i2c";
import SHT30 from "@chirimen/sht30"; // 温度・湿度センサー SHT30
import NPIX from "@chirimen/neopixel-i2c"; // NeoPixel I2C
const i2cAccess = await requestI2CAccess();
const port = i2cAccess.ports.get(1);
const sht30 = new SHT30(port, 0x44);
const npix = new NPIX(port, 0x41);
await sht30.init();
await npix.init(8);
while (true) {
const { temperature } = await sht30.readData();
console.log(`${temperature.toFixed(2)} ℃`);
// 🌡 この温度を超えたら LED が点灯!
if (temperature > 30) {
await npix.setGlobal(20, 20, 0);
} else {
await npix.setGlobal(0, 0, 0);
}
}
⚠ Raspberry Pi のカメラに関する注意事項
- 接続端子・フラットケーブルは壊れやすい
- 引っ張らない
- 折り曲げない
動作確認方法
以下のコマンドで画像ファイルが保存されます:
raspistill -v --width 640 --height 480 -o test.jpg
⚠ 片付け注意事項
借りた電子部品は返却しましょう
- 各種貸し出しデバイス
(詳しくは会場のスタッフに)
ハッカソンに向けてのポイント
実用性より、やりたいことを形にすることが大切
何を作っていいか分からない人へ
- 間違えよう: たくさん試して、たくさん間違えよう
- プランB歓迎: 最初の計画に縛られすぎず、作り始めてから変えていこう
- 自分の言葉で説明してみよう: 他の人やAIに説明してみると理解が深まるかも
迷ったら、一番ワクワクするものを選びましょう。 技術的に難しそうでも、気にしなくて大丈夫。作りながら学べます。
【参考】過去の作品ギャラリー
「Web×IoT メイカーズチャレンジ」で検索 > ハッカソン作品集 または https://webiotmakers.github.io/gallery/
【参考】CHIRIMEN 対応デバイスの一覧
https://chirimen.org/partslist
ここにないデバイスでも「〇〇をやりたい」「〇〇できる?」があれば相談してください
【参考】材料を買うときのヒント
ネットで買うときは届くまでの日数に注意。早めに買って試してみよう。
https://gist.github.com/elie-j/8a27e7a65a40371e0cda5754ce0a063d
ハッカソンに向けて
やりたいことを形にすることが大切
- Slack で気軽に相談してください
- メンターに相談するのも OK
- 参加者同士で相談するのも OK






