aimdevel’s blog

勉強したことを書きます

Raspberry Pi PicoとZephyr OSを使用したI2C LCD1602の実験

概要 前回から引き続き、ラズパイ入門キット「SunFounder Da Vinci Kit for Raspberry Pi」に入っている機器をRaspberr Pi Pico + Zephyr OSで動かしてみた。 今回は、I2C LCD1602を試した。 環境 I2C LCD1602を使用する。 Raspberr Pi Picoとを以下のように…

Zephyr OSでRaspberry Pi Picoを使用して74HC595と7セグメントディスプレイを接続する方法

概要 前回から引き続き、ラズパイ入門キット「SunFounder Da Vinci Kit for Raspberry Pi」に入っている機器をRaspberr Pi Pico + Zephyr OSで動かしてみた。 今回は、Segment Displayを試した。 環境 74HC595と7セグメントディスプレイを使用する。 Raspber…

Raspberry Pi PicoのRGB LED実験 with Zephyr OS

概要 ラズパイ入門キット「SunFounder Da Vinci Kit for Raspberry Pi」に入っている機器をRaspberr Pi Pico + Zephyr OSで動かしてみた。 今回は、RGB LEDを試した。 環境 Raspberr Pi PicoとLEDを以下のように接続する。接続方法はSunFounderのチュートリ…

Raspberry Pi Pico + Zephyr OSでサーボモータを回す

概要 概要 作業手順 デバイスツリーを追加する。 ビルドする 基板に転送して動作を確認する。 ソースコード確認 デバイスツリー servo pwm_ch4b_default pwm サンプルコード 1. デバイスツリーから情報を取得 2. pwm構造体をバリデート 3. pwmのパルス幅を設…

Raspberry Pi PicoでZephyr OSを動かしてみた

概要 環境 作業手順 開発環境構築 アプリをビルド 実行 ソースコード確認 aliasでデバイスツリーのノード識別名を取得 gpioノードの構造体を取得 gpioの構造体をvalidate gpioピンを設定 gpioのon/offを切り替え まとめ 概要 Raspberry Pi Pico上でZephyr OS…

yoctoのレシピでkernel configを変更する方法

概要 実験環境 使用結果 1. KERNEL_FEATURESを設定する方法 2. 独自のcfgファイルを使用する方法 3. defconfigをレシピから渡す方法 比較 まとめ 参考情報 概要 yoctoでlinux kernelをビルドする際にconfigを変更する方法は複数あり、 どの方法を使えばよい…

GitHubのDependabot alertに対処する

前に書いたRustのコードをGitHubにおいていたら、脆弱性情報が通知されていたので、それに対応した。 別のところで同じ対応をするときに困らないように、行った作業をまとめておこうと思う。 対応したリポジトリは以下。 GitHub - aimdevel/part-mount: tool…

rust初心者がmoveではまった

rustでツールを作成する際にはまった箇所をメモしておく。 以下のドキュメントを参照しながら自分の理解をまとめる。 The Rust Programming Language 日本語版 - The Rust Programming Language 日本語版 何にはまったのか? 結論から言うと、値の所有権を理…

sdカードイメージのパーティションをマウントするツール作った

sdカードイメージファイルの特定のパーティションをマウントするツールを作成した。 作ろうと思った背景 ラズパイOSイメージなどのイメージファイル内のパーティションをマウントする方法は以下などがある。 losetupでパーティションをloopデバイスとしてみ…

vscodeのYocto変数hover機能作った

yoctoのレシピ作成に使用する変数のhover機能を、vscodeの拡張機能として作成した。 作ったものは以下。 GitHub - aimdevel/yocto-variable-hover: vscode extension that enables hover of yocto variables 背景・目的 yoctoのレシピを作成したり、設定を変…

TypeScript+SequelizeでSQLiteを使う

概要 vscodeの拡張機能でデータベースを使いたくなったため、TypeScriptからデータベースを使えるSequelizeを試してみた。 使用したデータベースはSQLiteで、以下のページを参考に作業した。 Getting Started | Sequelize インストール $ apt update $ apt i…

containerd+wasmを動かしてみた。

最近こんな記事を見つけたので、この機会にcontainerd+wasmを動かしてみた。 www.publickey1.jp 概要 以下のページの手順に従ってサンプルを実行を試す。 その後、rustのHello Worldを動かす。 GitHub - containerd/runwasi: Facilitates running Wasm / WAS…

yoctoのcve-checkを試してみる

前から存在だけ知っていたyoctoのcve-checkを実際に動かしてみる。 作業概要 yoctoのレイヤmeta-raspberrypiの最小構成でcve-checkを実施し、どのような結果が得られるか確認する。以下のページの「3.34 Checking for Vulnerabilities」 を参考に作業する。 …

vscode拡張機能としてhoverを実装する

概要 ベースとするソースコードの入手 importの追加 初期化処理の編集 hover用関数を実装 hover用関数をサーバに登録 Hoverレスポンスの構造 概要 vscode拡張機能にhoverを実装するために以下を行う。 今回はlanguage serverとして実装する。 * ベースとする…

bitbakeのオペレータ文法を調べる

yoctoのレシピを書く際に変数設定のオペレータの意味を正確に理解できていなかったため調べてまとめ、手元で動作確認を行った。 動作確認の方法は、local.confに変数を記述して、それがどのように反映されるかをbitbake-getvarで確認するという手順を使った…

wsl2でyoctoを使う

概要 ネイティブlinuxが推奨されるyoctoだが、windowsのwsl2上でも動作するのか試した。 今回はラズパイ用OSイメージのビルドが成功するところまで確認した。 目次 概要 目次 環境の準備 wsl2インストール wsl2追加設定 vscodeに拡張機能をインストール ビル…

vscode拡張機能のsemantic highlightを理解する

vscodeのhighlight拡張機能勉強の続きです。 今回はsemantic highlightの作り方をサンプルコードを読むことで理解します。 semantic highlightを使用すると、language serverからhighlightの設定をすることが可能になるので、単純な正規表現でのマッチング以…

syntax highlightのvscode拡張機能を作る

vscodeでソースコードなどを表示すると、キーワードなどに色がついて表示されます。 ただし、色が付くのはvscode側がそのプログラミング言語に対応している必要があり、例えば社内の独自言語などがあった場合には当然vscodeで表示しても全く色が付きません。…

Issue作成をトリガーにしてPull Requestを作成する

概要 ソースコードの特定の文字列を置き換えるような修正、例えばバージョン番号の変更など、を手動で行うのは手間もかかるし作業ミス発生の可能性もあると思います。 そこで、今回は以下が自動で行われるGithub Actionsのworkflowを作成しました。 Issueのd…