Submit Search
Upload
MicroPythonのCモジュールを作ってみる
•
Download as PPTX, PDF
•
0 likes
•
1,699 views
K
Kenta IDA
Follow
インターフェース2019年5月号の特集記事のうち、筆者担当分のMicroPythonのCモジュールのつくり方解説の概要です。
Read less
Read more
Report
Share
Report
Share
1 of 24
Download now
Recommended
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
40歳過ぎてもエンジニアでいるためにやっていること
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
Takuya Ueda
kamakura.go#3で発表した資料です。 https://connpass.com/event/74421/
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
Shiqiao Du
18 Mar. 2012 第3回Tokyo.Scipyにて発表したスライドです。 CythonだけではなくF2Pyにも触れていてかなりカオスな内容です。
こわくない Git
こわくない Git
Kota Saito
「マージがなんとなく怖い」「リベースするなって怒られて怖い」「エラーが出て怖い」 Git 入門者にありがちな「Git 怖い」を解消するため、Git のお仕事(コミット、ブランチ、マージ、リベース)について解説します。
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
PFNは,「現実世界を計算可能にする」をVisionとして,膨大な計算量を必要とするシミュレーションや深層学習などの計算ワークロードを実行するためのオンプレML基盤を持っています. この取り組みについて、「使いやすい環境」、「リソースの効率的かつフェアな利用」、「信頼性・運用省力化」の観点から紹介します。 本イベント「オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜」では、オンプレミスの Kubernetes クラスタ上に構築された機械学習基盤を持つ PFN とヤフーのエンジニアが自社での取り組みについて語り尽くします! イベントサイト: https://ml-kubernetes.connpass.com/event/239859/
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Shinya Takamaeda-Y
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
プログラミング言語Rustの社内イベントの発表資料です
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
ryos36
Python をつかった FPGA 入門。Python 初心者でも大丈夫。関数が書ければすぐにできる。
Recommended
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
40歳過ぎてもエンジニアでいるためにやっていること
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
Takuya Ueda
kamakura.go#3で発表した資料です。 https://connpass.com/event/74421/
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
Shiqiao Du
18 Mar. 2012 第3回Tokyo.Scipyにて発表したスライドです。 CythonだけではなくF2Pyにも触れていてかなりカオスな内容です。
こわくない Git
こわくない Git
Kota Saito
「マージがなんとなく怖い」「リベースするなって怒られて怖い」「エラーが出て怖い」 Git 入門者にありがちな「Git 怖い」を解消するため、Git のお仕事(コミット、ブランチ、マージ、リベース)について解説します。
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
PFNは,「現実世界を計算可能にする」をVisionとして,膨大な計算量を必要とするシミュレーションや深層学習などの計算ワークロードを実行するためのオンプレML基盤を持っています. この取り組みについて、「使いやすい環境」、「リソースの効率的かつフェアな利用」、「信頼性・運用省力化」の観点から紹介します。 本イベント「オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜」では、オンプレミスの Kubernetes クラスタ上に構築された機械学習基盤を持つ PFN とヤフーのエンジニアが自社での取り組みについて語り尽くします! イベントサイト: https://ml-kubernetes.connpass.com/event/239859/
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Shinya Takamaeda-Y
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
プログラミング言語Rustの社内イベントの発表資料です
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
ryos36
Python をつかった FPGA 入門。Python 初心者でも大丈夫。関数が書ければすぐにできる。
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
本項はC# Tokyo オンライン LT 大会 2021/01にて発表した「C#メタプログラミング概略 in 2021」の発表資料です。
AWS + MLflow + SageMakerの環境を動かしてみたお話
AWS + MLflow + SageMakerの環境を動かしてみたお話
ItohHiroki
2022/02/16 MLOps勉強会のLT発表資料です。 https://mlops.connpass.com/event/236071/
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
Yuta Matsumura
https://geekersnites.connpass.com/event/261441/
ドロネー三角形分割
ドロネー三角形分割
Yusuke Matsushita
ドロネー三角形分割のゆるふわな説明
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
Shota Imai
東京大学の研究室内で,今井がChatGPTの知見を共有するために使用したスライド資料です. 特に以下のような話題,技術について解説しています. ・ChatGPTの凄さ ・ChatGPTの技術 ・言語モデル ・プロンプト ・GPTとは ・InstructGPT ・言語モデルと強化学習
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
Joni
ASP.NET Core の パフォーマンスを支える System.IO.Pipelines と System.Threading.Channels
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
H2O Space. Co., Ltd.
※ 本スライドの内容を解説した、電子書籍を販売中です。 <a>http://p.booklog.jp/book/86773</a> 「Git(ギット)」や「バージョン管理」という言葉は聞いたことはあっても、なんだか難しそうなイメージを持っているかも知れません。 特に、プログラマーやエンジニアのツールであって、デザイナー・マークアップエンジニア・ディレクターの方は「自分には無縁」と思っているのではないでしょうか。 しかし、Gitはプロジェクトに関わるすべての方が使えると、コミュニケーションツールとしての役割も果たし、非常にスムーズにプロジェクトを進行させることができます。 このイベントでは「ノンプログラマの方」を対象に、Gitのよく使う部分だけをピックアップしてわかりやすく紹介、今日から使えるテクニックや便利なポイントを紹介していきます。
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
虎の穴 開発室
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 – それぞれの特徴について、実装例を見ながら確認していく
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
Masashi Shibata
PyData.Tokyo Meetup #23 MLOps〜AIを社会に届ける技術での発表資料 https://pydatatokyo.connpass.com/event/210654/
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
Using golang on the embedded linux system
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
PyCon JP 2021発表資料(https://2021.pycon.jp/time-table/?id=272565)
Gitはじめの一歩
Gitはじめの一歩
Ayana Yokota
SlideShare上の本資料は現在メンテされていません。 ↓↓↓SpeakerDeck版をご覧ください!(時々アプデしてます)↓↓↓ https://speakerdeck.com/ihcomega56/githazimefalse-bu
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
PyCon JP 2017 発表資料です。
【論文読み会】Self-Attention Generative Adversarial Networks
【論文読み会】Self-Attention Generative Adversarial Networks
ARISE analytics
論文「Self-Attention Generative Adversarial Networks」について輪読した際の資料です。
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
Kernel/Vm探検隊 online part2. 発表動画: https://youtu.be/brrm328XItM?t=8221
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
Drecom Co., Ltd.
http://cedec.cesa.or.jp/2016/session/ENG/2879.html
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
Shinya Takamaeda-Y
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう @PyCon JP 2015 (2015年10月11日) #pyconjp
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
Takayuki Shimizukawa
http://sphinx-users.jp/event/20101203_jus_benkyoukai.html 日本UNIXユーザ会 2010年12月勉強会 (2010/12/3) 日本UNIXユーザ会の2010年12月の勉強会にて、以下の内容で発表させていただきました。 「ドキュメントを作りたくなってしまう魔法のツール Sphinx」
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
PFIセミナー 2016/04/28
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
現在のマルチスレッドプログラミングの抱える問題点と、代替案をわかりやすく解説いたします。最近登場したConcurrent Revisionsも解説します。
osakapy 2014.05 LT
osakapy 2014.05 LT
Hattori Hideo
ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会
sekikazu
勉強会後配布資料
More Related Content
What's hot
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
本項はC# Tokyo オンライン LT 大会 2021/01にて発表した「C#メタプログラミング概略 in 2021」の発表資料です。
AWS + MLflow + SageMakerの環境を動かしてみたお話
AWS + MLflow + SageMakerの環境を動かしてみたお話
ItohHiroki
2022/02/16 MLOps勉強会のLT発表資料です。 https://mlops.connpass.com/event/236071/
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
Yuta Matsumura
https://geekersnites.connpass.com/event/261441/
ドロネー三角形分割
ドロネー三角形分割
Yusuke Matsushita
ドロネー三角形分割のゆるふわな説明
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
Shota Imai
東京大学の研究室内で,今井がChatGPTの知見を共有するために使用したスライド資料です. 特に以下のような話題,技術について解説しています. ・ChatGPTの凄さ ・ChatGPTの技術 ・言語モデル ・プロンプト ・GPTとは ・InstructGPT ・言語モデルと強化学習
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
Joni
ASP.NET Core の パフォーマンスを支える System.IO.Pipelines と System.Threading.Channels
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
H2O Space. Co., Ltd.
※ 本スライドの内容を解説した、電子書籍を販売中です。 <a>http://p.booklog.jp/book/86773</a> 「Git(ギット)」や「バージョン管理」という言葉は聞いたことはあっても、なんだか難しそうなイメージを持っているかも知れません。 特に、プログラマーやエンジニアのツールであって、デザイナー・マークアップエンジニア・ディレクターの方は「自分には無縁」と思っているのではないでしょうか。 しかし、Gitはプロジェクトに関わるすべての方が使えると、コミュニケーションツールとしての役割も果たし、非常にスムーズにプロジェクトを進行させることができます。 このイベントでは「ノンプログラマの方」を対象に、Gitのよく使う部分だけをピックアップしてわかりやすく紹介、今日から使えるテクニックや便利なポイントを紹介していきます。
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
虎の穴 開発室
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 – それぞれの特徴について、実装例を見ながら確認していく
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
Masashi Shibata
PyData.Tokyo Meetup #23 MLOps〜AIを社会に届ける技術での発表資料 https://pydatatokyo.connpass.com/event/210654/
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
Using golang on the embedded linux system
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
PyCon JP 2021発表資料(https://2021.pycon.jp/time-table/?id=272565)
Gitはじめの一歩
Gitはじめの一歩
Ayana Yokota
SlideShare上の本資料は現在メンテされていません。 ↓↓↓SpeakerDeck版をご覧ください!(時々アプデしてます)↓↓↓ https://speakerdeck.com/ihcomega56/githazimefalse-bu
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
PyCon JP 2017 発表資料です。
【論文読み会】Self-Attention Generative Adversarial Networks
【論文読み会】Self-Attention Generative Adversarial Networks
ARISE analytics
論文「Self-Attention Generative Adversarial Networks」について輪読した際の資料です。
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
Kernel/Vm探検隊 online part2. 発表動画: https://youtu.be/brrm328XItM?t=8221
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
Drecom Co., Ltd.
http://cedec.cesa.or.jp/2016/session/ENG/2879.html
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
Shinya Takamaeda-Y
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう @PyCon JP 2015 (2015年10月11日) #pyconjp
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
Takayuki Shimizukawa
http://sphinx-users.jp/event/20101203_jus_benkyoukai.html 日本UNIXユーザ会 2010年12月勉強会 (2010/12/3) 日本UNIXユーザ会の2010年12月の勉強会にて、以下の内容で発表させていただきました。 「ドキュメントを作りたくなってしまう魔法のツール Sphinx」
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
PFIセミナー 2016/04/28
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
現在のマルチスレッドプログラミングの抱える問題点と、代替案をわかりやすく解説いたします。最近登場したConcurrent Revisionsも解説します。
What's hot
(20)
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
AWS + MLflow + SageMakerの環境を動かしてみたお話
AWS + MLflow + SageMakerの環境を動かしてみたお話
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
ドロネー三角形分割
ドロネー三角形分割
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Gitはじめの一歩
Gitはじめの一歩
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
【論文読み会】Self-Attention Generative Adversarial Networks
【論文読み会】Self-Attention Generative Adversarial Networks
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Similar to MicroPythonのCモジュールを作ってみる
osakapy 2014.05 LT
osakapy 2014.05 LT
Hattori Hideo
ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会
sekikazu
勉強会後配布資料
210728 mpy
210728 mpy
Takuya Nishimoto
What's new in MicroPython 2021-07-28 西本卓也 @nishimotz / @24motz すごい広島 with Python で紹介した内容を加筆しています。
ESP32開発環境まとめ
ESP32開発環境まとめ
Kenta IDA
2018年8月28日のインターフェースオフ会で発表した、2018年9月号の特集の補足事項などのまとめです。
Code igniter + ci phpunit-test
Code igniter + ci phpunit-test
ME iBotch
Nagoya OpenSource Conference 2016 CodeIgniter+ci-phpunit-test
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy
敦志 金谷
大阪Pythonユーザの集まり 2014/05 発表資料 http://osakapy.connpass.com/event/6369/
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
PyConJP 2016 Pythonでpyftpdlibを使ってFTPサーバーを作る際に使ったテクニックの紹介
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Yoshifumi Kawai
CEDEC 2019
Why python
Why python
Mikio Kubo
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
code4lib japan 2020ライトニングトーク資料
chibi:bitとMicroPythonで始めるフィジカルコンピューティング
chibi:bitとMicroPythonで始めるフィジカルコンピューティング
Minoru Inachi
OSC2017 HokkaidoでのPython札幌セミナースライドを少し直したもの。
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
グリー社内勉強会「Mini Tech Talk」発表資料 20141031 Python & PyConJP 2014 Report / 亀井 利光 & 中野 和貴 ※「Mini Tech Talk」とは、グリー社内で毎週金曜のランチタイムを利用して開催されている技術勉強会です
Django で始める PyCharm 入門
Django で始める PyCharm 入門
kashew_nuts
https://pycon-kyushu.connpass.com/event/84062/ http://kyushu.pycon.jp/ #PyCon9shu
CPythonを読もう
CPythonを読もう
Akira Nonaka
PyCon Kyushu 2022での発表スライド
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!
Kir Chou
https://www.youtube.com/watch?v=N99q_YYjMzw PyCon JP 2020 presentation by Kir Chou in Japanese.
Botkit4.x Has Come!
Botkit4.x Has Come!
Hikaru Uchiyama
吉祥寺.pm #19 登壇資料
PyCharm入門
PyCharm入門
Yuki Nagai
第33回コンピュータビジョン勉強会@関東の資料です。
Netmf-180224
Netmf-180224
Atomu Hidaka
オープンソースになったマイコン開発環境 .NET Micro Frameworkの現状と今後。組込みUWPアプリケーションをVisual Studio/LLVMコンパイルしてmbedで動かすLLILUM。.NET Coreとの関係は?ドットNETまいくろバンザイ倶楽部
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
他人の書いたPythonスクリプトをステップ実行で理解する Visual Studio Code + Python デバッガ 2021-11-20 PyCon mini Shizuoka 2021 西本卓也 @24motz @nishimotz
Io t,ai時代のソフトウェア
Io t,ai時代のソフトウェア
Toshiaki Kurokawa
2016/10/19 University of Tokyo 統合型ものづくりITシステム研究会 How software has evolved within 30 years or so. We need Japanese society to change itself to adapt for the development for IoT and AI.
Similar to MicroPythonのCモジュールを作ってみる
(20)
osakapy 2014.05 LT
osakapy 2014.05 LT
ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会
210728 mpy
210728 mpy
ESP32開発環境まとめ
ESP32開発環境まとめ
Code igniter + ci phpunit-test
Code igniter + ci phpunit-test
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Why python
Why python
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
chibi:bitとMicroPythonで始めるフィジカルコンピューティング
chibi:bitとMicroPythonで始めるフィジカルコンピューティング
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
Django で始める PyCharm 入門
Django で始める PyCharm 入門
CPythonを読もう
CPythonを読もう
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!
Botkit4.x Has Come!
Botkit4.x Has Come!
PyCharm入門
PyCharm入門
Netmf-180224
Netmf-180224
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Io t,ai時代のソフトウェア
Io t,ai時代のソフトウェア
More from Kenta IDA
M5StackにFPGAをつないでみた
M5StackにFPGAをつないでみた
Kenta IDA
M5StackにGOWINのFPGAをつないでみた話
ESP32特集の内容紹介
ESP32特集の内容紹介
Kenta IDA
インターフェース2020年1月号のESP32特集のうち、筆者が担当した箇所の内容について説明します。
カスタムブロックで自作モジュールをUIFlow対応にする
カスタムブロックで自作モジュールをUIFlow対応にする
Kenta IDA
UI Flowのカスタムブロック機能を使って、自作モジュールの制御など、UI Flowの標準機能でサポートされていないモジュールを簡単に使えるようにする方法について説明します。
Using SORACOM 3G Module From MicroPython
Using SORACOM 3G Module From MicroPython
Kenta IDA
Short description of how to use SORACOM 3G Module from MicroPython and how it works.
M5StackをRustで動かす
M5StackをRustで動かす
Kenta IDA
M5StackのアプリケーションをRustで書いて動かすために試したこと
ESP32開発環境まとめ2
ESP32開発環境まとめ2
Kenta IDA
2019年1月21日にCQ出版で開催されたM5Stack&ESP32オフ会での発表資料です。ESP32の各開発環境を簡単にまとめています。
EC2 F1 Virtual JTAG
EC2 F1 Virtual JTAG
Kenta IDA
AWS EC2 F1について、みんなでワイワイ調べる会でVirtual JTAGについて調べたときの報告資料
PYNQ単体でUIを表示してみる(PYNQまつり)
PYNQ単体でUIを表示してみる(PYNQまつり)
Kenta IDA
PYNQ-Z1用のフレームバッファドライバを用意して、PYNQのHDMI出力を使ってX Window Systemなどのフレームバッファを使えるようにするという内容で、PYNQまつりにて発表した内容です。
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニット
Kenta IDA
PSoCまつり2016で発表した、PSoC4 BLEで交流電流測定を行うお話です。
Windows10 IoT CoreとBLE
Windows10 IoT CoreとBLE
Kenta IDA
めとべや東京#8でLTした際の資料です。Windows 10 IoT CoreでBLE使って遊んだ内容を説明しています。
おそらく明日から役にたつC++11新機能
おそらく明日から役にたつC++11新機能
Kenta IDA
STL使って無くてMFCだけの人向けのC++11の説明のつもり
More from Kenta IDA
(11)
M5StackにFPGAをつないでみた
M5StackにFPGAをつないでみた
ESP32特集の内容紹介
ESP32特集の内容紹介
カスタムブロックで自作モジュールをUIFlow対応にする
カスタムブロックで自作モジュールをUIFlow対応にする
Using SORACOM 3G Module From MicroPython
Using SORACOM 3G Module From MicroPython
M5StackをRustで動かす
M5StackをRustで動かす
ESP32開発環境まとめ2
ESP32開発環境まとめ2
EC2 F1 Virtual JTAG
EC2 F1 Virtual JTAG
PYNQ単体でUIを表示してみる(PYNQまつり)
PYNQ単体でUIを表示してみる(PYNQまつり)
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニット
Windows10 IoT CoreとBLE
Windows10 IoT CoreとBLE
おそらく明日から役にたつC++11新機能
おそらく明日から役にたつC++11新機能
MicroPythonのCモジュールを作ってみる
1.
MicroPythonの Cモジュールを作ってみる インターフェース オフ会 @
CQ出版 2019/05/17 Kenta IDA (@ciniml)
2.
自己紹介 •井田 健太 (@ciniml) •仕事:FPGAの論理設計 •使用言語:Verilog HDL,SystemVerilog,C++,Python •
元は組み込み?ソフト屋 • 最近はなぜかGoのコードを書いている… 2019/5/20MicroPythonのCモジュールを作ってみる
3.
特集の担当部分 •インターフェース2019年5月号 • 第2部 • 第1章
マイコン用Python高速化の方法 2019/5/20MicroPythonのCモジュールを作ってみる
4.
MicroPythonとは •組み込み向けのPython実装 • Python3.4の文法+標準ライブラリの一部 • Python3.5の文法の一部 •様々なマイコン、OSで動作 •
元々はSTM32F4向け (PyBoard) • ESP32, ESP8266, PIC24, nRF51822(micro:bitとか) • Unix, Windows, Zephyr 2019/5/20MicroPythonのCモジュールを作ってみる
5.
MicroPythonはOSなのか? •OSが提供する機能 • ファイル、スレッド、ターミナル •OS向けにポーティングされた物はOSの機能を利用 • Unix,
Windows, Zephyr •ベアメタル・RTOS上の場合は同等の機能を実装 • 各マイコン向け実装 2019/5/20MicroPythonのCモジュールを作ってみる
6.
MicroPythonの便利ポイント •REPL環境で試しながら作れる • TeraTermとか • ちゃんと入力補完も効く •スクリプトが止まるとREPLに戻る •
→デバッグに使える! 2019/5/20MicroPythonのCモジュールを作ってみる
7.
Pythonの実行速度 •Pythonの実行速度はそんなに速くない • バイトコード・インタプリタ (CPython) •
一部処理系はJITコンパイル (PyPy) •MicroPythonも(基本的に)バイトコード・インタプリタ • 一部例外あり 2019/5/20MicroPythonのCモジュールを作ってみる
8.
Pythonの実行速度 •配列操作する処理が(Cと比べて)遅い • 添え字の値を計算 • 添え字の範囲チェック →Cと比較して数十倍くらい差がある •反復回数の多いループだとかなり影響がある 2019/5/20MicroPythonのCモジュールを作ってみる
9.
対策 (PCの場合) •PyPyを使う • JITコンパイルしてくれるのでそこそこ速い…はず •
ただしPython2系 •C言語で書かれたモジュールを呼び出す • 呼び出しのオーバーヘッドを除けばC言語そのもの • numpyとかはこれ • 計算処理はC/FORTRANのライブラリ呼び出し 2019/5/20MicroPythonのCモジュールを作ってみる
10.
対策 (MicroPythonの場合) •ネイティブコード・エミッタを使う • バイトコードでは無く機械語を出力して実行してくれる •
命令保持用のメモリ数倍くらい使う •C言語で書かれたモジュールを呼び出す • PCと同じ •ESP8266/ESP32ではネイティブコード・エミッタ使えない! •なので、C言語モジュールを作る 2019/5/20MicroPythonのCモジュールを作ってみる
11.
C言語モジュールの欠点 •MicroPythonのビルドが必要 •モジュールの動的追加はサポートされていない • MicroPythonのissueでも何度か議論されている • OSが無いプラットフォームで動的ロードとかできない •
そもそもPosition Independentな コードを出せないプラットフォームもある • 現時点では難しいという判断 2019/5/20MicroPythonのCモジュールを作ってみる
12.
MicroPythonのビルド • コンパイラやビルドツールが動く環境が必要 • 各種Linux •
Windowsの場合はWSLでUbuntu動かすのが楽 • msys2でもシンボリック・リンクの設定をすればビルド可能 • GitHubから持ってきてmakeするだけ • $ git clone https://github.com/micropython/micropython.git -b v1.10 $ git submodule update --init $ cd ports/unix $ make -j12 2019/5/20MicroPythonのCモジュールを作ってみる
13.
Cモジュールの追加 •モジュール本体のファイル追加 •数個のファイルの編集 • モジュール一覧に追加 2019/5/20MicroPythonのCモジュールを作ってみる
14.
MicroPythonのディレクトリ構成 2019/5/20MicroPythonのCモジュールを作ってみる
15.
Cモジュールの構造 // 加算処理の本体 STATIC mp_obj_t
mod_fastmath_add(mp_obj_t a_in, mp_obj_t b_in) { mp_int_t a = mp_obj_get_int(a_in); // 引数を整数に変換(失敗するとエラー) mp_int_t b = mp_obj_get_int(b_in); // / return mp_obj_new_int(a + b); // 加算結果を表すintオブジェクトを作って返す } // 加算関数を呼び出すための関数オブジェクトを定義 // 引数が2つなので MP_DEFINE_CONST_FUN_OBJ_2 を使う // 0~3引数の関数まで定義できる // それ以上は可変引数関数として定義する必要がある STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_fastmath_add_obj, mod_fastmath_add); // モジュールに含まれる関数などの名前とオブジェクトの対応関係を保持する辞書の要素を定義する STATIC const mp_rom_map_elem_t mp_module_fastmath_globals_table[] = { { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_fastmath) }, // __name__ { MP_ROM_QSTR(MP_QSTR_add), MP_ROM_PTR(&mod_fastmath_add_obj) }, // add(a, b) }; // ↑の要素を持つ辞書オブジェクトを定義する STATIC MP_DEFINE_CONST_DICT(mp_module_fastmath_globals, mp_module_fastmath_globals_table); // fastmath モジュールのオブジェクトを定義する const mp_obj_module_t mp_module_fastmath = { .base = { &mp_type_module }, .globals = (mp_obj_dict_t*)&mp_module_fastmath_globals, }; 2019/5/20MicroPythonのCモジュールを作ってみる 処理本体 モジュールの定義 どういった関数があるのかなど
16.
MicroPythonのビルドと実行 •unixポートならビルド環境上で実行できる •ハードウェアに依存しない モジュールを開発環境で試すことが出来る 2019/5/20MicroPythonのCモジュールを作ってみる
17.
MicroPythonのビルドと実行 •unixポートならビルド環境上で実行できる •ハードウェアに依存しない モジュールを開発環境で試すことが出来る 2019/5/20MicroPythonのCモジュールを作ってみる
18.
構成 2019/5/20MicroPythonのCモジュールを作ってみる
19.
構成 •pyndarray • MicroPythonスクリプトでの配列・行列演算の実装 •fastmath • C言語での配列・行列演算の実装 •テストスクリプト •
pyndarray, fastmathを呼び出して実行時間を測定 2019/5/20MicroPythonのCモジュールを作ってみる
20.
•式があっているかどうかの確認 • 簡単に書いて確認できるので •C実装との処理速度比較用 行列積の実装 (Python) 2019/5/20MicroPythonのCモジュールを作ってみる 単純な3重ループでの実装
21.
•Pythonと同様の3重ループでの実装 行列積の実装 (C言語) 2019/5/20MicroPythonのCモジュールを作ってみる
22.
動作確認 •unixポート •esp32 2019/5/20MicroPythonのCモジュールを作ってみる
23.
まとめ •MicroPythonは試しながら開発するのに便利 • REPLがとても便利 •Cモジュール追加はそんなに難しくない • まずはPythonで書いて動作確認 •
Cモジュールとして移植 •残りの部分は書きやすいPythonで書いて楽をする 2019/5/20MicroPythonのCモジュールを作ってみる
24.
おしまい 2019/5/20MicroPythonのCモジュールを作ってみる
Download now