フォト
2023年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« 2021年1月 | トップページ | 2021年3月 »

2021年2月の5件の記事

2021年2月24日 (水)

CMakeの調査

Raspberry Pi PicoのC++開発環境を理解するにあたり、
CMakeの理解が必要と分かり、調査&勉強中です。

その過程で、かみのさんが、まとめている「勝手に作るCMake入門」が大変参考になりました。
また、@shohiroseさんのまとめ解説「CMakeの使い方」も大変参考になりました。
こういった解説は非常にありがたいです。感謝です..

ウィキペディアのCMakeの説明を最初に読んだのですが、意味不明でした..

  参考になった記事
     ■ かみのメモ - 勝手に作るCMake入門 その1 基本的な使い方
     ■ Qiita @shohirose - CMakeの使い方(その1)
     ■ Qiita @osamu0329 - CMake : out-of-sourceビルドで幸せになる

実際にWindows 10 環境で試してみました。
標準出力に"こんにちは、世界!"を出力するプログラムを作成してみます。
まずは、D:\work\sample に2つのファイルを作成。
 ・hello.cpp            C++ プログラム本体
 ・CMakeLists.txt    CMakeプロジェクト設定ファイル

   hello.cpp
  01_20210224091101

   CMakeList.txt
  02_20210224091101  

 ビルド作業はコマンドプロンプト 「Developer Command Prompt for VS2019」上で行います。
  04_20210224092501

次のコマンドを順番に実行します。
 > mkdir build
 > cd build
 > cmake ..
  05_20210224093301

build下を見ると、VC++関連のプロジェクトファイルが生成されているようです。
  06_20210224093901

次に生成されたプロジェクトでビルドします。
 > cmake --build .
  08_20210224094501

これで、hello.exeが生成されました。
VC++ のビルド環境の設定などを全く意識せずに、ビルド出来ました。
これは、なかなかいいですね~ 
クロスコンパイルに適している雰囲気をつかめました。
作成した2つのファイルをUbuntuに持って行っても、ビルド出来ると思います。
これは、よい。もっと学ばねば..



2021年2月18日 (木)

Raspberry Pi Pico - サンプルプログラムのビルド&実行

Raspberry Pi Picoのサンプルプログラム(C/C++)をWindos 10環境でビルドしてみました。

まずは、Raspberry Pi Picoのピンヘッドをはんだ付けしておきます。
01_20210218102401

細ピンタイプのピンヘッドをはんだ付けしました。
ブレッドボードに乗せるとこんな感じです。
09_20210218102701

ピンアウトのラベルは裏面なので、若干不便ですね~
16_20210218102701

次に環境構築...
作業はPDFドキュメント ①「Getting started with Raspberry Pi Pico」に従って行いました。
Windows環境でのビルド環境の構築については、同ドキュメントの「8.2 Building on Ms Windows」節に記載されています。
12_2021021809120111_20210218091301

まずは「8.2.1. Installing the Toolchain」の内容に従って、コマンドラインでビルド出来る環境を構築します。
手順に従い、下記のツールをインストールします。
 ① ARM GCC compiler
 ② CMake
 ③ Build Tools for Visual Studio 2019
 ④ Python 3.7
 ⑤ Git

③④⑤は既にインストール済のため、省略しました。
一点、問題あります。
「8.2.1.3. Installing Visual Studio Code」の節名は間違っていると思われます。
内容的には「8.2.1.3. Installing the Build Tools for Visual Studio 2019」が正しいとお思います。
ちょっと混乱しました。(※現時点では、ドキュメントが修正されています(2023/02/24))

次に、「8.2.2. Getting the SDK and examples」に従って、
 ・「Raspberry Pi Pico SDKhttps://github.com/raspberrypi/pico-sdk
 ・「Raspberry Pi Pico SDK Exampleshttps://github.com/raspberrypi/pico-examples
 (上記リンク先ページの内容には目を通すことを推奨します)

をダウンロードして、任意のディレクトリに配置します。
私の環境では「D:\Raspberry Pi Pico\Downloads」に配置しました。04_20210218094001

次に、「8.2.3. Building "Hello World" from the Command Line」の内容に従って、
サンプルプログラムのビルドを行います。

Windowsメニューの「Visual Studio 2019」の下記からコマンドプロンプトを起動します。
05_20210218100201

ここから起動したコマンドプロンプトを使うのはNMAKE等のコマンドにパス等が通ているからです。
通用のコマンドプロンプトの起動では、エラーとなります。
起動したコマンドプロンプト上で作業用のディレクトリ「D:\Raspberry Pi Pico\Downloads」に移動します。

07_20210218101401

ドキュメントに従って、コマンドを実行すると全サンプルプログラムのビルドが出来ました。
08_20210218143401

早速ボードに書き込んでみます。
ここでは、「Hello World」ではなく、「Lチカ(Blink)」を書き込んでみました。
ドキュメントの「3.1. Building "Blink"」を参考にて書き込みを行いました。

まずはRaspberry Pi PicoをWindowsパソコンに接続します。
ボード上の「BOOTSEL」ボタンを押しながら、USB接続すると、
Windows 10からはマスストレージとして認識されます。私の環境ではFドライブとして認識されました。
14_20210218110701

ビルドしたサンプルの中のBlinkの「D:\Raspberry Pi Pico\Downloads\pico-examples\build\blink」内の
blink.uf2をFドライブにドラッグ&ドロップしてプログラムを書き込みます。

17_20210218110901

これで、書き込み終了。プログラム動き出し、Lチカ出来ました (*´ω`*)。

18

う~ん、なんて簡単なんでしょう。
ととりあえず、今日はここまで..

次はVisual Studio Code環境の構築を行います。
CMAKEについては、少々勉強しないといけないですね~



2021年2月13日 (土)

電子工作人のおやつ「くんせいたまご」

電子工作人のおやつ、「くんせいたまご」を近所のドラッグストアで見つけて、購入しました。

Dscn2945

製造は「タムラ電子(株)」さん、福島県のメーカーさんです (*´ω`*)。
Dscn2946

■ 公式サイト スモークハウス
   https://www.kuntama.com/

01_20210213163401

2個入りで154円で購入、お手頃なお値段です。
Dscn2947

美味しく、頂きました (*´ω`)

製造販売しているタムラ電子(株)さん、
社名には不釣り合いな「くんせいたまご」の製造販売、かなり疑問に思いますよね~

元々は弱電メーカーの下請け企業として社名の通り、電子機器関連の企業だったそうですが、
リーマンショック、東北大震災の直撃を受け、活路を模索し、
震災の年に並走させていた食品部門の(屋号)スモークハウスに力を入れ、弱電部門を閉鎖したとのことです。

もともと自社製品を持つことが夢だったことから、
何度か災害用ラジオなどのにサンプルを制作したりしたそうですが、
技術不足でものに出来ず、最後に食品で商品化しようと会社、社員の管理者たち数名のアイデアの中から燻製卵に
特化することにしてスタートし、現在に至っているそうです。
この「業態変換が出来たことが奇跡に近い」との感想を述べられています。

興味本位で、社名と不釣り合いな「くんせいたまご」に疑問を持ち、問い合わせしたところ、
快く回答を頂きました。なんてフレンドリーな企業なんでしょう..
(タムラ電子様、興味本位の質問に、真面目にお時間を割いて、お答えして頂き誠にすみませんでした m(__)m )

流石、元技術系企業さんだけあって、「くんせいたまご」はかなりのこだわりを持って製造しています。
詳細はこちら

タムラ電子さんに「くんせいたまご」、商品をみかけましたら
是非、お手に取り、レジまで連れて行って下さい。
日持ちもするし、おやつ、晩酌のおつまみに最適です。

2021年2月12日 (金)

Raspberry Pi Picoを入手しました

Raspberry Pi Picoを入手しました。

 ■ Raspberry Pi Pico (公式サイト)
    製品情報  https://www.raspberrypi.org/products/raspberry-pi-pico/
    資料        https://www.raspberrypi.org/documentation/pico/getting-started/

今回はスイッチサイエンスさんにて購入しましたが、秋月電子さんでも入手で出来ます。

 ■ スイッチサイエンス Raspberry Pi Pico
    https://www.switch-science.com/catalog/6900/
03_20210212102101

届いた製品
01_20210212102101
02_20210212102101

スペック(※スイッチサイエンスさんの商品説明より引用)
・Raspberry Pi(UK)設計のRP2040マイコン搭載
・デュアルコア ARM Cortex M0+プロセッサ、最大動作周波数 133 MHz
・SRAM:264KB、フラッシュメモリ:2MB
・端面スルーホールを備えているため直接キャリアボードへのはんだづけが可能
・USB 1.1 ホスト/デバイス両対応
・低消費電力スリープモードおよびドーマントモードが利用可能
・USBを介しマスストレージを使ったドラッグアンドドロップによるプログラムの書き込みが可能
・26 x 多機能GPIOピン
・2 x SPI、2 x I2C、2 x UART、3 x 12 bit ADC、16 x PWMチャンネル
・正確なクロックとタイマーを搭載
・温度センサ搭載
・高速な浮動小数点ライブラリを搭載
・8 x プログラマブルI/O(PIO)

スペックを見ると、
動作周波数 133MHz、SRAMが264KB、フラッシュメモリが2MB、USB 1.1 ホスト/デバイス両対応
と、この3点だけでかなり使えるボードですね。
他に、QSPI接続にて、外部フラッシュメモリ 16Mバイトも利用可能のようです(読み取りだけみたい)。
DMAもサポートしているようです。

またデータシートをみると、16kバイトのROMが搭載されており、そのROMには次の機能が搭載されているようです。
 • Initial startup routine
 • Flash boot sequence
 • Flash programming routines
 • USB mass storage device with UF2 support
 • Utility libraries such as fast floating point

さらに、面白そうな記述があります。
  2 × Programmable IO (PIO) blocks, 8 state machines total
  ◦ Flexible, user-programmable high-speed IO
  ◦ Can emulate interfaces such as SD Card and VGA

State Machines を使って、VGAなどのちょっとした信号の生成が出来るっぽい
これは、面白そうです。

今年は、この「Raspberry Pi Pico」で色々やっていこうと思います。
まずは、開発環境を構築します。
そのうえで、Arduino等で開発した自作ライブラリを移植していきたいと思います。

2021年2月 5日 (金)

Ichigojam Rが届きました

注文していたIchigojam Rが届きました。
早速、簡単な動作確認を行ってみました。

まずは、届いた製品です。
01_20210203163701

見た目はIchigojamとほとんど同じようです。
02_20210203163701

早速、起動してみました。手持ちのIchigojam 用のキーボードとモニターを接続。

「あれ、起動しない。不良品?」

      ・・・・・・

Ichigojam の過去の挙動を思い出し、
手持ちのディスプレイ、キーボードを色々と交換してみたとろ、安定動作しました。
起動できないのはキーボードとの相性のようです(普通はありえない問題ですが..)。

03_20210203164701

どうやらIchigojam Rでは、Ichigojamで問題なく使用出来たディスプレイ、キーボードでも
利用出来ないものがあるようです。
この前クリーニングしたキーボードも使えませんでした。(゚∀゚)アヒャ

他のいくつかの手持ちキーボードもダメでした。
起動は出来ても、文字入力中にフリーズしたり、放置していたらフリーズしたりと..

唯一、DELL製キーボードが非常に安定動作しました。
05_20210203170001

ディスプレイも要注意です。
Ichigojamで問題なく利用出来たディスプレイが、表示出来ませんでした。


垂直方向が同期出来ていないようです。別のでOKでした。

気を取り直して、触ってみます。
最初の感想: 「使い勝手はIchigojamと全く同じだね~(つまらん..)」


性能評価

「売り」の実行速度の改善を調べてみました。

以前試した性能評価プログラム「3万回ループ」を試してみました。

10 ?TICK()
20 FOR A=1 TO 30000
30 V=V+1
40 NEXT
50 ?V
60 ?TICK()


実行結果
20210203161336

TICK()関数で起動からの経過時間を調べて、処理時間を計測しています。
  (1022 - 584)/60 = 438 = 7.3 秒

若干古いバージョンですが、以前試した測定値と比較してみます。

測定結果 
豊四季 Tiny BASIC for Arduino(8ビット AVR) 機能拡張版
    2.262秒
・イチゴジャム ラズベリーパイ版 (BASIC RPi1.2.5 ラズパイ 2 900MHz)
    2.517秒
・イチゴジャム 1.2b56 最新版 (32ビット ARM)
    81.333秒 (ビデオ出力停止時 44.31秒)
イチゴジャム R 1.5β (RISC-V GD32VF103CBT6)
    7.3秒

確かに、ARM版に比べると10倍以上速くなったようです。
しかしそれでも、非力な8ビット AVRベースのArduino版のTiny BASICの3分の1以下の性能です。
非効率な処理コードをCPUのパワーで無理やりぶん回して速くなったっていう感じですね。
この当たりは、改善してCPUの本当のパワーを引き出して欲しいところです。


採用しているCPUについて

Ichigojam Rに採用されているRISC-VのGD32VF103CBT6
BluePillに使われているSTM32F103C8T6とそっくりな名前ですね。

恐らく、中国GD社が以前販売していたST32マイコンのぱちもん(無認可クローン品)系列の
STM32F103C8T6モドキを流用して(マイクロコードをRISC-Vに対応に書き換えた)
製造したものと思われます。

データシートからピン配列を引用して比較してみました。

まずは、Ichigojam RのRISC-V
06_20210205105701
次にST社のSTM32F103C8T6
07_20210205105701
恐ろしいほどに、同じですね~
まあ、とりあえずIchigojam Rに搭載して日本国内で販売出来ているので、
ライセンス面はクリアできているのでしょう.. STM32クローン品はNGっぽかったけど

ということで、入力関連のピン割り付けもSTM32F103C8T6と同じ可能性があります。
Ichigojam RのマイコンをSTM32F103C8T6に置き換えて、
わずかな修正で豊四季タイニーBASIC for STM32を動かせるかもしれません。

いずれにしても、RISC-Vを名乗りつつ、採用してるマイコンは
アーキテクチャ的には古いSTM32シリーズの初期モデルがベースになっていると思われます。
個人的にはこの怪しい中華マイコンを趣味なら良いですが、教育現場で使うのは.... と思います。
(アグレッシブな中国GD社には好感をいだきます)

総論

個人的な感想としては、ちょっとがっかり製品です。
Ichigojam Rについては「わくわく感」もなく、従来と変わりなく
むしろ、品質と安定動作を犠牲にして、性能とわずかな機能拡張を得た感じです。

Ichigojamの何年もかけて品質の作り込みの経験が全く生かされず、
品質はリセットされました。
またあのIchigojam商法(十分なテストを行わず販売して、利用者にデバッグさせる)で
何年もかけて品質の作り込みを行うのでしょうか?
流石にもう付き合ってられないですね。

Ichigojam、潮時かな.. 

« 2021年1月 | トップページ | 2021年3月 »