PK-919,rwanda-npo.org,ゆったりサイズ,9452円,防寒,ウインドプルーフウォームカーゴパンツメンズ,【バイク用品】,/clownage226607.html,☆,ツーリング,冬用,【smtb-k】,全天候,☆【KOMINE】コミネ,ワイドサイズ,ウインター,防水,車用品・バイク用品 , バイク用品 , バイクウェア・プロテクター , その他,大きいサイズ,秋冬用 PK-919,rwanda-npo.org,ゆったりサイズ,9452円,防寒,ウインドプルーフウォームカーゴパンツメンズ,【バイク用品】,/clownage226607.html,☆,ツーリング,冬用,【smtb-k】,全天候,☆【KOMINE】コミネ,ワイドサイズ,ウインター,防水,車用品・バイク用品 , バイク用品 , バイクウェア・プロテクター , その他,大きいサイズ,秋冬用 9452円 ☆ ☆【KOMINE】コミネ PK-919 ウインドプルーフウォームカーゴパンツメンズ 秋冬用 冬用 ウインター 防寒 防水 全天候 ツーリング 大きいサイズ ゆったりサイズ ワイドサイズ 【smtb-k】 【バイク用品】 車用品・バイク用品 バイク用品 バイクウェア・プロテクター その他 ☆ KOMINE コミネ PK-919 ウインドプルーフウォームカーゴパンツメンズ 秋冬用 冬用 ウインター ※アウトレット品 防寒 ツーリング 全天候 ワイドサイズ 防水 バイク用品 ゆったりサイズ smtb-k 大きいサイズ 9452円 ☆ ☆【KOMINE】コミネ PK-919 ウインドプルーフウォームカーゴパンツメンズ 秋冬用 冬用 ウインター 防寒 防水 全天候 ツーリング 大きいサイズ ゆったりサイズ ワイドサイズ 【smtb-k】 【バイク用品】 車用品・バイク用品 バイク用品 バイクウェア・プロテクター その他 ☆ KOMINE コミネ PK-919 ウインドプルーフウォームカーゴパンツメンズ 秋冬用 冬用 ウインター ※アウトレット品 防寒 ツーリング 全天候 ワイドサイズ 防水 バイク用品 ゆったりサイズ smtb-k 大きいサイズ

☆ KOMINE コミネ PK-919 ウインドプルーフウォームカーゴパンツメンズ 秋冬用 冬用 ウインター ※アウトレット品 防寒 授与 ツーリング 全天候 ワイドサイズ 防水 バイク用品 ゆったりサイズ smtb-k 大きいサイズ

☆ ☆【KOMINE】コミネ PK-919 ウインドプルーフウォームカーゴパンツメンズ 秋冬用 冬用 ウインター 防寒 防水 全天候 ツーリング 大きいサイズ ゆったりサイズ ワイドサイズ 【smtb-k】 【バイク用品】

9452円

☆ ☆【KOMINE】コミネ PK-919 ウインドプルーフウォームカーゴパンツメンズ 秋冬用 冬用 ウインター 防寒 防水 全天候 ツーリング 大きいサイズ ゆったりサイズ ワイドサイズ 【smtb-k】 【バイク用品】








◆PK-919 ウインドプルーフウォームカーゴパンツ◆


温かく動きやすい防風カーゴパンツ。

伸縮+防風+保温の機能を持つ3層構造生地を採用し、中綿を使わずスリムなルックスを実現。
CEレベル2膝プロテクターを外入れ式で装備。






_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

■商品について■
※当店でお取り扱いしております商品は一部の商品【あす楽商品】を除き、
 ほとんどの商品がメーカー取り寄せとなります。
※メーカー在庫は随時変動しており、ご注文いただくタイミングにより欠品完売の場合がございます。
※商品についての仕様・詳細はメーカーサイトをご覧いただきますようお願いいたします。
※商品写真はメーカーサイトの写真より掲載させていただいております。
 イメージと異なるという理由による変更キャンセル、または受注後の変更キャンセルは
 お受けできませんので、ご了承くださいますようお願いいたします。

■在庫・納期について■
※メーカー在庫は随時変動しており、ご注文いただくタイミングにより欠品完売の場合がございます。
※在庫がある場合、数日(商品により異なります)での入荷となります。
 その場合は「納期に間に合わない」などのキャンセルがお伺いできません。
 納期に遅延が見られる場合もございますので、予めご了承の上ご注文をお願いいたします。
※欠品の場合はメールにて納期をお知らせし、その際にご継続またはキャンセル(商品変更など)
 をご相談させていただきます。

■沖縄・北海道の送料について■
※【送料込】の商品につきましては、沖縄・北海道・一部離島など\630以外の地域は別途送料が掛かります。
※【送料別】の商品の場合、お買い上げ合計金額により送料無料表示になる場合が御座いますが
離島・沖縄・北海道は別途料金が掛かります。
※注文確定時は送料がゼロとなっておりますが、受注後に変更させていただき、「配送料について」
というメールを送信させていただきます。
ご了承の返信メール確認後の商品手配及び発送となりますので、お急ぎのお客様は注文時の備考欄に
「送料了承済」である旨、ご記入をお願いいたします。
※詳細はPCトップページの[支払・送料]をご覧下さい。

■ご入金について(コンビニ決済・銀行振込)■
弊社にて在庫確認後在庫がございましたら、市場より入金の案内メールが届きます。
入金案内メールを確認するまではご入金はお控えください。
万が一、入金案内前にご入金された場合は、欠品等でのご返金時に振込手数料を差し引
いた金額でのご返金となりますので何卒ご了承下さい。
商品の手配はご入金確認後となります。

上記の件、ご納得いただけない場合はお取引を中止
させていただく場合がございますので、ご了承いただきますようお願いいたします。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

☆ ☆【KOMINE】コミネ PK-919 ウインドプルーフウォームカーゴパンツメンズ 秋冬用 冬用 ウインター 防寒 防水 全天候 ツーリング 大きいサイズ ゆったりサイズ ワイドサイズ 【smtb-k】 【バイク用品】

DTM / シンセサイザー / VST / WebMusic 関係の技術情報を発信しています



2021/09/01 (2021年09月 のアーカイブ)

Maker Faire Tokyo 2021 (MFT2021)のオンサイト開催は中止されました


2021年10月2~3日に予定されていたMaker Faire Tokyo 2021 (MFT2021) はオンラインのみの開催となり、東京ビッグサイトでのオンサイト開催は中止されました。

MFT2021のトップページにアナウンスが記載されています。残念ですが最近の状況ではしょうがないですね。
オンラインのイベントは予定どおりで現在企画やタイムテーブルを調整中とのことです。

https://makezine.jp/event/mft2021/

Posted by g200kg : 11:30 AM : PermaLink

2021/07/16 (2021年07月 のアーカイブ)

【最短で翌日お届け。通常24時間以内出荷】 【中古】 車で訪ねる日本の祭り 全国編 第2版 / JAF出版社 / JAF出版社 [大型本]【ネコポス発送】


昨年に続き、コロナ感染対策のため、基本的に展示物には触れられないといういささか不自由な展示にはなりますが、10月2~3日に東京ビッグサイトで開催される「Maker Faire Tokyo 2021 (MFT 2021)」に「Web Music Developers JP」名義で出展します。

チケットはまだ準備中のようですが、混雑を避けるため、昨年同様の入場日時指定方式になるようです。
まだしばらく先の話ですが、来場を予定されている方よろしお願いします。


イベント名称 : Maker Faire Tokyo 2021

日時 : 2021年10月2日(土) 12:00 - 17:00 (予定)
   : 2021年10月3日(日) 10:00 - 16:00 (予定)
会場 : 東京ビッグサイト 南3ホール
入場料 : 大人 1000円、18歳以下 500円

MFT 2021 公式ページ


Posted by g200kg : 12:03 AM : PermaLink

2021/07/06 (2021年07月 のアーカイブ)

W3C 勧告 「Web Audio API」 日本語訳を公開しました


先月、6月17日に「Web Audio API」が正式に W3C Recommendation (W3C 勧告) になりました。

今年の1月頃の勧告候補のあたりと比べると機能的な面では全く同じですが、細かな挙動などについて説明が追加されたりしています。例えば audioエレメントのサンプリング周波数が AudioContext のサンプリング周波数が違っている場合は Web Audio 内部でリサンプリングする、とか、オーディオグラフのレンダリングの内部動作の手順がより詳しく説明されたり、という感じです。

という事で、正式版「Web Audio API」の日本語訳を作りましたので公開します。
Web Audio API, W3C Recommendation, 17 June 2021 (日本語訳)

元文書である W3C のページはこちら : W3C : Web Audio API, W3C Recommendation, 17 June 2021

さて、これで W3C の文書としては最終形で、今後変更はされず固定されます。間違いなどが見つかった場合はこの文書の変更ではなく、正誤表 (errata) による対応になります。
errata のページはこちら : W3C : Errata in REC-webaudio-20210617/

また今後の仕様の拡張等については「Web Audio API v2」として GitHub の別リポジトリがありますのでそちらで議論が進められる事になるはずです。
Web Audio API v2 はこちら : GitHub : WebAudio / web-audio-api-v2


Posted by g200kg : 4:32 PM : PermaLink

2021/06/30 (2021年06月 のアーカイブ)

Web Audio API がW3C勧告標準に


ブラウザ上で音の生成や処理を扱う技術である「Web Audio API」が6月17日、ついに W3C の正式な勧告 (Recommendation) となりました。

ブラウザで音を扱う機能の実験的な実装が始まってからもう10年経ってます。Chrome の「Web Audio API」と Firefox の「Audio Data API」があってこれをどうやってまとめるつもりなのか、みたいな事をやってた時代から既に10年。とにかく動きが速い Web 技術界隈にあって、10年かけて W3C 勧告になるというのは一大事業感はありますね。

空気圧 エア チェッカー タイヤ ゲージ 自動車 バイク用 空気入れ メーター付き 空気圧 エア チェッカー タイヤ ゲージ 自動車 バイク用 空気入れ メーター付き エアー コンプレッサーで使用可能 測定 加圧 減圧 タイヤ交換 最大測定値1600kpa プロ用 ホース付き【海外直送】

W3C Web Audio API


私が翻訳している「Web Audio API (日本語訳)」は内容としてほぼ W3C 勧告と同じではありますが、まだ勧告候補(Candidate Recommendation」 (1月14日スナップショット) のままですので、そのうちアップデートするつもりです。

Web Audio API (日本語訳)

なお、今回 W3C 勧告となった Web Audio API はバージョン1(v1) という位置付けであり、このまま引き続き機能の拡張等が行われる v2 の検討が始まっています。

Posted by g200kg : 4:53 PM : PermaLink

2021/05/28 (2021年05月 のアーカイブ)

光造形3Dプリンタでノブを作る


先日、光造形の3Dプリンタを導入したのですが、同梱されているテストデータすら出力せずにひたすらノブを出力しています。FDMでは無理でしたが光造形なら充分実用的なノブが作れます。

光造形の特性として出力時間は高さ方向のサイズにのみ依存し10個やそこらは一気に作れるので、洗浄やら二次硬化やらの後処理は面倒ではありますが、出力にかかる時間もまあ実用的な範囲内かと思います。

方向を示すマーキングは窪みを作っておいてラッカー塗料を面相筆で流し込む方法で付けていますが、これは細かいので多少気を使いますね。

ガジェットやシンセ等、作っていてツマミ類に困っている人にはオススメです。
・市販品に気に入ったものがない
・数が多いと意外と高くなる
・今後同じものが入手できるか不安
というあたりが一気に解決できます。

特にDIY系だと安い市販ノブを探しても選択肢が少なくて他の人とカブり勝ちで「あ、○○で売ってる安いノブを使ってるな」とか即バレしますのでそういうのも避けられます。

なおシャフトとの篏合はナールドのシャフト(ギザギザの奴)に嵌め込むタイプで作っていて、おそらくプリンタやレジンの種類によって多少の調整は必要と思われます。今のところシャフト径のジャストサイズ + 0.数mm 程度のあたりで丁度良い硬さになる所を探っています。多分 D シャフト(平軸) でもシャフト部を調整すれば嵌め込みで行けるかと思います。イモネジで締めるタイプが作れるかどうかはちょっとやってみないと分からないですね。

使用しているのは
プリンタ -- Nova3D BENE4 Mono
レジン -- Nova3D 水洗いレジン(黒)
モデリング -- Blender
スライサー -- NovaMaker
という環境です。




取り合えず4タイプほど使えそうなノブを作ってみたので、stlファイルが必要な方はこちらからどうぞ。
20210528_knobs.zip


Posted by g200kg : 6:14 AM : PermaLink

2021/05/05 (2021年05月 のアーカイブ)

(注意)この商品はガス製品のため、北海道・沖縄・離島へは送れません。 【メール便送料無料】CORAVIN コラヴァン アルゴンガスカプセル2本セット (CRV411801)(北海道・沖縄配送不可)


3Dプリンタで使うスライサーのアップデートをずっとさぼっていて気がつかなかったのだけど、FDM 方式の宿命のように言われていた穴の径が設計よりも小さく出力される問題も既に過去のものになったようです。

これはモデルの外形を幅のあるストロークで引いているために原理的に発生するもので、穴の形状を描いた時にフィラメントは円の内側にもはみ出すため、一般的な 0.4mm のノズルなら穴の直径も 0.4mm ほど小さくなるというものです。

スライサーに Cura を使っている人は既に知っているのかも知れませんが、家で使っているのが QIDI のプリンタで、オフィシャルのスライサー(Cura のカスタマイズ版) を昨日アップデートした所、設定項目が増えていたようです。エキスパートモードの「アタッチ」タブに「Hole Horizontal Expansion」という項目があり、これで穴を開けた時の径を補正できます。

面倒くさくなったのかここだけ英語のままなので逆に目立って存在に気が付きました。

今までは穴をモデリング時に大きめにして置くしかなく、作ったデータを精度の良いプリンタに持って行きたい時にとても面倒な事になっていたのですが、これで随分快適になります。Φ3.2 で穴を作っても Φ2.8 になってしまって M3ネジが通らないとか悲しい状態だったので。

今のところ QIDI のプリンタで使っている設定は上の図の通りです。

注意すべきはその上の「水平展開(Horizontal Expansion)」で、これはモデルの水平方向の外形を伸ばしたり縮めたりを微調整するパラメータです。家のプリンタだとモデル全体の外形が微妙にサイズ足らずで出力されるのでこの設定を +0.1mm で使っていたのですが、穴径はこちらの影響も受けます。

なので上の図のように水平展開が 0.1mm で Hole Horizontal Expansion が 0.3mm だとすると、穴の直径は水平展開によって 0.2mm 小さくなり、Hole Horizontal Expansion によって 0.6mm 広がるので、結果穴の直径は 0.4mm 大きくなるという事になります。

直径 3mm で開けた穴に M3ネジが通るし、直径 6mm で開けた穴には Φ6 のシャフトが通る!!

なお、これはあくまで穴になっているかどうかを判断して補正が掛かっているので、下の図のように板の耳に切り欠きを入れてネジ止めしようというような形状の場合は補正が掛かりません。今まで通りモデリング時に余裕を持たせるしかないですね。


Posted by g200kg : 9:35 AM : PermaLink

2021/04/21 (2021年04月 のアーカイブ)

Arduino Nano Every のADC入力を増やす


Arduino Nano の後継として Arduino Nano Every が発表されてからもう2年くらいですね。
MCUが ATMega328P から ATMega4809 に変わり、安くなって性能も上がっているのですが、それほど使われてないですかね? レジスタ直叩きとかし始めると 328P との互換性が無いのがネックかも知れません。 でも ATMega4809 だから出来る事もあります。

と言う事で、ADC入力ピンを増やす例です。

注 : ATMega4809 ではなくピン数の少ない ATMega4808 を搭載した Arduino Nano Every の廉価版互換機も存在するようです。この手法は ATMega4809 でしか使用できません。

Arduino Nano では A0~A7 の 8本のピンをADC入力として使えますが、ATMega4809 では本来 16 本のピンを ADC 入力として使う事ができます。ただしその内の 1 本はピンとして引き出されていませんので、トータル 15 本のピンをA0~A14として使う事が可能です。

なお、A9 (D13) ピンは Arduino 内部で LED に繋がっているのでちゃんとは使えないかも知れません。

ソースは下の通り。A8~A14 に対して pinMode を入力にして、analogRead4809() を呼べば A0~A7 に対する analogRead() と同様にアナログ値を読む事ができます。括弧内の (AIN7) 等は 4809 のピン機能の名前です。

Arduino Nano ベースで作っていて ADC 入力の本数が足りない、と言う場合には便利かも知れないのでメモ。


/*    ARDUINO-NANO-EVERY ADC Pins
 *
 *             ___________________
 * (AIN10) A9 |D13    |____|   D12| A10 (AIN9)
 *            |3V3             D11| A11 (AIN8)
 * (AIN7)  A8 |AREF(D39)       D10|
 * (AIN3)     |A0  (D14)        D9|
 * (AIN2)     |A1  (D15)        D8| A12 (AIN11)
 * (AIN1)     |A2  (D16)        D7|
 * (AIN0)     |A3  (D17)        D6| A13 (AIN14)
 * (AIN12)    |A4  (D18)        D5|
 * (AIN13)    |A5  (D19)        D4|
 * (AIN4)     |A6  (D20)        D3| A14 (AIN15)
 * (AIN5)     |A7  (D21)        D2|
 *            |5V              GND|
 *            |RES             RES|
 *            |GND              RX|
 *            |VIN              TX|
 *             ~~~~~~~~~~~~~~~~~~~
 */
#define A8  (39)
#define A9  (13)
#define A10 (12)
#define A11 (11)
#define A12 (8)
#define A13 (6)
#define A14 (3)
int analogRead4809(int pin){
  static uint8_t aintab[] = {15,0,0,14,0,11,0,0,8,9,10,3,2,1,0,12,13,4,5};
  int ain = 0;
  if(pin==39) ain = 7;
  else if(pin>=3 && pin<22)
    ain = aintab[pin-3];
  if(ain==0)
    return 0;
  ADC0.MUXPOS = ain;
  ADC0.COMMAND = 1;
  while(!(ADC0.INTFLAGS & ADC_RESRDY_bm))
    ;
  return ADC0.RES;
}
void setup() {
  Serial.begin(9600);
  pinMode(A8,INPUT);
  pinMode(A9,INPUT);
  pinMode(A10,INPUT);
}
void loop() {
  int a8val = analogRead4809(A8);
  Serial.print("A8 :");
  Serial.println(a8val, DEC);
  int a9val = analogRead4809(A9);
  Serial.print("A9 :");
  Serial.println(a9val, DEC);
  int a10val = analogRead4809(A10);
  Serial.print("A10 :");
  Serial.println(a10val, DEC);
  delay(1000);
}

Posted by g200kg : 8:29 AM : PermaLink

2021/03/10 (2021年03月 のアーカイブ)

[Windows] マイク配列とは何なのか?


Windows を使っている人ならデバイスの選択とかで一度くらいは見た事があるかも知れない「マイク配列」という単語。これ何ですかね?

デバイスとして選択すれば普通にマイクとして機能するのでついスルーしてしまいがちで、私も「マイク」と「マイク配列」の違いについて真面目に調べたのは割と最近です。

それで「マイク配列」という言葉だと耳慣れないのだけど、実は英文ドキュメントの方だとこれは「マイクアレイ(Mic Array)」になっています。 いや確かに直訳すればそうか、と思うが「マイクアレイ」ならだいたいの想像が付くのだがなあ。

つまり、複数のマイクを並べて信号処理によって指向性を付けたりする奴ですよね。

「マイク配列」という言い方は Windows のドキュメントくらいでしか見ないので何か別のものだと思っていました。そして「マイク配列」の正体についてちゃんと説明されているドキュメントがほとんど見つかりません。日本語なら「マイクアレイ」の方が通じると思うのだけど今更手遅れかなあ。

結論から言えばユーザーから見た場合は「マイク配列」は単にマイクの一種なので違いについて気にする事は基本的にありません。違いがあるとすれば ( Windows の ) マイク配列は、人の声を録る事を主な目的としてチューニングされているので高音質の音楽を録音するような使い方は向いていない、そして専用のドライバー等(専用の設定アプリとか)で特性(指向性とか)の切り替えの機能があるかも知れない、という事くらいです。

「マイク配列」という言葉が Windows のデバイスの設定画面に登場したのは Windows Vista からになります。マイクアレイの信号処理と言うと外部に DSP を持ってそこで処理するというイメージが強いですが、なぜ OS がマイクの構造であるマイクアレイを気にするようになったのかというと、Windows Vista 以降では、マイクアレイに必要な信号処理をメインの CPU がドライバ内で肩代わりできるようになったからです。

Windows Vista がまだ Longhorn と呼ばれていた頃の Microsoft の資料にこんなのを見つけました。なるほどなあ。これが「マイク配列」の正体か。「マイクアレイ」ならこんな謎単語感はなかったのだがな。
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/ivantash-twen05009_microphone_array_support_in_windows_longhorn.pdf

ノートPCの内部はマイクを設置する環境としては劣悪ですが、とにかく画面の前にいる人の声を録るという用途であればマイクアレイと信号処理で余計なノイズを軽減できるというわけですね。ノートPCにマイクとおぼしき穴が複数付いている機種がありますがこれは別にステレオマイクというわけではなくてマイクアレイで信号処理を行うためのものです(機種によって例外はあるかも知れません)。

なお、マイクアレイにより指向性を持たせる際には、周波数特性は犠牲になります。対象が人の声だからこそ、その周波数帯に合わせてチューニングされているわけで、ハイファイな録音には向いていない事は知っておいたほうが良いでしょう。

※ ところで、上のデバイス一覧の画像で「マイク配列」として見えている BSWHD06 つてこんな感じのすごく安い Web カメラです。

どう見てもマイクアレイには見えないのだが......

分解してみた。やっぱりマイクひとつじゃねーか。

なぜこれが「マイク配列」扱いなのかは謎です。WebCam デバイスのマイクだと何か事情が違うのか? あるいはディスクリプたのコンフィグレーションが適当なのか?

Posted by g200kg : 7:00 AM : PermaLink

2021/02/25 (2021年02月 のアーカイブ)

【広島県安芸高田市】 【ふるさと納税】【10ヶ月定期便】令和2年産 広島県安芸高田市産 精米 ミルキークイーン 6kg 【定期便・米・お米/ミルキークイーン・ミルキ・おこめ・10ヶ月連続・10回・計60kg】


3月に安定版になる Chrome 89 では、フラグ設定なしで使用可能になる ハード系 Web API として Web Serial API と並んで WebHID API があります。
* なぜ "Web HID API" でなくて "WebHID API" なのか? 統一して欲しいな。

先日 Web Serial API を日本語訳したのですが、ついでに WebHID API も日本語にしたので公開しておきます。
Web Serial API と同じく WICG (Web Platform Incubator Community Group) のドラフトレポートです。
分量は Web Serial API と比べてもかなり小規模な内容です。

元文書 : https://wicg.github.io/webhid/

日本語訳GitHub : https://github.com/g200kg/webhid-api-ja/
日本語訳公開URL : https://g200kg.github.io/webhid-api-ja/
手引書 : https://g200kg.github.io/webhid-api-
ja/EXPLAINER.html

Web USB API も GamePad API もあるのに WebHID API は何を目指しているのかと言うと、 USB HID で接続されるニッチなデバイスを Web アプリから動かすのが目的になっています。 GamePad API はあくまでも共通規格を目指しているので各種コントローラーに共通なボタンやらセンサーやらを同じやり方で扱うのが目的ですが、WebHID では機種毎にバラバラなセンサーやバイブレーション機能等を扱うのが目的です。

規格の中身は、はなから機能の共通化は無理なので、コマンドの通り道だけ準備するから機種個別に勝手にやってくれ、みたいな内容で、ほとんど説明なしに、インターフェースとサンプルだけどかんと置いて、この辺りを触るのはどうせマニアックな奴しかいないからこれだけで分かるだろ、的な感じがもうなんか面白いかも知れない。

キーボード側に搭載されているコントローラーのキーマップを Web アプリから書き換える試みなんかもやられている模様です : https://www.eisbahn.jp/yoichiro/2020/12/webvia.html


Posted by g200kg : 3:29 PM : PermaLink

2021/02/19 (2021年02月 のアーカイブ)

Web Serial API 日本語訳 公開


さて、先日 "Web Serial API" について少しだけ書いたのですが、この際なので仕様書を日本語訳しました。
GitHub に置いてあります。

本編の他に付属文書としてもう少し簡単な手引書がありますので、取り合えず動かしてみたい、という場合にはそちらを読むのがはやいと思います:

Web Serial API (日本語訳) Draft Community Group Report
Web Serial API (日本語訳) 手引書

W3C 勧告に至る TR (Technical Report) ではなく、W3C Web Platform Incubator Community Group の Draft Report ですが、3月に安定版になる Chrome 89 以降、フラグ設定なしでデフォルトで使えるようになります。

前も書きましたけど、こういうハード系に近いブラウザ API が色々出てきていると同時にセキュリティ面の風当りは強くなりつつあり、将来的にどうなるかはさっぱりわかりませんが、ハードウェアに手が届く何らかの手段は生き残って欲しいところです。


Posted by g200kg : 7:00 AM : PermaLink

2021/02/16 (2021年02月 のアーカイブ)

Web Serial API


現在 Chrome の安定版のバージョンは 88 ですが、3月に入るとそろそろ Chrome 89 が安定版に降りてくる予定になっています。それで、Chrome 89 では工作系の人にとってはちょっと気になるかも知れない 「Web Serial API」という ブラウザ API がフラグ無しで使用可能になります。まあ今でも "chrome://flags" で "Experimental Web Platform features" を "Enable" にすれば使えるようになるんですけどね。 なお、88 ⇒ 89 で USB デバイスの接続/切断あたりのイベントの仕様に少し変更があるので、本格的に使うなら Chrome 88 でフラグをイネーブルするよりは 89 を待つか Chrome BETA で試した方が良いかも知れません。

Web Serial API の仕様書はこちらにあります。

Web Serial API (W3C 英文)
Web Serial API (日本語訳)

それで、これで何ができるかというと、Web アプリから PC のシリアルポートを直接叩けるようになります。 Ardiono とか micro:bit とかの IoT デバイス等と Web アプリが繋がるというあたりがメインターゲットになるようです。とは言っても、WebUSB API と言う USB に繋がっているものなら何でも制御しようとしているもっとヤバい API が既にあるので、そこまでインパクトは強くないかも知れませんが。

WebUSB との違いとしては今となってはレアかも知れませんが USB 接続じゃないシリアルポートも制御対象になります。それから USB 経由のシリアルポートを Web USB から叩いて動かすのは、シリアルポートの立場から見れば API の上層をスキップして中間層をいきなり叩かれる事になるのでシリアルポートは Web Serial API からシリアルポートとして叩くというのが行儀のよい使い方、という事のようです。

実際に動作する例として googlechromelabs に Web Serial API で作ったシリアルターミナルのデモがあります。
https://googlechromelabs.github.io/serial-terminal/

使い勝手としては、機能をシリアルポートに絞っている分シンプルですね。ポートを requestPort() で選択したら open() / close() する感じで、データの送受信は port オブジェクトの readable、writable 属性からストリームとしてアクセスして行います。また、DTR や RTS 等の制御線は setSignals()、getSignals() でコントロールできます。

なお、最近のブラウザのセキュリティポリシーの強化の流れもあり、最初にポートに接続する際には下のようなプロンプトが表示されるので、ユーザー自身が直接選択の操作を行う必要があります。一度許可したポートは覚えているようなので、USB経由のポートの場合 getPorts() で現在アクセスできるポートの列挙ができます。

この Web Serial API ですが、現在は W3C の "Web Platform Incubator Community Group" で議論されていて、いわゆる W3C 勧告に繋がる標準化のラインには載っていません。なので残念ながら Chrome 以外のブラウザで対応するという話も今の所ありません。特に Apple はセキュリティ面を懸念して Web MIDI にも否定的でしたしね。 こういう物理デバイスに届く API はなかなか標準化される所まで行くのは難しいと思いますが、ちょっと何か簡単に外部デバイスを繋ぎたいという時には重宝しそうだと思います。

Posted by g200kg : 3:26 AM : PermaLink

2021/02/09 (2021年02月 のアーカイブ)

Web Audio API (日本語訳) を更新しました


W3C で公開されている Web Audio API (CR) が 2021年1月14日に更新されましたので、日本語訳も対応して 2021/01/14 版に更新しました。

今回更新した版も W3C 勧告候補 (CR, Candidate Recommendation) 版となっています。

2020年6月に更新されて以来ですが、内容的には細部の説明の追加や修正等で機能面での変更はありません。流石にもうほぼ安定していて今までは更新の度に内容が大移動したりしていたのですが、今回は章立てレベルで変わったのは AudioWorklet 関係で説明が追加になった箇所だけです。

今後の流れとしては、大きな問題が出てこなければ現在の 勧告候補 (CR) から 勧告案 (PR) を経て正式な W3C 勧告となるはずです。

Web Audio API (日本語訳)
Web Audio API : W3C の英語版 ページ

間違いなど見つけたら GitHub issues へお願いします。


Posted by g200kg : 11:09 PM : PermaLink

2021/01/31 (2021年01月 のアーカイブ)

Web Audio API の勧告候補がアップデート


W3C で公開されている Web Audio API の勧告候補 (CR) が 2021年1月14日版にアップデートされています。

アナウンス : https://www.w3.org/blog/news/archives/8867
公開ページ : https://www.w3.org/TR/2021/CR-webaudio-20210114/

前回が 2020年6月11日 版でしたので半年と少しぶりですね。今回も Candidate Recommendation、勧告候補という位置付けなのは変わりません。前回からの変更点はChange Logを見ればわかりますが、GitHub の issue で議論されていた点などが反映されています。

変更点の詳細 :
Change Log : Since Candidate Recommendation of 11 June 2020

基本的に細部の説明の追加や間違いの修正ですので機能的に変わっている点はないと思います。
今後は少なくとも2021年2月15日までは勧告候補のままで更なるフィードバックを求める、という事です。

※ 通して読んでみると worklet の説明とかで今まで "Javascript" だったのが WASM でも行けるぜという事で単に "Script" になってたりしますね。他には最近の流れの関係で "master" という単語を "main" で置き換えたりと機能的には変わりませんが細かな違いは結構あります。


Posted by g200kg : 5:30 PM : PermaLink

2020/12/26 (2020年12月 のアーカイブ)

【中古】Bランク【光シザー HIKARI ヒカリ】 THINNING 721 セニング すき鋏 美容師・理容師 5.9インチ 右利き :H-2477


ネコポス発送 【送料無料】タミヤ TRFダンパー用ショートスプリング (エクストラハード2本) 品番OP-633 (ITEM 53633)

先日組み立てた謎楽器 a.k.a そろばんに塗装を施しました。ちょっとお試しくらいのつもりで始めたので、部分的に積層痕が残っていたり塗料の飛沫を飛ばしてしまったりと粗い部分も多いのですが、手順としてはこれでかなりの物が作れそうです。



PLAフィラメントで出力した塗装前の状態はこれです。

塗装に使用したツール。左からタミヤのポリエステルパテ、サーフェーサー、ベース色のラッカー系スプレー缶(キャメルイエロー)、エアブラシとラッカー系塗料赤、黒、希釈用シンナー、溶剤系トップコートのMr.トップコート(光沢)。

先ずはポリエステルパテを塗ったくってサンドペーパーで磨く事を繰り返して平面を出します。ポリエステルパテは硬化してもまあまあ脆いので観賞用のものならともかく楽器のような手でベタベタと扱うようなものだと盛って新たな形を付けるのは無理がありそうですが積層痕のような凹部を埋めるにはちょうど良い感じです。

PLA樹脂は硬くて削れないとか言いますが、カッターナイフ等でサクサクとは切れないという程度の話でサンドペーパーでガリガリ削るというつもりでやれば結構削れます。平面を出すために削ると造形物のスキンを突き破ってしまう事もあるので造形時にスキン部を厚めに作っておいた方が良いかも知れません。

積層痕やパーツの繋ぎ目が消えたらサーフェーサーを吹きます。ここでまだ凸凹が見つかったりしますのでパテを追加したりしつつ面を整えます。表面の凸凹などはこの段階のものが結局最後まで残りますので先を急がず丁寧にやるのが良いですね。と言いつつ今回は初めてのお試しのつもりだったのでまあまあの所で切り上げてしまったので今になって少し後悔したりしています。

しかしまあ積層痕やパーツの繋ぎ目を感じないものを作ろうと思えば作れるという事がわかったのは収穫ですね。

塗装自体はベース色の黄色をスプレー缶で全体に塗った後、サンバーストのグラデーションはスプレー缶だと無理がありそうなのでエアブラシで赤、黒の順で付けて行きます。エアブラシと言えば数10年前、何万円もするばかみたいな騒音を出すコンプレッサーを買って以来なのですが、今は1万円以下で夜中でも平気で使える充電式エアブラシとかあるんですね。技術の進歩を感じます。

グラデーション付けはとにかく注意深くやらないと失敗します。ほら飛沫とばしちゃった...修復不能。

という事で今回は100%満足という出来ではないのですが、お試しとしては充分じゃないかな。手間がかかるのでお手軽とも言えませんがいかにも3Dプリンタで出力しましたという感じがしないものも作れるという事がわかったので良しとしましょう。

Posted by g200kg : 10:21 AM : PermaLink

2020/12/23 (2020年12月 のアーカイブ)

3Dプリンターでそれなりのものを作る(分割出力編)


ちょっとしたガジェットを作った時の筐体を3Dプリンターで作るというのはもう工作系界隈では良くやられている手法ですが、ネックはやはり造形サイズですかね。家庭用の3Dプリンターの造形サイズはせいぜい1辺が20cm程度なので、作りたいものがあるのだけど造形サイズにおさまらないという事が結構あります。

こういう場合はパーツを分割出力して組み立てる必要があるのですが、何度かやってみてその方式もある程度手順が安定してきたのでメモしておきます。

今回作ったのはこれ。謎楽器 BOU V.2 a.k.a 「そろばん」の筐体です。

ちなみにこの間まではこういう状態でした。

長さ方向は40cm程あります。家の3Dプリンター、QIDI X-Smart では1辺 17cm くらいが限界なので分割が必要になります。

使用するフィラメントはPLAです。今までに色々なフィラメントを試してみましたが最近は結局一番安定しているPLAを使う事が多いです。脆いので弾性を利用した嵌め込みとかは諦めるしかないですが。

データの作成

必要なデータの作成。使うツールや方法は人それぞれだと思いますが、私はBlenderを使っています。まずは組みあがった状態のモデルを作ってそれをコピペと不要部分の削除を繰り返して分割していきます。長さ方向は3分割。中に基板を仕込むので底部分と蓋部分を分けて6分割しました。

ちなみに円部分はBlenderではデフォルトで32角形として扱われますが、ネジ穴程度の大きさで32角形はそんなにプリンターの精度がないし、面ごとの微調整が必要になった時にとても面倒なので12角形で作っています。
そもそも3Dプリンターでは機種や素材にもよりますが、穴は出力すると小さくなりがちで計算通りには行かないので、例えばM3のネジを通すには12角形で何mmの穴を開ければ良いかなどの基本的な確認は予め必要です。

パーツの嵌め込み

組立の手段として考えられるのは「嵌め込み」「接着」「ネジ止め」くらいですかね。
本体構造の長手方向は接続部を次のような形状にして嵌め込みで接続します。


嵌め込むとこんな感じ。予想よりもしっかりした繋ぎになりました。差し込んだだけの状態でも乱暴に扱わなければ普通に使えるくらいの強度はあります。繋ぎ部分はデータとしては遊びなしでジャストで作成して嵌め込む際にカッターとヤスリで微調整する感じです。

パーツ間の接触面積も広く取れるので、仮り組みで確認した後、接着してしまいます。
蓋側の方は多少接触面積を稼いだ上で接着のみで接続します。

接着

PLA樹脂の接着にはアクリル樹脂用接着剤として販売されている「アクリサンデー」が最強という評判がすっかり出来上がっていますのでこれを使います。接着というか溶かしてくっつける溶着なんですが。

成分は二酸化メチレンという事で完全に粘性のない溶剤です。扱いやすいかというと結構そうでもないです。針のようなスポイトが付いているのですが油断して周りに雫を飛ばしてしまうと大抵の樹脂を溶かしてしまうのでえらい事になります。


扱いは慎重に接続面にしみこませる感じで。

接着の強度は流石に最強と言われるだけあってかなりしっかりしています。やや不安のあった蓋側の接着も充分な強度がありそうです。

ネジ止め

底部と蓋部ができたら間に基板を挟み込む形で入れてネジで止める構造になっています。
ネジ止めと言っても考えられる方法は幾つかあります。

  • ネジとナットで挟み込む
  • タッピングネジを使う
  • インサートナットを使う

ネジとナットで挟むのは簡単ですが裏にナットが丸見えなのは避けたいですね。
なので今までタッピングネジを使う事が多かったのですが、脆いPLA相手だとかなり頼りないです。一度組み立てるだけなら良いのですが何度か分解、組立をしているとあっという間にネジがバカになります。

という事で今回はインサートナットの熱圧入にしてみました。
所定のサイズで予め開けて置いた下穴に真鍮製のメネジを半田ごてで熱を掛けながら押し込んでいく方法です。

インサートナットはヒロスギ製のビットインサート等が売られています。
https://hirosugi.co.jp/technical/subjective-basis/hsb.html


これは是非おすすめしたい方法です。下穴のサイズは割と微妙なのでナットの仕様を良く確認してください。
またネジ穴に半田が入るとやっかいなのでコテ先は確実に拭き取っておく事と温度調整できるならPLA樹脂の場合は250℃くらいがベストです。

という事で組みあがりました。

積層痕が気になるとか底部と蓋部の隙間が気になる、とかまだなんとかしたい所はありますが、取り合えずこんな感じになりました。なお、底と蓋の隙間はプリンタの精度の問題ではなく、中に入れた基板の部品と筐体内側の干渉が原因です。なかなか一発で完全なものはできないですね。

もう少し手を入れて次回に続く、かもしれない...

次回 3Dプリンターでそれなりのものを作る(塗装編)

Posted by g200kg : 7:03 PM : PermaLink

2020/11/25 (2020年11月 のアーカイブ)

ライクイット Boots Holder 【like it】ブーツホルダー取替え用脱臭剤 FS-18


最近は中国製の激安プロジェクター製品の勢いが凄いですね。別にプロジェクターのガチ勢でもなく映れば割と何でも良い派なんですが、ちょっと手を出してみようかと評判が安定していた Vankyo V630 という機種を買って天吊りブラケットを 3D プリンタで作ったりしていました。

2万円かそこらという値段でこれならば充分じゃないですかね。安いのは安いなりの理由があるんでしょうけど。

ただ前評判でも一部指摘されていたのですが、ファンの騒音はちょっと気になります。慣れれば気にならないという話もあるようだし個人差もあると思いますが、やはり気になるレベルではあります。それなりに賑やかな場所で使うなら大丈夫だとは思いますが。

という事でどれくらいうるさいのか測定してみました。

プロジェクターの前面から1mの距離です。まずは電源を入れる前は 41.3dBA、静かな住宅街程度の環境です。そして電源投入すると52.3dBA。これがどれくらいかというと普通のオフィスくらいの音、部屋の中で人の話し声が聞こえているくらいのイメージです。

プロジェクターの左側面に吸気口があってフィルターが入っているのですが、風切り音が結構するのでフィルターが無ければ多少変わるかと思って外してみたのですが、52.0dBA、まあ誤差範囲ですね。

さて、じゃあ買ったばかりですが中身を見てみましょうか。開けるには見えているネジの他に出荷時期を示すシールの下にもネジがあります。当然保証は無くなりますが気にしない事にしましょう。

筐体を開けて左半分を覆っている黒いプラスチックのカバーを外すと大体の構造がわかります。単板のカラーLCDにLEDランプから光を当ててミラーで反射して投射レンズに行くという単純な構造ですね。騒音の元であるファンは2個あります。左上の吸気用のシロッコファン、そして右下には見えにくいですが、ヒートパイプ付きのヒートシンクがありその裏側にファンが付いています。ヒートパイプはLEDランプの熱をヒートシンクまで引っ張ってきているようです。

光の経路は黄色の線、空気の流れは赤い線です。空気はLCDの表側と裏側をそれぞれ流れるように分岐しています。

筐体を開けた状態で電源を入れると排気ファンよりも吸気シロッコファンの音が目立ちます。このシロッコファンはネジで固定もされておらずはさみこまれているだけです。

しかしこのシロッコファン、形状がちょっと変わってますね。開口部がやたら大きいです。空気の経路がそれなりに長くて空気を押し込むための圧力が必要なので静圧に有利なシロッコファンなんでしょうけど、効率とかどうなんでしょう。
ひっぱり出してみると定格は 12V 0.30A、高速でぶん回っていて風量もかなりあります。これは速度を落としてみたいですね。筐体内温度が上がって寿命に影響するでしょうけど。

オススメはしませんけど、試しに無理矢理止めてみましょうか。おー、46dBAまで下がりますね。これくらいならまあまあ気にしないでいられるレベルなんですけどね。

うーん、どうするかなあ。


取り合えずこの吸気ファンがなかったら筐体内がどうなるのか確認してみましょうか。

通常状態で排気部あたりの温度を測ると 44℃ くらいで安定します。そして吸気ファンを取っ払って電源を入れてみると 53℃ で安定。流石に常に10度近く温度が上がるのは寿命に影響しますね。LCD付近の空気の流量が極端に減ると思うので LCD のカラーフィルターが焼ける感じでしょうか。まあおもちゃとして 1~2 年程度で使い潰すくらいのつもりならありかも知れません。


他に気になる所は、シロッコファンの出口の近くで風がほぼ U ターンしているのですが、まあ基本構造は仕方ないとしてプラスチックのあまり強くなさそうな構造に風が至近距離で直接当たっているのが良くないかも知れません。少し振動が伝わってしまっている感じがします。

対策として風の通り道にブチルゴムシートを貼ってみます。

写真がなんだかわかりにくいですが、シロッコファンから風を吹き込む入口の所をブチルゴムで覆っています。これで同じ条件で騒音を測ると 51.1dBA。微妙なんですけどまあ悪い方向には働いてないようです。このアプローチでもう少しいけるかと思ってシロッコファンの周辺にかなりベタベタと貼り付けてみましたけどこれ以上の効果はなさそうです。


ここから先はファンの回転を抑えるしか無さそうですね。昔はPCのケースファン制御用に結構色んなファンコントローラがありましたけど、最近はそういうのは減ってるんですかね。Amazonで見つけた何用だかわからないファンコントロールモジュールをシロッコファンに仕込んでいきます。

さて、これで回転数を割と自由に制御できるようになりました。やはりシロッコファンの回転数を下げると騒音レベルはかなり下がりますが、排気ファンは通常通りに回転していますのである程度以下は排気ファンの方が支配的になります。

正確な回転数はわからないので、回転を落としていった時の騒音レベルと温度の関係を何点か測定すると大体の様子がわかります。ファンがフル回転時に44℃だったのが回転を落としていくと温度が上がり始め完全に停止すると53℃になります。温度上昇を3℃くらいまで許容すれば47dBAくらいまで騒音レベルを落とせます。勿論多少なりとも温度上昇の悪影響はあるでしょうけどバランス的にはこれくらいにしたい所ですね。

という事で、騒音レベルは 47.5dBA 排気部の温度が +3℃くらいの所に設定してみました。これがどれくらいかというとエアコンの静音設定くらいの音でしょうか。これ以上の静音化を目指すなら排気ファンの方にも手を入れる事になりますが、実際の所それならまずエアコンをなんとかする等も考えた方が良い気がします。

しばらくこれで様子をみましょうか。


なお、これらの試みは基本的にいじくりまわすのが目的なので、ぶっ壊す覚悟がなければやってはいけません。温度の上昇は確実に劣化の要因になるので、普通に映画を鑑賞する事が目的ならメーカーが保証する基本性能で自分が満足するものを買った方が幸せになれると思います。

Posted by g200kg : 12:39 AM : PermaLink

2020/11/18 (2020年11月 のアーカイブ)

RFリモコンの割と残念な連携


家には結構以前から Nasnos 製の電動カーテンを導入しています。電動ブラインドやカーテンの老舗ブランドです。特に必要があったわけでもないのですが面白そうだったので。これ、以前にニトリの電動カーテンとして OEM 供給されていたようなので同じものを持っている人はそれなりにいるんじゃないでしょうか。

これでリモコンによる開閉とタイマーによる朝夕の開閉が自動化できるのですが、残念ながら Amazon Echo などの AI スピーカーとの連携には対応していません。問題はこのリモコンが良くある赤外線リモコンではなく 315MHz帯を使うRFリモコンという奴で、そのため学習リモコン系のスマートホーム連携用のブリッジ等が使えません。

更にこのリモコン送信機は技適マーク付きの小電力無線機器になっています。こうなると送信機を改造する事もできず、厳密には分解した時点で二度と電波を出してはいけないので、解析もままなりません。AIスピーカーがブームになってから、そのうち Nasnos でも対応するのではないかと思って期待しつつ待っていたのですが、残念ながらその兆しもありません。

そうこうしている内に他社から AI スピーカー対応を謳った電動カーテン製品が出てきたのですが、その中のひとつ、LinkJapan 社製の電動カーテンを見て理解しました。「これメカ的には Nasnos のものと同じ」。つまり Nasnos がメカを供給して LinkJapan が AI スピーカー対応部分を作っている、と。Nasnos ではもう自社製品として AI スピーカー対応をする気がないのではないかという気がします。しかし LinkJapan の製品はもちろん別会社の別製品なので AI スピーカー対応部だけアドオンできるようなものでもなく、LinkJapan に乗り換えるなら Nasnos 製品を捨てて全取っ換えしかないし、ほとんど同じものを買いなおすというのも気が進みません。いや、Nasnos のメカ部分は結構長く使っていますがへたりも無く、優秀なんですよ。

取りうる手段としては物理的にリモコンのボタンを押すか同じ信号を小電力無線ではなく微弱無線で出す機器を一から作るか、くらいしかなさそうです。という事で、残念な方法ではありますが現実的な解としては、物理的にリモコンのボタンを押すというので良いんじゃないかなという気になってきました。スイッチボットのボタンを押す奴なんかもありますしね。

で作ったのがこれ

スイッチボットの指ロボット2つでリモコンのキーを押します。押す位置の調整が思ったより微妙で、輪ゴムで押さえる力の調整をしてなんとか動いている状態です。まあ動いているから良いかと思いますが。


なお、もう少しちゃんとしたものを作るのなら、電波を解析して信号をクローンし、Strawberry Linux で売っているこの辺のモジュールを使って送ればなんとかなるかもしれません :

微弱無線モジュール(315MHz送信)

とりあえず現状のでも動いてるし面倒なのでやらないですけど、誰か作らないですかね。

Nasnos
LinkJapan

Posted by g200kg : 3:11 AM : 【送料無料】 ポータブル90cmステンレススチールグラスリテーナーコードホルダーストラップビーズ付き

2020/11/15 (2020年11月 のアーカイブ)

Philips Hue 分解


家の電球をスマート電球、Philips Hue 化して半年、どうやら10球中の1球が死亡した模様です。せっかくなので中身を見てみたいですね。

1球だけ点灯しない...

Philips Hue の電球です。これは色の変化なしのバージョンです。電球が直接 Bluetooth、Zigbee の電波を飛ばすので技適マークがついています。

かなり硬い材質の半透明部分をなんとか切り取りました。LED がアルミ基板上に24個実装されています

ヘルメット X-802R NOLAN ノーラン 78680 NOLAN ノーラン X-802R用 センターパッド サイズ:M X-802R
土台部分のプラスチックとアルミを無理やり引きはがすと基板が見えてきます。

基板取出し成功。この縦に付いている小さな基板が無線関係のようです。

メイン基板の裏にも結構な部品があります。ちょっと煤けた感じはするけど、見た感じでは特に重大な問題はない様子です。

BT3221 ブラウン ヒゲトリマー 充電式 【個数:1個】BT3221 直送 代引不可・他メーカー同梱不可 ブラウン ヒゲトリマー 充電式
無線基板を拡大。どうやら MCU はシリコンラボの EFR32 Wireless Geckoです。枝番がかすかに読み取れるのは「MG13P8」 かな。なんだか基板のシルクが汚いですね。元々アウトレット品だったせいでしょうか。

無線基板の裏にある上に向かって弧を描いているのがアンテナパターンですね。


中が見たくなったのでいきなりバラしてしまいましたが、冷静になって考えると無線の設定が吹っ飛んだだけで設定をやり直せば正常に戻ったのかも。後の祭り。高い電球なんだから半年で壊れるのはちょっと勘弁です。

Posted by g200kg : 11:03 AM : PermaLink

2020/11/08 (2020年11月 のアーカイブ)

Arduino Nano Everyで高速PWMする例


Arduinoをそのまま組み込みで使う時にNanoを良く使ってたのだけど、そろそろ新機種である Nano Every に主力を移すべきかと思ったりもするのですが、完全に上位互換というわけではないので結局はケースバイケースかなと思います。

Arduino NanoArduino Nano Every
MCUATMega328pATMega4809
Flash32KB48KB
SRAM2KB6KB
EEPROM1KB256B
クロック最大16MHz最大20MHz
USBコネクタUSB MiniUSB Micro
価格純正品なら Nano Every の方が安い。※ただし互換品を探すと Nano の方が安い。
互換性Arduino IDE ベースでの互換性はそこそこ。タイマー周りはちょっと怪しい。


MCUが違うのでしょうがないのだけど、特にレジスタ直叩きでオーディオ周波数の波形生成なんかをしている場合は Every に移植するのは結構面倒です。 という事で、Nano Every で高速PWMによるサイン波生成のサンプルをメモしておきます。

ATMega4809 のタイマーは TCA というのが1つと TCB というのが4つで 328P とは全く構成が異なります。 クロック 16MHz を TCA0 で 512 カウントしてサンプリング 31.25kHz、9bit、これに PWM をかけて 440Hz サイン波を生成します。出力は Pin9 (PB0) 固定。

レジスタの定義はどこかでされているような気がするけど、取り合えず ATMega4809 のデータシートを見ながら全部このファイル内に置いてみました。


// Sin Wave Generation for Arduino-Nano-Every
#define PORTMUXBASE (0x05e0)
#define TCA0BASE (0x0a00)
#define TCAROUTEA (*((uint8_t*)(PORTMUXBASE + 0x04)))
#define TCA0CTRLA (*((uint8_t*)(TCA0BASE + 0x00)))
#define TCA0CTRLB (*((uint8_t*)(TCA0BASE + 0x01)))
#define TCA0CTRLC (*((uint8_t*)(TCA0BASE + 0x02)))
#define TCA0CTRLD (*((uint8_t*)(TCA0BASE + 0x03)))
#define TCA0PER (*((uint16_t*)(TCA0BASE + 0x26)))
#define TCA0CMP0 (*((uint16_t*)(TCA0BASE + 0x28)))
#define TCA0CMP0BUF (*((uint16_t*)(TCA0BASE + 0x38)))
#define TCA0INTCTRL (*((uint16_t*)(TCA0BASE + 0x0a)))
#define TCA0INTFLAGS (*((uint16_t*)(TCA0BASE + 0x0b)))
#define TCA0OVF_vect  _VECTOR(7)
float fdelta = 440.0 * 512 / 16000000.0;
uint16_t phase = 0;
uint16_t delta = (uint16_t)(fdelta * 32768);
int16_t sintab[512];
void setup() {
  for(int i=0; i<512; ++i){
    sintab[i] = 256 + sin(3.14159 * 2 * i / 512) * 255;
  }
  pinMode(9,OUTPUT);                // Pin9=Output
  TCAROUTEA = 0x01;                 // TCA0 PWM to PORTB
  TCA0CTRLA = 0x01;                 // PRESCALE : CLKSEL = fclk_per, peripheral Enable
  TCA0CTRLB = 0x13;                 // CMP0EN, SINGLESLOPE
  TCA0CTRLD = 0;                    // SPLIT mode=off
  TCA0INTCTRL = 0x01;               // Enable TCA0 OVF interrupt
  TCA0PER = 511;                    // Counter period = CLK / 512 (16MHz:31.25kHz or 20MHz:39.0625kHz)
  TCA0CMP0BUF = 100;                // PWM Value (0 - 511)
}
ISR(TCA0OVF_vect){
  TCA0INTFLAGS = 1;                 // Clear Interrupt
  phase += delta;
  if(phase >= 32768)
    phase -= 32768;
  TCA0CMP0BUF = sintab[phase >> 6]; // Set PWM value
}
void loop() {
  // put your main code here, to run repeatedly:
}


結果 : Pin9 出力に RC 一段入れただけなのでキャリアが乗ってしまっているけどこんな感じ。

Posted by g200kg : 10:14 AM : PermaLink

2020/11/04 (2020年11月 のアーカイブ)

組み込み系ArduinoのKiCAD用ライブラリ公開


組み込みにそのまま使えそうな 600mil 幅の Arduino の KiCAD 用のライブラリを 3D モデル付で公開しました。
Arduino Micro、 Arduino Nano、 Arduino Nano Every、 Arduino Pro Mini、 Sparkfun Pro Micro の 5 種類です。

GitHub に置いてあります。
https://github.com/g200kg/kicad-lib-arduino

ライセンスは Creative Commons CC0 にしてありますのでご自由にどうぞ。

KiCAD では GitHub から直接フットプリントを読み込むこともできますが、反応速度の問題もありますので、ローカルにコピーして自分の環境に合わせてパス等を設定する方がおすすめです。

なお、3D モデルは .x3d フォーマットです。KiCAD の推奨フォーマットは .wrl なんですが .x3d でも問題なく読み込めます。Blender でモデルを作る時は .wrl を直接吐けないので .x3d で出力するのが良さそうです。

シンボル

フットプリント

3Dモデル

Posted by g200kg : 2:10 AM : PermaLink



...更に以前の記事...


g200kg