この一連の投稿は主に自分自身、または少なくとも販売するために電子的なものを作成しようとしている誰かのために書きました。もしあなたがそうであれば、この記事があなたの旅のお役に立てば幸いです。最終製品を見たいだけの場合は、 https://hortus.dev/products/social-batteryで見つけることができます。
これは長い投稿なので、少し理解しやすいようにいくつかの部分に分割しました。これらは:
JLC PCB のアセンブリ サービスを試してみたいと思いました。コンポーネントを手動で配置してはんだ付けする前に、ベア PCB を設計および製造しましたが、将来のプロジェクトをいくつか念頭に置いていましたが、数量と量の両方の理由から、手動でのはんだ付けは現実的ではありません。コンポーネントのサイズ。
何が含まれているかを考えると、このサービスの安さは驚くべきものですが、それでも十分に高価であるため、お金を渡してから、サービスを台無しにするような間違いを犯したかどうかを確認するのを待つのは少し気が遠くなるかもしれません。最終結果。
私は、PCB アセンブリだけでなく電子商取引の領域をテストできる、単純なものから始めようと考えました。私の計画は、現実的にデザインして 1 日以内に製造に提出できる小さなアイテムを考え出し、できれば Etsy のようなマーケットプレイスで比較的簡単に販売できるようにすることでした。
デザインと製造の面は大変で、Etsy に商品を出品するのは簡単だと思っていましたが、読み続けていただければわかるように、まったく逆でした。
私は Etsy をざっと見て、私が作ることができるもので人々がうまく販売しているものを調べました。電子ピンバッジを作成している人の例をいくつか見つけました。これは完璧なプロジェクトです。これらは主に、斬新な形状の基板上にランダムまたは事前に設定された点滅パターンを持つ LED で構成されていました。
これらは私には問題ないように見えましたが、少数の初期ユニットで妥当な利益を得るのに十分な金額で販売できる、もう少しインタラクティブで意味のあるものを試してみたいと思いました。
Etsy で販売されている通常のピンバッジを見てみると、スライド式インジケーターが付いたエナメル製の「Social Battery」ピンがたくさんありました。これらは、a) 個人的に共感できるもの (人々は私のソーシャル バッテリーについて延々とジョークを言います…)、b) 電子版として非常に楽しいもの、c) デザインが簡単なもの、としてすぐに思い浮かびました。いくつかの LED、スイッチ、そしてすべてを結び付けるマイクロコントローラーが必要です。
自分のスキルに自信があったので、Kicad で簡単な回路図を作成しました。私は ATtiny13A を使用することにしました。主な理由は、以前のプロジェクトで使用したチップがいくつか手元にあったことと、同様のチップについて十分な経験があるためです。
よく知らない方のために説明すると、ATtiny13A は 6 つの IO ピンを備えた小型の 8 ビット マイクロプロセッサであり、AVR ファミリの MCU の一部です。これは、機能がはるかに制限されていることを除けば、歴史的にほとんどの Arduino の中核を担ってきた ATmega チップに似ています。
利点は、ATtiny シリーズのチップが小型で安価であるため、大量のメモリや周辺機器が必要ない場合に最適です。 (ただし、現在では入手可能な ARM チップの種類が無限にあるため、少し時代遅れになっている可能性があります)。
KiCad で回路の PCB をレイアウトし、ガーバーとドリル ファイル (PCB の製造に使用される)、部品表と配置ファイル (コンポーネントを PCB に組み立てるのに使用される) を吐き出させました。 。それらを JLC PCB に送信して、正しく処理できるかどうかを確認しました。
BoM と配置ファイルを正しい形式にするには、デフォルトから少し調整する必要がありました (これは私が大変な方法でやったことが判明しましたが、ワンクリックですべてを完璧に実行する KiCad 用のはるかに簡単なプラグインがあります)。
JLC PCB は、アセンブリの注文に備えて在庫として保管しているコンポーネントのかなり大規模なライブラリを維持しています。ただし、私の場合、ATtiny13a は入手できなかったので、注文する必要がありました。これは、同社のグローバル ソーシング サービスを使用することで非常に簡単でした。必要な数量に対して最良の価格を提供するサプライヤーを見つけることができ、JLC PCB に私の代わりに倉庫への発注を依頼することができました。
待っている間、デザインをブレッドボードに作成してコードの作業を始めようかと思いました。すぐに問題を発見したので、そうしてよかったと思います。私の設計では、ATtiny13a で利用可能な 5 つの IO ピンを使用して LED を直接駆動しました (6 番目はボタンの監視に使用されました)。
前回この間違いを犯したとき(はい、以前にも起こりました)、私が気づかなかった/覚えていなかったのは、これらの IO の 1 つがリセット ピンでもあったということです。使用することはできますが、多くの電流を供給することができないため、LED を介してグランドに接続することで、チップを永続的なリセット状態に保っていました。
これを回避する 1 つの方法は、チップ上のヒューズを焼き付けてピンのリセット機能を永久に無効にし、ピンを通常の IO に変換することです。ただし、これの問題は、チップをプログラムできるのは 1 回だけであることです (高電圧プログラマーを所有している場合を除き、私は持っていません)。物事を苦労して学ぶ傾向があることを考えると、それは潜在的に非常に無駄であるように思えました。
もう 1 つのオプションは、リセット ピンをそのままにしておくことができるように、より少ないピンでより多くの処理を実行する方法を見つけることです。これは、利用可能なピンの数よりも多くの LED をアドレス指定できるcharlieplexingと呼ばれる技術を使用して実現できます。
次に、これらの LED をスキャンして、高速で個別にオン/オフを切り替え、視覚の持続性によって複数の LED が同時にオンになっているかのように見せることができます。
私の場合、4つの緑色LEDを3つのピンから駆動し、赤色LEDを専用ピンで駆動しています。これは、3 つのピンからすべての LED を駆動できるため、charlieplexing の最も効率的な例ではありませんが、専用ピンに赤を維持することで、プログラミングに関してはコードをより単純にすることができます。
私は回路図と PCB 設計を修正し、必要なファイルを再エクスポートして JLC PCB に送信し、5 つのプロトタイプの初期セットを製造および組み立てました。
1 週間ほど後、プロトタイプを受け取りました。とても満足しました。変更する必要があることがいくつかわかりました。
ボードをどのようにプログラムするかについてはまったく計画していませんでした。私は AVR プログラミング ピンを取り外したばかりで、最善の結果を期待していました。プログラミング ワイヤをほんの少しのはんだで固定できるため、5 つのプロトタイプではこれで問題ありませんでしたが、大規模になるとすぐに非常に退屈になります。
背面のファスナー用のスパイクはグランドパッドにはんだ付けされています。これは、スパイクの熱質量とボード上のグランドプレーンによって適切な接合を行うことが困難であることを除けば、問題ありませんでした。また、バッテリーホルダーのプラスの金属ケージの非常に近くに突き出ているため、バッジを導電性の表面に置いたり取り付けたりすると、偶発的なショートが発生する可能性が高くなります。
バッテリーのマイナス接点が十分に目立たなかったので、適切に接続するためにはんだを少し追加する必要がありました。繰り返しますが、少数のプロトタイプの場合は世界の終わりではありませんが、負荷に対してこれを実行しなければならない場合は苦痛です。
これらはすべて、実装するのに簡単な修正でした。迅速かつ再現可能なプログラミングのために、ポゴピンジグと一緒に使用できる適切なプログラミングヘッダーを追加しました。
スパイクをグランドプレーンから切り離し、それ自体が小さな切り離された銅の島となり、より容易に加熱して短絡を引き起こさないようにしました。
そして、バッテリーのマイナス接点を拡張して、しっかりとした接続を行うための表面積を増やしました。
コードは非常にシンプルです。バッジがどのモードにあるかを追跡します。このモードは、ボタンが押されるたびに減分される整数で表されます。次に、モードに応じて各 LED をループさせて点滅させます。モード 0 に達したら、それを元の番号にリセットしてから、ATtiny をスリープ モードにします。
ボタンをもう一度押すと割り込みがトリガーされ、チップが起動し、プロセス全体が再び開始されます。
全体として、結果には非常に満足しており、販売できるかどうかを確認する時期が来たということです。
これを行った私の経験については、このシリーズの次の投稿で読むことができます。