Hello Uchan's Blog

uchanの個人ブログ「うーろぐ」です

Access Counter

サイト全体:0000013186

うーろぐの特別ページ一覧

うーろぐの記事一覧(新着順)

2024-10-01 17:21:20

Gowin FPGA の OPEN_DRAIN の挙動

Tang Nano 9K に搭載されている Gowin の FPGA(GW1NR-9)について、I/O に設定可能な OPEN_DRAIN というオプションの挙動を確認しました。結論としては、OPEN_DRAIN の ON/OFF によらずプルアップ抵抗の有無が選択できること、0 を出力すると 0V が出力されることが分かりました。

2024-09-29 21:14:23

微小電流計の設計:主要部品の選定

10pA の分解能で ±20nA まで計れる電流計を設計してみました。本記事ではその設計の一部を紹介します。本記事で紹介する設計は、トランジスタ技術 2024 年 8 月号別冊付録「保存版 実験お役立ち回路の製作」の「第 3 章:分解能 1pA!微小 1nA 電流測定回路」(以下「トラ技の記事」)を大いに参考にしています。

2024-07-28 16:25:57

CH32V003 の IO プルアップ設定は周辺機能でも有効

多くのマイコンと同様、CH32V003 の I/O ピンにはプルアップ/プルダウン抵抗が内蔵されています。それらが GPIO 以外の周辺機能使用時にも有効なのかを調べてみました。結論は周辺機能でも有効です。

2024-07-26 15:34:06

CH32V203 の RTC の使い方

CH32V203 には RTC(Real-Time Clock)が搭載されています。時刻を利用するような電子工作をしたいなと思い、この RTC の使い方を調べてみました。

2024-07-17 21:12:16

ComProc プロジェクト

筆者(uchan)が主導する ComProc プロジェクトの各種情報をまとめるためのページです。載せるべき情報が出るたびに追記していこうと思います。

ComProc CPU Board Rev.4の電源を入れた状態で斜めから見た
2024-05-17 14:05:50

IB-DUAL の Circuit Python 環境を開く方法

IoTマルチ無線ユニット IB-DUAL の説明書によると「本製品を PC に接続しコンソールに Ctrl+C を(動作中は 2 回連続)入力することで、コードを 1 行ずつ入力して即実行できる REPL での動作も可能です。」とありますが、具体的な方法がイマイチ分からなかったので探求しました。

2024-05-10 10:27:55

Raspberry Pi Pico と Arduino IDE で割り込みを使うとハングアップ

この記事では Raspberry Pi Pico + Arduino IDE の組み合わせで割り込みを使うとハングアップする現象の原因を説明します。結論からいえば、割り込みハンドラ内で digitalWrite を使うとハングアップすることがあります。この原因は digitalWrite がメモリ確保(newmalloc)を行うことです。

2024-04-13 21:35:11

プログラミングで 3D モデリングの魅力

筆者は最近、プログラミングによって 3D モデルを作っています。3D プリンタで印刷するモデルや KiCad の 3D ビューで表示するためのモデルです。本記事では、Autodesk Fusion 等のグラフィカルな 3D CAD ではなく、プログラミングによってモデルを作ることの魅力を語ってみたいと思います。

2024-03-14 15:02:36

ComProc プロジェクトの進化アイデア

ComProc プロジェクトは筆者が主導するコンパイラと CPU を両方作るプロジェクトです。

ComProc CPU は当初はシンプルでしたが、タイマや UART 通信などの周辺機能が追加されていき、この春に A/D コンバータも仲間入りしました。そのため、最近では ComProc マイコン(MCU)と呼ぶことも多くなってきました。この記事では、マイコンとしてさらに高性能化・高機能化するために欲しい機能を考えてみました。

2023-11-17 21:23:25

ふじみんロボット修理プロジェクト その2

前回はふじみんロボットの大まかな構造やモータードライバの型番を調べました。今回はその続きで、ロボットの制御方法を解析していきます。まず回路図を復元し、次にモータードライバの制御信号などから制御方法を推測します。

2023-11-10 16:42:17

ふじみんロボット修理プロジェクト

ふじみんロボットの調子が悪いということで電子工作ラボに運び込まれました。動くには動くけど、ふとした瞬間に止まってしまう、というのです。このロボットの回路を調査し、復旧を試みることになりました。

修理が完了するまで、進捗があるたびに記事化していこうと思います。本記事はシリーズ 1 回目ということで、現在のロボットの状態を観察していきます。

台座に鎮座するふじみんロボット
2023-09-18 16:58:23

PCBgogo で基板を作った

PCBgogo さんからプリント基板をご提供いただきました。作った基板の用途や製造品質について紹介します。基板提供のきっかけは、PCBgogo の広報担当の方が私の記事 CH32V003 マイコンの PA1 や PA2 が使えないときに確認すること by uchan | elchika のコメント欄にで連絡をくださったことです。技術記事を継続的にアウトプットしておくと、いいことがありますね。

斜めから見たX86-USBCOM-1基板の裏面
2023-03-05 17:36:10

Arduino Due のメモリ消費量を測定する

Arduino Due の実行時のメモリ消費量を確認したいと思い、方法を調査しました。スタック領域とヒープ領域の消費量を測定する方法を紹介します。メモリ量が限られる Arduino の別機種(Arduino Uno など)への移植のために、メモリ消費量を削減する場合などに役立つと思います。

2023-02-27 15:26:50

圧着ペンチ PA シリーズをレビュー

株式会社エンジニア製の圧着ペンチ PA-21 と PA-24 を買って使ってみました。圧着品質の参考にしてください。なお、筆者は圧着の専門家ではなく、正しい圧着が出来ている保証はありません。

AWG22~28をQIコネクタに圧着
PA-24 で AWG #22~#28 を QI コネクタに圧着してみた

上図は左から AWG #28、#26、#24、#22 の電線を QI コネクタのコンタクトに圧着したものです。使った工具は PA-24 です。ダイス選択は後述します。

2023-02-18 12:57:30

PIC で FVR を超えた電圧を印加しても問題がない

PIC16F1786 のアナログ入力端子に、FVR を超える電圧を印加したときの挙動を測定しました。ADC の VREF+ には FVR(×4 モード、4.096V)を設定しています。

結果、FVR を超える電圧を印加した端子は ADC の最大値に張り付き、その他の端子の ADC 値には特に影響を及ぼさないことが分かりました。

2023-02-16 11:30:35

オペアンプ電流制御では突入電流に注意

オペアンプを使うと手軽に電圧で制御できる定電流回路を作ることができます。原理は簡単ですが、使い方によっては大きな突入電流により素子が破壊されたり回路が不安定になることがあります。この記事ではどんな場合に突入電流が流れるかを見て、その対策を考えてみます。

2022-12-31 15:33:02

NextPCB 基板発注記

NextPCB さんからプリント基板をご提供いただいたので、発注から到着までの経緯や製造品質について紹介してみようと思います。基板提供のきっかけは NextPCB の広報担当の方が elchika で私の記事を読んだことだそうです。ありがたや~。この記事はスポンサードではありますが、悪かったところも含めて正直に報告します。

2022-12-28 06:45:36

Analog Discovery 2の波形発生器出力が安定するまでの時間

Analog Discovery 2 には波形発生器(Waveform Generator)とオシロスコープ(Oscilloscope)が搭載されており、任意の周波数・電圧の波形を出力したり、回路の電圧波形を観測したりできます。JavaScript による自動化機能を使えば、波形発生器の出力設定を変えつつオシロスコープで自動的に観測するようなことが可能です。例えば MOSFET の Id-Vgs 特性の測定ではゲート電圧を変えながらドレイン電流を測る必要がありますが、自動化機能を使って「ゲート電圧の変更」と「ドレイン電流の測定」を自動的に行えば、素早く多くのデータを得ることができます。

本記事では自動化の際に問題になり得ることとして、波形発生器の出力電圧が安定するまでの時間を検証しました。スクリプトから出力電圧を設定しても、実際の出力がその電圧になるまでには多少時間がかかります。どの程度の時間を待てば出力が安定するのでしょうか。

2022-11-17 16:16:34

負荷が軽いとは負荷抵抗が小さいこと?

電子回路によく「負荷抵抗」や、単に「負荷」という言葉が良く出てきます。関連して「負荷が軽い」や「負荷が重い」という表現も良く見ます。負荷が軽いと言った場合、それは負荷抵抗が小さいことを意味するのでしょうか。大きいことを意味するのでしょうか。この記事ではアンケートや文献の調査を行い、人々がどんなイメージを抱くのかを調査しました。

結論としては人によってイメージが異なることが分かりました。誤って伝わる可能性のある「負荷が軽い」というような表現の代わりに「負荷抵抗が大きい(小さい)」とか「負荷電流が少ない(多い)」と表現した方が良いかもしれません。

2022-11-15 06:42:02

Raspberry Pi の UART で MIDI 送信

MIDI 信号の送受信は基本的には UART 機能を使うだけなので簡単です。しかし、よくある MIDI の記事では大体 5V で MIDI 信号を生成している一方、Raspbery Pi の GPIO 入出力電圧は 3.3V ですので、それを解決するのがこの記事のキモです。結論から言えばアップデートされた MIDI 規格に 3.3V での送受信回路が規定されており、その通りの回路で無事に動きました。

2022-10-11 06:53:37

ステッピングモータ加速のためのパルス速度計算

この記事ではステッピングモータを加減速させる場合のパルス速度を計算してみます。こんな話題はきっと他に解説してる記事や書籍があろうかと思いますが、ぱっとは見つからず自分で計算してみたのでメモ程度に残しておきます。紹介する計算式は、マイコンの非力な計算能力でもタイマに設定する値を計算するのに十分計算可能な速さであることを検証済みです。

2022-10-09 09:26:57

リンク集

uchan の独自の判断で面白い、あるいは役立つサイトを集めようと思います。掲載しているコメントは uchan の勝手なコメントです。リンク先サイトの公式見解ではありませんのでご注意ください。

2022-10-06 10:42:13

ブログの数式対応

KaTeX を使って数式(LaTeX 記法)の表示に対応させました。テキストで $E = mc^2$ と書くと次のように表示されます:$E = mc^2$

2022-09-30 04:37:45

ステッピングモータを三角波で回してみた

ユニポーラステッピングモータ SPG27-1101 を矩形波と三角波(を模した簡易 PWM 信号)で駆動し、コイルに流れる電流を計測してみました。三角波で制御した方が駆動音が小さくなりました。

駆動音を録音してみましたので興味のある方は聞いてみてください。 SPG27-1101を矩形波と三角波で回したときの駆動音 - YouTube

2022-09-28 09:42:15

ブログの画像対応

そろそろ記事に画像を表示する方法を考えないといけないですね……。この自作ブログの記事は Obsidian で書いているので、その画像管理方式と互換性を保ったまま、自作ブログにも画像を表示したいです。

まずは Markdown の画像記法 ![夕方に撮影した東京駅の丸の内駅舎 | 100](夕方の東京駅丸の内駅舎.jpg) を考えます。この記法に対しては、alt 属性に「夕方に撮影した東京駅の丸の内駅舎」が設定された <img> タグを出力します。こんな感じに: 夕方に撮影した東京駅の丸の内駅舎

2022-09-23 09:36:44

STM32CubeIDE で PRIu8 が使えない

STM32CubeIDE 1.10.1 で作成した C 言語プログラムにおいて PRIu8 マクロや %hhu 書式指定子が使えないことが分かりました。また、その解決方法も分かりましたので記事にまとめてみました。

2022-09-17 13:41:17

STM32CubeIDE で生成されたファイルのライセンス

STM32CubeIDE 1.10.1 で生成したコードには次のような著作権表示が含まれます。それを読むと、ルートディレクトリの LICENSE というファイルに従ってライセンスされる、とあるのですが、LICENSE ファイルは生成されません。いったい、どのように解釈したらいいのでしょう?

2022-08-17 16:43:01

Rust の時刻ライブラリ選定

Rust で時刻文字列をパースしたくなったのでどんなクレートがあるかを調べました。strptime のようなことが出来れば満足です。

適当にググると Rustで日時を扱う - QiitaRustの日付時刻処理(stdtime, time, chrono) - 簡潔なQ などがヒットしました。これらは共通して Chrono を使いましょうと主張しています。Chrono が Rust で時刻表現を取り扱うデファクトスタンダードのようです。

2022-07-04 23:23:22

OGP の設定方法

Open Graph protocol は SNS で記事をシェアした際、タイトルや概要文、サムネイル画像等を適切に表示するための仕組みだそうです。uchan は今ちょっとこの仕組みを調べただけなので詳しくないのですが、とにかく、各記事の HTML にこの仕組みを導入することで、Twitter や Facebook で良い感じに記事がシェアできるみたいです。

設定方法は主に上記公式サイトと OGPの正しい設定方法を解説!Facebook・Twitter対応 という記事で調べました。

2022-06-04 22:10:12

記事データの設計

ブログエンジンを作るにあたり、記事データをどのように作り、管理するかを決めます。記事のマークアップ言語は Markdown にしようと思います。特別な Wiki 文法のようなものを独自に考案するのも面白いですが、Markdown を採用するメリットは次のようにたくさんあります。

2022-05-07 23:05:34

自作ブログ始めました

実はこの記事を書いているのは、まだブログシステムが完成していないときです。完成どころか、CGI でハローワールドをやってみた段階です。だから、ブログシステムがお披露目できるまで作れるかどうかさえ分からないときに書いてることになります。