投稿

11月, 2021の投稿を表示しています

Raspberry Pi Picoのステップ実行できる開発環境づくり

イメージ
Raspberry Pi 4とVSCodeを用いてRaspberry Pi Pico(RP2040)の開発環境(C言語)の構築の方法を解説します。最終的にはステップ実行・プロジェクトの新規作成までできるようになります。 対象マイコン: Raspberry Pi Pico(RP2040) 開発PC: Raspberry Pi 4 開発OS: Raspberry Pi OS IDE: Visual Studio Code (VSCode) 開発言語: C言語 1. セットアップスクリプトのダウンロード・実行 ターミナル(LXTerminal)を開いてセットアップスクリプトをダウンロード・実行します。 このブログではホームフォルダ(/home/pi)でセットアップスクリプトを実施したことを前提に説明します。ターミナルを開いた時に、『pi@raspberrypi:~ $』という表示になっていなければ、『cd ~ 』コマンドにてホームフォルダ(/home/pi)に移動してから以下のコマンドを実施してください。 Terminal # このブログではホームフォルダ(/home/pi)にて実施します。 pi@raspberrypi:~ $ cd ~ # wgetでセットアップスクリプトをダウンロード pi@raspberrypi:~ $ wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh # スクリプトに実行権限を与える pi@raspberrypi:~ $ chmod +x pico_setup.sh # スクリプト実行 pi@raspberrypi:~ $ ./pico_setup.sh # スクリプト実行後、再起動 pi@raspberrypi:~ $ sudo reboot このスクリプトの実行で、開発環境のセットアップはほぼ完了です。 pico-sdkやサンプルコードがインストールされる他、コードエディタ・デバッガとしてVisual Studio Codeがインストールされます。 2. ボード上のLEDを点滅させてみる : 既存のUF2ファイルを使用 セットアップスクリプトにより、サンプルコー

RP2040で簡単マルチコアコーディング(C言語)

RP2040はCPU(Cortex-M0+)を2つ内蔵しているデュアルコアのマイコンで、2つの異なるコードを並列に実行することができます。 使い方も簡単で以下のように専用関数の呼び出しで使用できます。 #include "pico/multicore.h" void core1_entry() { // Core1で動作させる処理 ... } // main関数はCore0で動作する int main() { // Core1でcore1_entry関数を動作させる multicore_launch_core1(core1_entry); // 以下Core0で動作させる処理 ... } "pico/multicore.h" を使用するために、『CMakeLists.txt』の『target_link_libraries』に『pico_multicore』を追記します。 CMakeLists.txt ・・・ # pico_multicore を追記 (『YourProjName』はプロジェクト名に変更してください) target_link_libraries(YourProjName pico_stdlib pico_multicore) ・・・ マルチコアプログラミングでは、複数のコアから同時に同じメモリや同じIO等にアクセスしないように排他処理が必要です。 ここでは semaphore_t を使ったセマフォによる排他処理を使用します。 #include "pico/multicore.h" // 排他処理用のセマフォ static semaphore_t sem; void core1_entry() { // Core1で動作させる処理 // セマフォから許可を要求。許可が得られるまで待機 sem_acquire_blocking(&sem); // ここでCore0と共用するメモリ・IO等ハードウェアにアクセスする処理を記述 ... // 完了後、セマフォ解放。Core0を止めるのでなるべく早く解除する。 sem_release(&sem)

IZOKEEの圧着ペンチでXHコネクタとPHコネクタを作る方法

イメージ
XHコネクタとPHコネクタを作成する為に、Amazonでコスパが良いと思われるIZOKEEの圧着ペンチを購入したのですが、こちらは同時圧着ペンチという被服と心線を一回で圧着可能なもので、初見では何をどうすれば良いか解りにくかったので使い方を紹介します。 IZOKEEの圧着ペンチでXHコネクタを作る方法 電線は直径1.2mmの物を使用します。 被覆を適当に剥きます。ワイヤストリッパーがあれば使用します。ワイヤストリッパーが無ければカッターで慎重に剥きます。切り口が直角になるようにします。剥き終わったら芯線を軽く指でねじってまとまりを出します。 適当に被服を剥く。被服の切り口は直角になるように。 剥き出しになる芯線の長さがピッタリ3mmになるように慎重にカットします。(3.0mm〜2.8mm位までの間なら許容できると思います) カットが終わったら芯線を軽く指でねじってまとまりを出します。 心線は3mm露出するように正確にカット XHコンタクトに電線を当てて、被覆と電線を圧着するのに問題無い長さ、形状である事を確認します。この時、電線を完全に奥まで当てます。(被服圧着部と心線圧着部が分からない場合は、7番目の圧着完了後の画像を先に確認してください) 電線を奥まで当てて形状を確認 XHコンタクトを圧着ペンチの先端から2番目にセットします。圧着ペンチは被覆圧着部と芯線圧着部で完全に閉じたときの隙間のサイズが異なり、被覆圧着部のほうがより大きく隙間ができるようになっています。その為、圧着ペンチの被覆圧着部と芯線圧着部で段差があるのですが、その段差の壁にXHコンタクトの被覆圧着金具が当たるようにセットします。ピンセットを使うと楽かもしれません。 XHコンタクトをセット。段差の壁に被服圧着金具をひっかける。 圧着ペンチでXHコンタクトの先端の返しの部分を潰さない位置にある事を確認しながら、XHコンタクトを軽く挟む位置まで握り込みます。 XHコンタクトを軽く挟む位置まで握る。返しの部分はギリギリ挟まれないはず。 電線を奥まで差し込み、圧着ペンチを完全に握り込みます。 後ろの方から電線を奥まで差し込んでいる。完全に握り