必要なもの
| 必要なもの | 数量 |
| Raspberry Pi pico | 1 |
| ブレッドボード | 1 |
| WS2812bテープ 10連 | 1 |
| タクトスイッチ | 1 |
| ジャンパワイヤ | 6 |
3Dプリンタでプリントしてみよう
私がデザインしたのは下のベース部分だけ、上の美しい花瓶はMakerWorldでかっこいいものをダウンロードしてプリントしました。

Bambu lab a1 miniでらくらくプリント
ノズル0.4mm、積層0.2mmピッチ。PLAベーシックというフィラメントを使用しています。色は白ですね。カラフルなフィラメントがあっていろいろと目移りしてしまいますが、NeoPixelの美しい光が白を通り抜けて輝いてくれるはずです。あとはデフォルトのままプリントしていきます。サポートも不要です。今回はじめて購入したのですが、とても使いやすい3Dプリンターですね。最初のテストプリントから一度もつまづいてません。
モデリングはOnshapeで
最初は子供向けTinkerCadでデザインしようとしてました。非常によくできたwebアプリで3D CADの概念をつかむのに最適でした。しかしベベルやオブジェクトの連続配置などで不満が出てきたので断念。次はShapr3dを使ってみたところこれが素晴らしいアプリでした。かゆいところ全てに手が届く感じ。そうしていよいよ書き出すときに問題発生。低ポリゴンでしか書き出せないのです。もちろん課金すれば大丈夫なのですが、年間4万超は払えません。
そして結局Onshapeに落ち着きました。完全無料で高画質で書き出すことができます。webアプリなのでデータは自動保存。もっとも無料枠で使っていると、データが誰かに見られてしまうということが欠点なのです。まあ、私のやってる電子工作界隈なんて基本オープンソースなので逆に大歓迎です。誰かが見て使ってくれたら嬉しいし、改良してもっと良いものを作ってくれたら感激です。
下にリンクを張っておきます。
配線の仕方

こんな感じで配線してプリントした素材に組み込んでください。円柱にws2812bを貼り付けて中に通せば完成です。
コード
import time
import board
import neopixel
import digitalio
from adafruit_led_animation.animation.comet import Comet
from adafruit_led_animation.animation.chase import Chase
from adafruit_led_animation.animation.rainbowsparkle import RainbowSparkle
from adafruit_led_animation.sequence import AnimationSequence
from adafruit_led_animation import color
#tact switch initialize
switch = digitalio.DigitalInOut(board.GP16)
switch.direction = digitalio.Direction.INPUT
switch.pull = digitalio.Pull.UP
# Update this to match the number of NeoPixel LEDs connected to your board.
num_pixels = 10
#inner led initialize
led = digitalio.DigitalInOut(board.GP25)
led.direction = digitalio.Direction.OUTPUT
pixels = neopixel.NeoPixel(board.GP28, num_pixels)
pixels.brightness = 0.8
#RED,YELLOW,ORANGE,GREEN,TEAL,CYAN,BLUE,PURPLE,MAGENTA,WHITE,BLACK,GOLD,PINK
#AQUA,JADE,AMBER,OLD_LACE
#you can use these color. ex color.***
comet = Comet(pixels, speed=0.8, color=color.GREEN, tail_length=10, bounce=True)
chase = Chase(pixels, speed=2, size=3, spacing=4, color=color.GOLD)
sparkle = Sparkle(pixels, speed = 0.1, color = color.JADE, num_sparkles=3)
pulse = pulse = Pulse(pixels, speed=0.5, color=color.AMBER, period=3)
rainbow_sparkle = RainbowSparkle(pixels, speed=0.5, num_sparkles=5)
animations = AnimationSequence(comet, chase, sparkle , pulse, rainbow_sparkle, auto_clear=True)
while True:
if not switch.value:
led.value = 1
time.sleep(0.5)
led.value = 0
animations.next()
time.sleep(0.5)
animations.animate()
3Dプリンターを買っちゃおう
今回使用したBambu lab a1 miniは素晴らしい3Dプリンターでした。少し前までは3Dプリンタのトラブルの話をよく聞いていたので購入をためらっていたのです。しかしテストプリントから失敗もなく思ったものをそのままプリントできるのはいいですね。
このブレッドボードケースの上にはどんなものが乗るでしょうか?サーボモーター?アルミケースに穴をあけたりする必要もなくなりました。いろんな箱をサイズを検討してカタログを見なくてもよいのです。
これからどんどん電子工作のはばが広がりますね。とても楽しみです。

