🗐 電装工芸日記 - 舞台照明機器の製作とか -

今年は開発案件を進めたい

or 管理画面へ

全年全月24日の投稿[43件](3ページ目)

2023年4月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 とりあえずの探り設定で綺麗にプリント出来ました。一つ前のプリントの不良は解消。
 これから数日は「靴屋の小人」さんに日夜頑張ってもらいましょう。1セット5時間半なので、出勤前と寝る前に開始、1日2セットです。
 製作数は未定ですが、角パイプを4mも買ってしまったので半分は使おうかなと。角パイプを90mm使うので20個程度作れます。パチモンTRUE1は山ほどあります。

#3Dプリンタ
Icon of admin
 フィラメントを使い切ったので別な物に交換。反り難いと高評価の物。
 十分綺麗なプリントだし謳い文句の通り反りは少ないけれど、ノズルの温度が合っていない感じがします。縁にバリというかブツブツが出るのです。温度設定をどうするか・・・
 購入ページで確認し直したところ、ノズルの推奨温度が今までのフィラメントよりも15度くらい高い。その代わりプラットホームの推奨温度は5度くらい低い。
 今のプリンタでノズル温度をそこまで上げられるのか疑問だけど、反りが少ないので使える様にしたい。
 改めて条件出しです。

#3Dプリンタ

2023年3月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 ライトアップを終わらせました。
20230324211358-admin.jpg
 架台と照明の作業比は9:1くらいでした。照明はなんちゃことなかったのですが、架台は部品製作から現地設置まで丸一週間かかりましたので。
 電源コネクタはTRUE1です。対候性能はIP65ですから、水没しない条件で全天候対応です。屋内でも普通に使えますから、直電源ケーブルは全てコレにしたい。
 純正品は高価ですが、中華電機で互換品(もといパチモン)が手に入ります。全身黒もあります。
 中華電機には色々なセラーがいますが「R Conector Store」は良心的なパチモンを扱っていると思います。
 良心的なパチモンとはコレ如何にだけど、下請け工場が5時から仕事で作っている感じですから中身はホンモノかなと。ちなみに「5時から仕事」とはホンモノを作っているところが横流し品を作ることを言います。

#本業

2023年2月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 Art-Net関連は脳裏に湧いたアイデアを一通り吐き出したら次の壁が見えてしまいました。
 Pythonでは思うように作れなかったことがC言語によって解決出来たことは成果ですが、最後の壁を攻略したと思ったのに次の壁が霧の先に見えています。登る方法や降りる方法、はたまたトンネルを掘る方法を地道に探さんといけません。登るべきか掘るべきかルートを変えるべきかも壁の先が見えないのでわからんのですけど、壁が間近に見えるところまで行って一服すかね。
 壁と書きましたが、その筋の専門家にとっては小さな水溜りかな?

 四の五のと言葉を積んでも出来んことは出来んので、一服ついでに棚上げになってるネタに手を付けています。
 「後は組むだけ」で放置してあるネタが幾つかあるのでそれをヤリ切ってしまいましょう。
 児童公園の築山を攻略してガッツポーズする50代も格好悪すぎてワルくないwww

#雑談

2023年1月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 本業では社内のサーバーやパソコンのメンテをしていますが、処理の待ち時間でC言語のお勉強。
 時間についてです。
 DMXを扱うには無受信1秒でタイムアウトしなければなりませんし、Delayを構成するには1/30~1/50秒程度のインターバルタイムで受信値をスタックしなければなりません。
 ですので、msec(1/1000)クラスの時間評価が必要です。

 システムが持つ時間情報を扱うには<time.h>を用い、エポック秒やPOSIX時間などと呼ばれる基準日時(1970年1月1日0時0分0秒(UTC))からの経過時間(secとnsec)を使うのがよいと思います。有効な精度は10usec程度の様ですが、今現在書いている処理では十分です。これを処理の節目でスタックして経過時間を評価するのですが、年月日時でパラメータが分かれているよりもトータル秒数の方が扱いが簡単です。23時59分59秒の1秒後に0時0分0秒にならないタイマで継続した時間評価をしたいのでこの方がいいと思います。
 ただ、スタックする変数のバイト長には気を付けないといけません。secもnsecもそれぞれ4バイト数なので評価をするには8バイト数で考えないといけないからです。64bitOSならint型でも8バイト数なことが多いので問題ありませんが、私はRaspberryPiで32bitOSを使っているのでint型は4バイト数になります。対策には8バイト数である「(unsigned) long long int」型を使います。ちょっとクセがある型なので計算やprintfで注意しないといけませんケドね。

#C言語
Icon of admin
 オレメモであります。
 参考になりそうな先達のページ

● UDP/IP通信全体の参考
UDP / IP でパケットの送受信を行う
● broadcast通信の参考
UDPブロードキャスト送信サンプル
● ネットワークデバイスを指定した通信の参考
Ethernetインターフェース(eth0, eth1)を指定してソケットを作成する (Linux, C, Raspberry Pi)
● 受信タイムアウトの参考
selectを使用してタイムアウト付き受信を実現する <= recvもrecvfromも受信があるまでひたすら待ち続けるので、タイムアウトさせることは必須。
UDP通信におけるselectの使い方。 <= recvの例が多い中、recvfromの書式を確認出来る。recvfromを使う理由は送信元アドレスを取得したいから。
● 時間の扱い方
時間情報の取得方法と扱い方 <= これの5ページ目の「POSIX環境」が結構大事。DelayをするにもDMXのタイムアウトをするにもこれが必要。
● ターミナルの行長と行数を取得する
ターミナルのサイズを取得する
ターミナルの幅と高さを得る
● ANSIエスケープシーケンス
ANSIエスケープシーケンス チートシート

 この辺りを参考にすれば「ネットワークデバイスを指定してbroadcastで通信する」が出来そうな気がします。
 ただし、1行々々読み込んで使われている構造体をよく把握することが大切です。構造体の中に必要な情報が隠れていることが多いからです。構造体の中に構造体があったりもするので、十分に読み込まないといけません。

 実験は受信が当面の課題となり、
1)ネットワークデバイスを指定せずArt-Netを受信する。<= とにかく受信する
2)ネットワークデバイスを指定してArt-Netを受信する。<= ネットワークデバイスを制限して受信する。
3)送信元IPアドレスを取得し、IPアドレスをもとに受信値を振り分ける。<= 複数の送信元(卓)がある場合の不確実性排除とミックス処理のためには不可欠。
 といった手順で進めることになろうかと思います。
 受信値を確認するため、習作を兼ね、バイナリをダンプ表示をするライブラリも作ってみましょう。

#C言語 #[Art-Net]
Icon of admin
 RTCを装着したRaspberryPiは正常のようです。
 今後製作する装置にもRTCを装着したいのですが、電池切れをどうやって拾うか思案中です。

 socketの実験は連休中に時間が取れず未対応です。
 Art-Netの受信と送信を1台でこなすにはIPアドレス的には同じゾーンで装置は別という変な構成になります。その上、broadcastで受けてbroadcastで送るというこれもまた変な構成です。ですので、コピペで使える先例がありそうでありません。
 RaspberryPiのPythonでは成功していることですから可能だと思いますが、C言語のsocketの方が設定すべきパラメータが多いため、Pythonには無かった設定をどうするかが難問なのです。難しいというより、「ネットワークデバイスを指定してbroadcastで通信する」という前提の先例が少なく、沢山のデータシートを継ぎハギしないと見えないことが多いために苦心しているところです。

#RaspberryPi #C言語 #[Art-Net]

2022年8月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 帰宅して確認したところ裸族のPiがチンチンに熱くなって止まっていました。
 HDD4台同時にフォーマットを実行しましたので過負荷だったのかな?
 とりあえず冷ましてHDDを1台毎に再フォーマット。

#ガチ工作
Icon of admin
 作業部屋があまりに酷い。自分以外の人が見たら単なるゴミ部屋状態で作業がし難い。
 とりあえず、分解されている品からボチボチ仕上げることにしました。
 まずは、センチュリー社製の「裸族のカプセルホテル」にRaspberryPi4Bを内蔵した「裸族のPi」を1台仕上げました。
 RaspberryPi4Bを手に入れるのに難儀しましたが組まないと意味がありません。
 動作確認を兼ねてHDDのフォーマット大会をしています。

#ガチ工作 #RaspberryPi

2022年7月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 これまではPIC16系でI2Cを扱う方法はデータシートを読んでも理解出来なかったのですが、次のページのサンプルプログラムを読みながらフラグの意味を整理したところなんとなくわかってきました。
 「I2Cのスレーブモードの使い方」
 サンプルソースはPIC18系っぽいですが、違いを読み変えればPIC16系のサンプルにもなります。

 SPIもそうですが、シフトレジスタ系の通信方法で重要なことは受信値を処理して次の受信コンディションが整うまで送信を一次停止させることです。
 I2Cではこの処理をハードウェア的に行うことが可能です。SSPCON2:SENをセット(フラグを1に)しておくと1バイトの受信が終わったところでクロックストレッチングと呼ばれる一時停止がハードウェア的に自動発生するモードになります。クロックストレッチングを解除し受信コンディションにするにはSSPCON1:CKPをセットするだけです。

 スレーブ受信処理の流れは、
1)SSPCON2:SENとSSPCON1:CKPをセットして受信コンディションにする(SSPCON2:SENのセットは初期化処理の時だけでいい)
2)バイトデータが受信されたらSSPBUFからデータを取り出す(この時点でSSPCON1:CKPはハードウェアでクリアされクロックストレッチングが発生している)
3)データを取り出したら(取り出したデータの処理が済んだら)SSPCON1:CKPをセットし次の受信コンディションにする
4)以下、ストップビットが検出されるまで(2)から繰り返し
 となります。

 スレーブ送信(返信)の場合も同様で、所定のレジスタにデータを入れた後、SSPCON1:CKPをセットするとマスターがクロックを刻み始めて送信となります。
 所定のレジスタにデータを入れると自動的にSSPCON1:CKPがセットされて送信が始まるモードもあるようです。

 ただ、SSPCON3:AHENとSSPCON3:DHENの意味がわかったようなわからないような状況です。両方ともクリア(=0)で良いような気もしますが、便利機能かもしれないのでデータシートを良く読んで整理しましょう。

 I2Cは敷居が高いイメージがありましたが、ハードウェアによる自動処理が多くソフトウェアで細かいタイミングを考える必要が無いため、この調子で整理していけば案外簡単に使えるかもしれません。
 PICでI2Cを扱うことが可能になれば、今回のパラレルバスLCDなどのI2Cに対応していないデバイスをI2C化することが容易になります。
 通信速度や即応性、RTOS的なリアルタイム性を求めるのは難しいと思われますが、7bitアドレスのノーマルモードでもI2Cバス上に126個のデバイスを置けますので、RaspberryPi、Arduino、ESP32などの製作の幅が広がるような気がします。

#電子工作

■思ってみた

2月とはいえ寒いです。
石油ストーブのありがたみを感じる日々であります。

編集

■全文検索:

複合検索窓に切り替える

■複合検索:

  • 投稿者名:
  • 投稿年月:
  • #タグ:
  • カテゴリ:
  • 出力順序:

■日付検索:

■カレンダー:

2023年4月
1
2345678
9101112131415
16171819202122
23242526272829
30

■カテゴリ:

■最近の投稿:

最終更新日時:
2026年2月24日(火) 14時55分37秒