2022年12月 この範囲を時系列順で読む この範囲をファイルに出力する
Pythonで難儀したオカゲ・・・ですが、C言語の基本が頭に入っていくと書きやすいなぁ~って気分になります。
私が一番好きなのはPICのアセンブラです。アセンブラをガツガツ書いていると変人扱いされますが、機械を直接触っている感じがイイんです。
C言語はこの感覚に近い気がします。優しさがないので取っ掛かりは大変ですが、見えてくると機械に直接触れている感じが強いのです。変数の型が厳密だと言っても、歯車だってタイミングベルトだってモジュールが合わなきゃ動かないのと同じことです。違いは物を理解するためのキーワードに過ぎず。むしろ共通点を見つけて利用した方が機械イジリは絶対に楽しい。
コマンドの向こうにあるコンピュータの機械としての動作をイメージしないと出来ないことですが、コンピュータも歯車機械もバイナリコードか鉄板かの違いだけで部品が協調して動いていると思えば垣根なく感じられます。
・・・冒頭の書きやすいって言葉には語弊があるかも。
変人が新しいオモチャを手に入れて嬉しくなってるだけです。すみません(笑
分類は必要ですが、それが目的になって全体が見えなくなるのはつまらないと思うのです。
分けることで理解を深め、よりよい組み合わせを見つけたいですね。
#妄想
私が一番好きなのはPICのアセンブラです。アセンブラをガツガツ書いていると変人扱いされますが、機械を直接触っている感じがイイんです。
C言語はこの感覚に近い気がします。優しさがないので取っ掛かりは大変ですが、見えてくると機械に直接触れている感じが強いのです。変数の型が厳密だと言っても、歯車だってタイミングベルトだってモジュールが合わなきゃ動かないのと同じことです。違いは物を理解するためのキーワードに過ぎず。むしろ共通点を見つけて利用した方が機械イジリは絶対に楽しい。
コマンドの向こうにあるコンピュータの機械としての動作をイメージしないと出来ないことですが、コンピュータも歯車機械もバイナリコードか鉄板かの違いだけで部品が協調して動いていると思えば垣根なく感じられます。
・・・冒頭の書きやすいって言葉には語弊があるかも。
変人が新しいオモチャを手に入れて嬉しくなってるだけです。すみません(笑
分類は必要ですが、それが目的になって全体が見えなくなるのはつまらないと思うのです。
分けることで理解を深め、よりよい組み合わせを見つけたいですね。
#妄想
昼休みにC言語の教科書を読み直しています。
「改訂第3版 ANSI C 対応 はじめてのC」
(ANSIとはアメリカの工業規格です。ANSIの影響力は絶大で、C言語を名乗るならコレを基本とするのが絶対条件です。派生や方言はあれど、ANSI Cに準じて書かれたコードが動かなければC言語環境ではないのです。)
平成7年改訂の少々古い版ですが、変化球な例題が少なく理解しやすい教科書です。
買った当時は内容の1/5も理解出来ませんでしたが、今は書いてあることがストレス無く理解できるような気分。あくまで気分ですケド。
Pythonなどの今時言語に比べるとC言語の表記は堅苦しいのですが、PICのアセンブラが一番好きな身には違和感が無く、堅苦しさの裏返しは曖昧さが無いことですから私はストレスを感じません。Pythonだってnumpyに代表されるライブラリを使うなら変数の型に気を配った堅苦しい書き方をするのですから同じことです。
まずは基本記述と変数とポインタの扱い方をシッカリ頭に入れましょう。この教科書には改訂版(2008年改訂5版)があるのでポチってみました。基本となるこの2冊を読破すれば何とかなるっしょ。道のりは長いものの、オブジェクト指向(C++)の記述まで習得出来れば初級卒業です。アセンブラな感覚で書くならば純ANSI-Cだけでいいのですが、今時のライブラリを使うにはオブジェクト指向の習得が必須です。
Art-NetパッチとライトアップIoTコンソールが当面の課題です。
#C言語
「改訂第3版 ANSI C 対応 はじめてのC」
(ANSIとはアメリカの工業規格です。ANSIの影響力は絶大で、C言語を名乗るならコレを基本とするのが絶対条件です。派生や方言はあれど、ANSI Cに準じて書かれたコードが動かなければC言語環境ではないのです。)
平成7年改訂の少々古い版ですが、変化球な例題が少なく理解しやすい教科書です。
買った当時は内容の1/5も理解出来ませんでしたが、今は書いてあることがストレス無く理解できるような気分。あくまで気分ですケド。
Pythonなどの今時言語に比べるとC言語の表記は堅苦しいのですが、PICのアセンブラが一番好きな身には違和感が無く、堅苦しさの裏返しは曖昧さが無いことですから私はストレスを感じません。Pythonだってnumpyに代表されるライブラリを使うなら変数の型に気を配った堅苦しい書き方をするのですから同じことです。
まずは基本記述と変数とポインタの扱い方をシッカリ頭に入れましょう。この教科書には改訂版(2008年改訂5版)があるのでポチってみました。基本となるこの2冊を読破すれば何とかなるっしょ。道のりは長いものの、オブジェクト指向(C++)の記述まで習得出来れば初級卒業です。アセンブラな感覚で書くならば純ANSI-Cだけでいいのですが、今時のライブラリを使うにはオブジェクト指向の習得が必須です。
Art-NetパッチとライトアップIoTコンソールが当面の課題です。
#C言語
そんなワケでC/C++の再勉強を始めたワケですがPythonよりも難しい。
基本的な文法は簡単ですが、ライブラリの考え方が前世代的ですので、どの関数がどのライブラリからの物なのか因果関係を理解するのに一手間余計にかかります。
また、ポインタの考え方も理解はしているつもりですがソースを書こうとすると頭が混乱します。このあたりは慣れなんでしょうが、マネージされている今時の言語の便利さを痛感。
だとしても、ポインタとライブラリの扱い方を攻略出来ればPythonと大差なく書けそうです。
#C言語
基本的な文法は簡単ですが、ライブラリの考え方が前世代的ですので、どの関数がどのライブラリからの物なのか因果関係を理解するのに一手間余計にかかります。
また、ポインタの考え方も理解はしているつもりですがソースを書こうとすると頭が混乱します。このあたりは慣れなんでしょうが、マネージされている今時の言語の便利さを痛感。
だとしても、ポインタとライブラリの扱い方を攻略出来ればPythonと大差なく書けそうです。
#C言語
Pythonはとても書きやすい。インタプリタなので即実行出来てデバッグも楽だし、処理速度を求めないなら短時間で書けて生産性がいい。
けど、重要な部分をC言語で書くなら全部C言語で書いてもいいんでないか?
Pythonが私の用途でイマイチな点は条件分岐を多用する繰り返し処理が遅いことです。だからこそPythonのライブラリをC言語で書こうとしているのですが、目的が機械制御ですからPythonを使っている時点でそもそも間違っていると言われても仕方ありません。
ならなぜC言語を使わないのか。
何十年も前の話ですがC言語に挫折したトラウマがあるからです。MS-DOS上のTurbo-Cを触ってみましたが、書けるには書けるものの、やりたい機械制御は霞の向うの桃源郷の様でした。正しくはデバイス制御が出来なかったとなるでしょうか。それが故にPICマイコンに目が向いたとも言えます。
ですが、今は良い教科書が多く、ネットにも先達の情報があふれています。デバイス制御をするにも先達たちが作り上げた資産の恩恵に与れます。
ケースバイケースでありますが、C/C++をもっと積極的に使った方がいい気がしてきました。
機械制御を目的とした製作なら、Pythonで試作をしてC/C++で本命を書くのがいいかもしれません。
PythonもC/C++も作法が違うだけで本質的には同じですし。
てなわけで、PythonのライブラリをC言語で書くことを勉強するのではなく、RaspberryPiをC/C++で開発する勉強をすることにします。
手始めに何十年も前に買ったANSI-Cの教科書を読み直しましょうか。Art-NetエンジンをC/C++で書くことを当面の目標にしましょう。これはPythonベースでほぼ完成していますからね。
#Python
けど、重要な部分をC言語で書くなら全部C言語で書いてもいいんでないか?
Pythonが私の用途でイマイチな点は条件分岐を多用する繰り返し処理が遅いことです。だからこそPythonのライブラリをC言語で書こうとしているのですが、目的が機械制御ですからPythonを使っている時点でそもそも間違っていると言われても仕方ありません。
ならなぜC言語を使わないのか。
何十年も前の話ですがC言語に挫折したトラウマがあるからです。MS-DOS上のTurbo-Cを触ってみましたが、書けるには書けるものの、やりたい機械制御は霞の向うの桃源郷の様でした。正しくはデバイス制御が出来なかったとなるでしょうか。それが故にPICマイコンに目が向いたとも言えます。
ですが、今は良い教科書が多く、ネットにも先達の情報があふれています。デバイス制御をするにも先達たちが作り上げた資産の恩恵に与れます。
ケースバイケースでありますが、C/C++をもっと積極的に使った方がいい気がしてきました。
機械制御を目的とした製作なら、Pythonで試作をしてC/C++で本命を書くのがいいかもしれません。
PythonもC/C++も作法が違うだけで本質的には同じですし。
てなわけで、PythonのライブラリをC言語で書くことを勉強するのではなく、RaspberryPiをC/C++で開発する勉強をすることにします。
手始めに何十年も前に買ったANSI-Cの教科書を読み直しましょうか。Art-NetエンジンをC/C++で書くことを当面の目標にしましょう。これはPythonベースでほぼ完成していますからね。
#Python
オレメモです。
PythonからC言語の関数を呼び出す(基本編)
タイトルの通りです。
部分の説明で満足しちゃって全体が見えない解説がネットにも書籍にも多い中、この作者は部分の説明から入って全体を見せてくれるのでわかりやすい。
C言語とPythonの両方を知らないと意味不明の暗号でしかありませんが・・・
#Python
PythonからC言語の関数を呼び出す(基本編)
タイトルの通りです。
部分の説明で満足しちゃって全体が見えない解説がネットにも書籍にも多い中、この作者は部分の説明から入って全体を見せてくれるのでわかりやすい。
C言語とPythonの両方を知らないと意味不明の暗号でしかありませんが・・・
#Python
やってもやっても本業が終わりません。
このところ、毎週火曜日水曜日頃、週末に人を貸してくれないかと相談が来ますので、同業者の皆さんも大変な日々を送られているのだと思います。お互い、体を労わって乗り切りましょう。
そんな渦中ではありますが、少しは息抜きをしないと精神が持ちません。
3Dプリンタの試作や製品構成の妄想は時間を取られないし途中でも切りやすいので本業の切れ目にやっています。
そんな息抜きをしていて想うことは「なんで自分の仕事の身の丈に合った道具が無いのだろう」という疑問です。
客席テーブルや先日作った平台箱足の一般的な規格に合わせた汎用のカゲ段もそうですが、誰でも思い付きそうなアイデアだけに無いことが不思議です。
身近なところに題材があって作って使えば仕事が楽になるのですから、工作が趣味の身としては面白いっちゃ面白いのですけどね。
今年はバレエ教室の発表会と簡単なライトアップをやれば落ち着きます。
「舞監」と呼ばれたなら時給100円でも完璧な下準備をするのが当然と思っている馬鹿な制作の仕事が年明けにあります。仮に予算が50万円あって、舞台進行、音響、照明をやったとして、舞台進行50万、音響50万、照明50万みたいな見方をしてくるのです。最初は「何言ってんだ、コイツ!?」でしたが、それが分かった時に唖然。金額でこちらの仕事にモノ言うなら、せめて3で割ってからにしろよって思います。不満をぶつけても理解出来ない人だし、年末年始を時給100円で潰したくないので適当にいなすつもりです。
さて、少し休んだので本業再開しましょう。
#雑談
このところ、毎週火曜日水曜日頃、週末に人を貸してくれないかと相談が来ますので、同業者の皆さんも大変な日々を送られているのだと思います。お互い、体を労わって乗り切りましょう。
そんな渦中ではありますが、少しは息抜きをしないと精神が持ちません。
3Dプリンタの試作や製品構成の妄想は時間を取られないし途中でも切りやすいので本業の切れ目にやっています。
そんな息抜きをしていて想うことは「なんで自分の仕事の身の丈に合った道具が無いのだろう」という疑問です。
客席テーブルや先日作った平台箱足の一般的な規格に合わせた汎用のカゲ段もそうですが、誰でも思い付きそうなアイデアだけに無いことが不思議です。
身近なところに題材があって作って使えば仕事が楽になるのですから、工作が趣味の身としては面白いっちゃ面白いのですけどね。
今年はバレエ教室の発表会と簡単なライトアップをやれば落ち着きます。
「舞監」と呼ばれたなら時給100円でも完璧な下準備をするのが当然と思っている馬鹿な制作の仕事が年明けにあります。仮に予算が50万円あって、舞台進行、音響、照明をやったとして、舞台進行50万、音響50万、照明50万みたいな見方をしてくるのです。最初は「何言ってんだ、コイツ!?」でしたが、それが分かった時に唖然。金額でこちらの仕事にモノ言うなら、せめて3で割ってからにしろよって思います。不満をぶつけても理解出来ない人だし、年末年始を時給100円で潰したくないので適当にいなすつもりです。
さて、少し休んだので本業再開しましょう。
#雑談
このところライトアップのご要望を多く頂きます。
特定の日時に人集めることが難しいため、特に行政さんではイベント予算の消化のためにライトアップをお考えになる事例が多いようです。
ただ、長くて2か月の半仮設に適したライトアップの制御システムは既製品にありません。電源は電気工事さんにタイマーとリレーを施工してもらえば何とでもなりますが、DMXを出力する制御盤はありそうで無いのです。5時間のライトアップをDMXレコーダーで現尺保存などしたくありませんし。
ならば作ってしまえとなるワケです。時刻をトリガーにシーンをめくる簡素なDMXコンソールってイメージですが、どうせならIoT的な手法でインターネット経由の遠隔操作が出来たらいいんじゃないかと。制御の核にRaspberryPiなどのLinuxベースのマイコンを用い、ポケットwi-fiを介してVPN接続するのです。VPNによってローカルLANと等しい接続をしてしまえばJAVA-scriptとPythonのsocketで自由度の高い制御が出来ます。現地の装置との接続を仲介するサーバーが別途必要なので、インフラ整備に物と手間と維持費がかかりますし、インターネットサーバーを扱うスキルも必要です。ナンのことすか?って話ですけどね。
未解決の課題は少なくありませんが、インターネットを介したVPNで遠隔操作する手段はとうの昔に獲得済みですから、ブラウザで操作できるコンソールをRaspberryPi上に構成すれば必要な要素は揃います。IoT照明コンソール(笑
未解決の主な課題はC言語によるPython用の計算ライブラリを書くことです。調光データの計算(マスター値を当てるとか、複数のシーンのレベルをマージするとか)に特化したものですが、繰り返し処理が激遅なPythonを補完するだけですので、PtyhonライブラリをC言語で書く教科書を熟読すればいけると思います。もちろんnumpyでも出来ることですが、繰り返し処理を軽くするには専用ライブラリがいいかなと。特化しといた方が書きやすいし。この案件に限らず、いずれ獲得したいライブラリです。
本題のような余談ですが、PythonはC言語より100倍楽に書けるけど100倍遅いイメージです。Pythonは変数の型に自由度があること(整数の除算の結果が自動的に浮動小数点なるとか)が書きやすい特徴の一つですが、Pythonのコアが変数の「型」を推測するのに時間がかかるのだそうです。代表的な例がfor文を多用した際の激遅っぷりです。for文は繰り返しのステップ毎に扱う変数の型を推測しますから遅くなるのは当然です。C言語は変数の型が厳密に扱われて気難しい反面、優しさ全開のアシスト機能が無いので速いのです。あちらを立てればこちらが立たず。処理内容に寄ると言ってしまえばそれまでですが、単精度で単純な計算を延々と続ける調光卓みたいなシステムでは繰り返しが多い計算をC言語によるライブラリとして書くメリットは多大なのです。どうやら、Pythonというシステムはそんな使い方をするようにデザインされているとのこと。PythonはC言語で書かれたガチなライブラリを出来るだけ楽に使うための踏み台だとイメージすると良いようです。
懸念されることは、世の中がコロナ前の状況に戻ってしまうと、ライトアップの件数も元に戻ってしまうことです。作っても使わないと意味ありません。
#照明器具 #Python
特定の日時に人集めることが難しいため、特に行政さんではイベント予算の消化のためにライトアップをお考えになる事例が多いようです。
ただ、長くて2か月の半仮設に適したライトアップの制御システムは既製品にありません。電源は電気工事さんにタイマーとリレーを施工してもらえば何とでもなりますが、DMXを出力する制御盤はありそうで無いのです。5時間のライトアップをDMXレコーダーで現尺保存などしたくありませんし。
ならば作ってしまえとなるワケです。時刻をトリガーにシーンをめくる簡素なDMXコンソールってイメージですが、どうせならIoT的な手法でインターネット経由の遠隔操作が出来たらいいんじゃないかと。制御の核にRaspberryPiなどのLinuxベースのマイコンを用い、ポケットwi-fiを介してVPN接続するのです。VPNによってローカルLANと等しい接続をしてしまえばJAVA-scriptとPythonのsocketで自由度の高い制御が出来ます。現地の装置との接続を仲介するサーバーが別途必要なので、インフラ整備に物と手間と維持費がかかりますし、インターネットサーバーを扱うスキルも必要です。ナンのことすか?って話ですけどね。
未解決の課題は少なくありませんが、インターネットを介したVPNで遠隔操作する手段はとうの昔に獲得済みですから、ブラウザで操作できるコンソールをRaspberryPi上に構成すれば必要な要素は揃います。IoT照明コンソール(笑
未解決の主な課題はC言語によるPython用の計算ライブラリを書くことです。調光データの計算(マスター値を当てるとか、複数のシーンのレベルをマージするとか)に特化したものですが、繰り返し処理が激遅なPythonを補完するだけですので、PtyhonライブラリをC言語で書く教科書を熟読すればいけると思います。もちろんnumpyでも出来ることですが、繰り返し処理を軽くするには専用ライブラリがいいかなと。特化しといた方が書きやすいし。この案件に限らず、いずれ獲得したいライブラリです。
本題のような余談ですが、PythonはC言語より100倍楽に書けるけど100倍遅いイメージです。Pythonは変数の型に自由度があること(整数の除算の結果が自動的に浮動小数点なるとか)が書きやすい特徴の一つですが、Pythonのコアが変数の「型」を推測するのに時間がかかるのだそうです。代表的な例がfor文を多用した際の激遅っぷりです。for文は繰り返しのステップ毎に扱う変数の型を推測しますから遅くなるのは当然です。C言語は変数の型が厳密に扱われて気難しい反面、優しさ全開のアシスト機能が無いので速いのです。あちらを立てればこちらが立たず。処理内容に寄ると言ってしまえばそれまでですが、単精度で単純な計算を延々と続ける調光卓みたいなシステムでは繰り返しが多い計算をC言語によるライブラリとして書くメリットは多大なのです。どうやら、Pythonというシステムはそんな使い方をするようにデザインされているとのこと。PythonはC言語で書かれたガチなライブラリを出来るだけ楽に使うための踏み台だとイメージすると良いようです。
懸念されることは、世の中がコロナ前の状況に戻ってしまうと、ライトアップの件数も元に戻ってしまうことです。作っても使わないと意味ありません。
#照明器具 #Python
今は資料映像の書き出し待ちです。
polymakerのABSフィラメントが入荷したので試したいけど時間がありません。
本業では「私だけ、ちょっとだけ」のオーダーが山積しており、ここ数日は自由な時間がほとんど取れません。つか、睡眠時間を確保するだけで精一杯。
お仕事を頂けるのはありがたいのですが、自分の用件を優先的に捻じ込もうと言質を取るというか揚げ足を取るというか勝手な解釈をする輩が居てとても不愉快だったりします。「この3日間のどれかは空くかもしれない」と伝えたのに「その3日のウチ、客先の都合で調整します」と返して来たアホがいる。なぜ、指定には合わせられないとかすべてダメかもしれないと言っていることを理解出来ないことが理解不能。
自分に向けての言葉でもありますが、なんかこうコロナを経て世の中の心が狭くなっているような気がします。
#雑談
polymakerのABSフィラメントが入荷したので試したいけど時間がありません。
本業では「私だけ、ちょっとだけ」のオーダーが山積しており、ここ数日は自由な時間がほとんど取れません。つか、睡眠時間を確保するだけで精一杯。
お仕事を頂けるのはありがたいのですが、自分の用件を優先的に捻じ込もうと言質を取るというか揚げ足を取るというか勝手な解釈をする輩が居てとても不愉快だったりします。「この3日間のどれかは空くかもしれない」と伝えたのに「その3日のウチ、客先の都合で調整します」と返して来たアホがいる。なぜ、指定には合わせられないとかすべてダメかもしれないと言っていることを理解出来ないことが理解不能。
自分に向けての言葉でもありますが、なんかこうコロナを経て世の中の心が狭くなっているような気がします。
#雑談
分岐カバーは様々な形を試しています。取り急ぎは中華TRUE1用です。ケーブルかレセプタクルかの組み合わせとなりますが、コストや手間を考えるとナカナカ決めきれません。
今のところ、40×80のアルミ角パイプにプリントしたフタを取り付けるのが良さそうです。すべてをプリントすると割れやすいのもありますが、アルミ角パイプを使った方がコストを抑えられそうだからです。4m材からの切り出しですと1個あたり320円程度です。コストは全てをプリントした際のフィラメントと大差ありませんが、プリント時間を考えればアルミの方が安いと言えます。浸水しない接着が課題ですが、ABSとアルミの接着なのでどうしたものか思案中です。
#照明器具 #ガチ工作
今のところ、40×80のアルミ角パイプにプリントしたフタを取り付けるのが良さそうです。すべてをプリントすると割れやすいのもありますが、アルミ角パイプを使った方がコストを抑えられそうだからです。4m材からの切り出しですと1個あたり320円程度です。コストは全てをプリントした際のフィラメントと大差ありませんが、プリント時間を考えればアルミの方が安いと言えます。浸水しない接着が課題ですが、ABSとアルミの接着なのでどうしたものか思案中です。
#照明器具 #ガチ工作
本業が過密日程ですが、3Dプリンタを用いた試作はプリンタが働くだけなのでボチボチと進めています。
仕上がりが良いとされているpolymakerのフィラメントの入荷は明日以降ですが、今使っているフィラメントでも仕上がりが良くなりました。
FDM方式3Dプリンタの仕上がりを左右する主な要素は、
1) ノズルの移動速度
2) ノズルの温度
3) プラットフォームの温度
となります。
このところ気温が下がりましたので、少し高めに設定すると良いようです。特に、ABSで難儀する反りはプラットフォームの温度を上げることでかなりの改善をみました。
#3D
仕上がりが良いとされているpolymakerのフィラメントの入荷は明日以降ですが、今使っているフィラメントでも仕上がりが良くなりました。
FDM方式3Dプリンタの仕上がりを左右する主な要素は、
1) ノズルの移動速度
2) ノズルの温度
3) プラットフォームの温度
となります。
このところ気温が下がりましたので、少し高めに設定すると良いようです。特に、ABSで難儀する反りはプラットフォームの温度を上げることでかなりの改善をみました。
#3D
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131