投稿

ATtiny85 4key keyboard 組み立て

イメージ
 ATtiny85 4key keyboard 基板設計と発注 https://funasover.blogspot.com/2024/06/attiny85-4key-keyboard.html で発注していた基板が納品されたので組み立て。 (Attiny85を使う場合は、最大4つのキー入力をするより3つにしてLEDでステータスがわかるようにした方が使い勝手が良い・・・というのは発注してから気がついた事) せっかく納品されたので組み立てる。 タイプCのUSBメスのコネクタから固定して、背の低い抵抗やダイオードを固定をさっとすませる。ユニバーサル基板と違ってすぐ終わる。Attiny85は、ファームの書き込みを行ってから半田で固定する前に、指で押さえつけた状態で、PCにUSBに接続してHIDデバイスとして認識する事を確認してから半田。最後にキースイッチを半田づけ。 100円ショップの写真立てポリスチレンの板を切り出してバックプレートにして、キーキャップも取り付けて完成。 キーキャップは3Dプリンターで打ち出したもの。 積層痕をなくすためにパテ埋めして、紙やすりで削りなめらかにした所でサーフェイサー1200番で下地作り。黒の塗料で2度ほど塗装してから、クリアー塗装、そして研磨剤でピカピカといった処理。

PCB基板ホルダーをつくってみた(3Dプリンター使うが300円以下)

イメージ
  半田の作業をする時、PCBをホールドするツールを作ってみた。 いろいろ基板の固定の方法があるが、”EleksFix”という商品名で検索すると出てくるピンで固定するタイプを作ってみた。あくまでイメージであって、そんなに凝ったものを作るつもりはない・・・。何せ今まで使っていなかったのだから・・。 ダイソーで売っているブックエンド。税込み110円。 これを平らな鉄の板としてベースに使うために、ジグソーでばさりと切断。(鉄鋸でがんばるというのでも切れるとは思う) 続いて、マグネット。 ダイソーで購入したマグネットが、直径6.5mmで厚さが2mm。 あとは、六角のネジとナット。M4の長さ30mm。たまたま転がっていたので。 (ナットを写真いれるの忘れた。) 3Dプリンター用のデータの作成。ネジの頭に接着剤でマグネットつけて、ナット複数とワッシャーで基板を挟めば、プリンターなくても出来そうだが、ここは用意してみる。 Φ=15mmの円柱、高さは2cmとした。ネジが通る4.5mmの穴を中央に。ネジ頭が入るようにクリアランスをとって7.25mmで深さがネジ頭4mm+マグネット2mm合計6mm+0.1mm 押さえる側は同じくΦ=15mmで高さ10mm、そこにナットが収まるようにザグリを入れる。ザグリ深さは5mmとちょい深め(金属を接触させたくなかったので)。簡単に回せるように、周囲に、凹凸をつけてみた。 3Dプリンタで打ち出したものに、ネジ、マグネットとナットを装着。 くみ上げて、基板をホールドしてみた。 いつも半田の作業をしてる実体顕微鏡の下に配置してみる。 位置を変える時はベースの板ごと動かしてもよいし、マグネットの強さが程よい感じで、ずるずると鉄の板の上で位置を変えられるが、半田作業ぐらいだと動かなさそう。 ほんと、電子工作を趣味を言っておきながら、これまで手でおさえたり、ラジオペンチで抑えたりとしていたのがばからしく・・・そうそうに用意しておけばよかた・・・ 後々に、フレキのアームを用意してクリップで線も固定できるようにしたり、プローブを落とせるようにしたりと・・・

1key-boardの作製

イメージ
Attiny85ではUSBに2端子、電源、GNDに2端子使うので、残りが4つのピンがあるのでで最大物理的に4つのキーをもつキーボードが作成できる。 https://funasover.blogspot.com/2024/06/attiny85.html でリセットピンを解除して、4つのキーボードのプロトタイプを作った。 しかし、プロトタイプを作って使っているとある結論に至った・・・ 結果1つで十分!!たくさんキーがある方が良いと最初は思うが、そうではなかった・・・ まず、沢山キーがっても、何を登録しているかを覚えられるのはせいぜい4つ。 アンチスクリーンモードを搭載すると今機能しているのか?していないのか?LEDのインディケーターがないとやはり不便。で3つにする?でもね・・・ 物理的に、4つのキーがなくても、シングルクリック、ダブルクリック、トリプルクリック、長押しとキーのアクションで4つの動作を区別すればいいから・・結果、シンプルな1つキーのキーボードでいいのではという結論に・・・ 【回路作製】 卓上のテーブルソーを使ってユニバーサル基板を切断。短編に10個の穴、長編に12個の穴を確保して切断 USBのコネクタ、タイプAを押すを取り付けるために、4の端子がホールに入るように位置をあわせてスリットを基板の端字いれる。端から3つ目の穴に合わせるようにいれた。 タイプAのUSBコネクタを半田付け。外のケース部分も大きなランドに半田して強度を持たせている。 表面側に紙を両面テープで全面に張る。 部品を刺して、回路を半田付け。今回は、PB5にスイッチをつけて、PB2にLEDをつけるように配線をしている。 Attiny85をすでに写真では実装しているが、実装前に、ライターで最低限ブートローダー書き込みしてから半田付けする。さもなければ・・・ https://funasover.blogspot.com/2024/06/attiny85digispark.html リセットピンのPB05を使っているので、 https://funasover.blogspot.com/2024/06/attiny85.html も参考に。 実際にコマンドプロンプトから流し込んだコマンドは、 avrdude -C avrdude.conf -v -pattiny85 -carduino -PCOM

TrinketKeyboardで日本語キーボード109で正しく表示する方法

イメージ
ATtiny85をdigispark化、キーボードとして自動入力をさせてる際、USキーボードになっていて正しく表示されない。左が正しくなく、同じスケッチで適正化したのが右。 この解決方法については、Toramin10さんが公開されていて、 https://qiita.com/Toramin10/items/c1f63c51568ed00ed741 DigiKeyboardのライブラリーを使っている場合は、ここの通りに実施すればよさそうだが、ATtinyCoreを使っている場合、TrinketKeyboardの組み合わせでないと、うまく動作しなかった事から、TrinketKeyboardで同じように、正しく表示する事を行った記録。 【スケッチの準備】 https://funasover.blogspot.com/2024/06/attiny85.html で作ったものを改変する。 #include <TrinketKeyboard.h> // Attiny85 // PB5(reset)-|   |-VCC //        PB3-|   |-PB2 //        PB4-|   |-PB1 //        GND-|   |-PB0 const int PB0pin = 0 ; const int PB1pin = 1 ; const int PB2pin = 2 ; const int PB5pin = 5 ; bool outputState = true ; void setup () {     pinMode (PB0pin, INPUT_PULLUP);     pinMode (PB1pin, INPUT_PULLUP);     pinMode (PB2pin, INPUT_PULLUP);     pinMode (PB5pin, INPUT_PULLUP);     TrinketKeyboard . begin (); //start USB stuff } void loop () {   TrinketKeyboard . poll ();     if ( digitalRead (PB0pin) == LOW)   {     // type out a string usi