【ラズパイPico】PythonかC/C++かどっちでプログラミングするのがいいの?検証してみました!
Вставка
- Опубліковано 2 кві 2021
- これまでRaspberry Pi Picoを使う上で何気なくMicroPythonを使ってきましたが、C/C++とどっちの方がいいのか気になったので検証してみました。
ちょっとした簡単なプログラムを組むならMicro Python、他のライブラリを利用してがっつり開発するならC/C++がいいような気がします。皆さんはどう感じますか?ぜひコメントください。
---
過去動画(ラズパイPico紹介): • 【ワンコイン】最新ラズパイ『Raspberr...
公式のドキュメント(PDF):datasheets.raspberrypi.org/pi...
非公式のインストーラー:github.com/ndabas/pico-setup-...
Picoにリセットボタンを追加する方法:www.raspberrypi.org/blog/how-...
USBシリアル変換アダプタの一例:www.switch-science.com/catalo...
シリアル通信に使用したTera Term:ttssh2.osdn.jp/ - Наука та технологія
非常にわかりやすかったです!
これほどまでにきれいにまとめてくださってありがとうございます!
ありがとうございます!
お役に立ててよかったです。ぜひ参考にしてみてください。
開発環境の構築がなんだかんだ1番の初心者バイバイだと思ってる😇
コメントありがとうございます。
本当にそのとおりです。Pythonがとても簡単なのに比べてC++はハードルが高いですね。LinuxだとC++も簡単みたいですが、初心者にLinuxを勧めるのもなかなか難しい気がします。
ありがたや、ありがたや……
アセンブラ vs C
みたいな時代が懐かしい
モバイルバッテリーとかで長時間動作させるみたいな場合は、やっぱりCの方が4倍処理速度が速いという事は消費電力も少なくて長時間可動出来るという事なんですかね?もしその差がかなり大きいならCを使うメリットはかなり大きいかなと思いました。
最近Cを勉強始めましたが
visual studioかVS Codeどちらの方がいいですか?
ラズパイは今から勉強するつもりです。
コメントありがとうございます。
PC上でCを動かしながら勉強するのであれば、どちらでも大きくは変わらないと思います。
ラズパイPico用のプログラムを作る場合は、動画のように公式の手順に従ってVS Codeを使うことをおすすめします。
やりたいことがPythonでは難しいみたいなので現在Cの環境を構築しているのですが、動画にある通り私もnmakeがうまくパス設定できません
cmdで打っても認識されてないみたいなんですが、手動でも良いんで何か解決策ってありませんでしょうか?
Cで開発する場合は、VSCodeでPlatformIOを使うと簡単ですよ
Picoではpythonのrequestsやscheduleやtimeやosやnumpyやopencvなどのライブラリは使えますか?
Python標準ライブラリは移植されていますが、それ以外のライブラリは標準では搭載していないことが多いと思います。
具体的にどのライブラリが使えるか、詳細は公式資料を参照ください↓
micropython-docs-ja.readthedocs.io/ja/latest/
Picoに書き込んだ後にusb接続で書き込まれたC/C++やmicropythonのソースコードを見ることは出来ますか?
MicroPythonの場合、Pico本体にmain.pyという名前で保存したコードが電源投入時に自動的に実行されるようになります。なので、このファイルを見ればソースコードを確認することができます。
Thonnyの場合はメニューの「表示」→「ファイル」にチェックを入れるとPico本体に保存されているコードの一覧が表示されます。
C/C++の場合はUF2ファイル形式で出力されてしまうので難しそうですが、RP2040向けのUF2ファイルの逆アセンブラが開発されているようなので、こちらを使えば何かしら中身を覗くことができるかもしれません。
github.com/pyTony/rp2040
ラズパイでj2me〔モバイル用Java)は使えないのかな?
Cよりpythonのほうが早いのは意外だった
もう一個の判断要素
Cは案件があるがPythonはほとんどない
職業プログラマを目指していて勉強時間を無駄にしたくないならC/C++
ラズパイを使った電子工作だけを楽しくやりたいならPython
このテストではTeraTermに文字送信するところの圧倒的遅さで処理速度が決まってしまうのでは。ある演算の10億回ループにかかる時間を測ったら。
Cの時の測定結果、さすがに遅すぎると思ったのですが
これってUART送信バス占有時間がボトルネックになってませんか?
ボーレートが115200bpsなので1Byteごとに送信時間が86usがかかっているはずです。
(実際にはペリフェラルのFIFOに置くまでだと思うので送信する長さ-1Byteかもしれませんが)
流石に何もしない処理に280usもかかってたらまともな組み込み制御に使用することはできません
普通メインのポーリング時間って1ms設定することが多いと思いますので
多分ちゃんと測るとCとPythonの速度の差はこんなもんじゃないですよ
コメントありがとうございます。
これは(UART周りの遅延も込みで)環境を揃えて速度を「比較」するための検証ですので、純粋なプログラムの実行速度を表しているものであはりません。
ご指摘のとおり純粋な速度はこんなもんじゃないと思います。
ダークテーマを使ってるエンジニアは無条件で信頼できる。
コメントありがとうございます!
実はデフォルト設定のままにしていただけなのは秘密です…🤫
ダークテーマは眩しくないし落ち着くのでいいですよね。有機ELだと消費電力も下がりますし。
micro-rosを導入する現状、micropythonが使えない悲しみ
本当にCの設定は面倒でした。
microPython(thonny)の方が楽でした。
microPythonが拍子抜けするぐらい簡単にできたせいか、Cの設定はやたらと面倒に感じましたね。
Windows向けにもうちょっと簡単な導入方法があればいいのですが…。
C++だけど、Arduino IDEを使うとだいぶ楽ですよ。
コメントありがとうございます。この動画投稿当時はまだArduino対応していなかったんですよね…。
最新動画ではArduino IDEでの開発にチャレンジしていますのでぜひご覧ください→ ua-cam.com/video/qt1dPksrLMI/v-deo.html
タイトルがpyhtonになってる…
え!今の今まで気づいていませんでした…ありがとうございます…(修正しました)