PCBgogo で基板を作った
PCBgogo さんからプリント基板をご提供いただきました。作った基板の用途や製造品質について紹介します。基板提供のきっかけは、PCBgogo の広報担当の方が私の記事 CH32V003 マイコンの PA1 や PA2 が使えないときに確認すること by uchan | elchika のコメント欄にで連絡をくださったことです。技術記事を継続的にアウトプットしておくと、いいことがありますね。
PCBgogo さんからプリント基板をご提供いただきました。作った基板の用途や製造品質について紹介します。基板提供のきっかけは、PCBgogo の広報担当の方が私の記事 CH32V003 マイコンの PA1 や PA2 が使えないときに確認すること by uchan | elchika のコメント欄にで連絡をくださったことです。技術記事を継続的にアウトプットしておくと、いいことがありますね。
CH32V003J4M6 は秋月電子でたった 40 円で買える、STM32 風の周辺機能を持ったマイコンです。このプログラムを開発していたところ、PA1 や PA2 から信号が出せないことに気付いたので、原因を探求しました。本記事では原因、回避策、原因調査の詳細を説明します。
Arduino Due の実行時のメモリ消費量を確認したいと思い、方法を調査しました。スタック領域とヒープ領域の消費量を測定する方法を紹介します。メモリ量が限られる Arduino の別機種(Arduino Uno など)への移植のために、メモリ消費量を削減する場合などに役立つと思います。
株式会社エンジニア製の圧着ペンチ PA-21 と PA-24 を買って使ってみました。圧着品質の参考にしてください。なお、筆者は圧着の専門家ではなく、正しい圧着が出来ている保証はありません。
上図は左から AWG #28、#26、#24、#22 の電線を QI コネクタのコンタクトに圧着したものです。使った工具は PA-24 です。ダイス選択は後述します。
PIC16F1786 のアナログ入力端子に、FVR を超える電圧を印加したときの挙動を測定しました。ADC の VREF+ には FVR(×4 モード、4.096V)を設定しています。
結果、FVR を超える電圧を印加した端子は ADC の最大値に張り付き、その他の端子の ADC 値には特に影響を及ぼさないことが分かりました。
オペアンプを使うと手軽に電圧で制御できる定電流回路を作ることができます。原理は簡単ですが、使い方によっては大きな突入電流により素子が破壊されたり回路が不安定になることがあります。この記事ではどんな場合に突入電流が流れるかを見て、その対策を考えてみます。
NextPCB さんからプリント基板をご提供いただいたので、発注から到着までの経緯や製造品質について紹介してみようと思います。基板提供のきっかけは NextPCB の広報担当の方が elchika で私の記事を読んだことだそうです。ありがたや~。この記事はスポンサードではありますが、悪かったところも含めて正直に報告します。
Analog Discovery 2 には波形発生器(Waveform Generator)とオシロスコープ(Oscilloscope)が搭載されており、任意の周波数・電圧の波形を出力したり、回路の電圧波形を観測したりできます。JavaScript による自動化機能を使えば、波形発生器の出力設定を変えつつオシロスコープで自動的に観測するようなことが可能です。例えば MOSFET の Id-Vgs 特性の測定ではゲート電圧を変えながらドレイン電流を測る必要がありますが、自動化機能を使って「ゲート電圧の変更」と「ドレイン電流の測定」を自動的に行えば、素早く多くのデータを得ることができます。
本記事では自動化の際に問題になり得ることとして、波形発生器の出力電圧が安定するまでの時間を検証しました。スクリプトから出力電圧を設定しても、実際の出力がその電圧になるまでには多少時間がかかります。どの程度の時間を待てば出力が安定するのでしょうか。
先日 elchika AWARD 2022 | elchika を受賞しました。賞品として reTerminal をいただいたので、本格的な製作に使う前にとりあえずセットアップと L チカ1をやってみました。
電子回路によく「負荷抵抗」や、単に「負荷」という言葉が良く出てきます。関連して「負荷が軽い」や「負荷が重い」という表現も良く見ます。負荷が軽いと言った場合、それは負荷抵抗が小さいことを意味するのでしょうか。大きいことを意味するのでしょうか。この記事ではアンケートや文献の調査を行い、人々がどんなイメージを抱くのかを調査しました。
結論としては人によってイメージが異なることが分かりました。誤って伝わる可能性のある「負荷が軽い」というような表現の代わりに「負荷抵抗が大きい(小さい)」とか「負荷電流が少ない(多い)」と表現した方が良いかもしれません。
MIDI 信号の送受信は基本的には UART 機能を使うだけなので簡単です。しかし、よくある MIDI の記事では大体 5V で MIDI 信号を生成している一方、Raspbery Pi の GPIO 入出力電圧は 3.3V ですので、それを解決するのがこの記事のキモです。結論から言えばアップデートされた MIDI 規格に 3.3V での送受信回路が規定されており、その通りの回路で無事に動きました。
この記事ではステッピングモータを加減速させる場合のパルス速度を計算してみます。こんな話題はきっと他に解説してる記事や書籍があろうかと思いますが、ぱっとは見つからず自分で計算してみたのでメモ程度に残しておきます。紹介する計算式は、マイコンの非力な計算能力でもタイマに設定する値を計算するのに十分計算可能な速さであることを検証済みです。
uchan の独自の判断で面白い、あるいは役立つサイトを集めようと思います。掲載しているコメントは uchan の勝手なコメントです。リンク先サイトの公式見解ではありませんのでご注意ください。
KaTeX を使って数式(LaTeX 記法)の表示に対応させました。テキストで $E = mc^2$
と書くと次のように表示されます:$E = mc^2$
ユニポーラステッピングモータ SPG27-1101 を矩形波と三角波(を模した簡易 PWM 信号)で駆動し、コイルに流れる電流を計測してみました。三角波で制御した方が駆動音が小さくなりました。
駆動音を録音してみましたので興味のある方は聞いてみてください。 SPG27-1101を矩形波と三角波で回したときの駆動音 - YouTube
そろそろ記事に画像を表示する方法を考えないといけないですね……。この自作ブログの記事は Obsidian で書いているので、その画像管理方式と互換性を保ったまま、自作ブログにも画像を表示したいです。
まずは Markdown の画像記法 
を考えます。この記法に対しては、alt 属性に「夕方に撮影した東京駅の丸の内駅舎」が設定された <img>
タグを出力します。こんな感じに:
STM32CubeIDE 1.10.1 で作成した C 言語プログラムにおいて PRIu8
マクロや %hhu
書式指定子が使えないことが分かりました。また、その解決方法も分かりましたので記事にまとめてみました。
STM32CubeIDE 1.10.1 で生成したコードには次のような著作権表示が含まれます。それを読むと、ルートディレクトリの LICENSE というファイルに従ってライセンスされる、とあるのですが、LICENSE ファイルは生成されません。いったい、どのように解釈したらいいのでしょう?
Rust で時刻文字列をパースしたくなったのでどんなクレートがあるかを調べました。strptime
のようなことが出来れば満足です。
適当にググると Rustで日時を扱う - Qiita や Rustの日付時刻処理(stdtime, time, chrono) - 簡潔なQ などがヒットしました。これらは共通して Chrono を使いましょうと主張しています。Chrono が Rust で時刻表現を取り扱うデファクトスタンダードのようです。
Open Graph protocol は SNS で記事をシェアした際、タイトルや概要文、サムネイル画像等を適切に表示するための仕組みだそうです。uchan は今ちょっとこの仕組みを調べただけなので詳しくないのですが、とにかく、各記事の HTML にこの仕組みを導入することで、Twitter や Facebook で良い感じに記事がシェアできるみたいです。
設定方法は主に上記公式サイトと OGPの正しい設定方法を解説!Facebook・Twitter対応 という記事で調べました。
ブログエンジンを作るにあたり、記事データをどのように作り、管理するかを決めます。記事のマークアップ言語は Markdown にしようと思います。特別な Wiki 文法のようなものを独自に考案するのも面白いですが、Markdown を採用するメリットは次のようにたくさんあります。
実はこの記事を書いているのは、まだブログシステムが完成していないときです。完成どころか、CGI でハローワールドをやってみた段階です。だから、ブログシステムがお披露目できるまで作れるかどうかさえ分からないときに書いてることになります。