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

能登半島地震で被災された方々にお見舞い申し上げます。

or 管理画面へ

全年全月27日の投稿[36件](2ページ目)

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

Icon of admin
 LTC Generator のアルゴリズムを整理しています。
 これまで別々に考えてきた要素を一つにまとめて確認する作業ですが、潜在しているバグを見つけるのはパズルを解くような感じです。文法の間違えはアセンブラに怒られるのでわかりやすいのですが、アルゴリズムの間違えは自ら見つけないといけないからです。今は設計書の段階ですが、ソースを書く前に出来る限り潰しておきます。
 現地照明の仕事に来ていますが、他社さんのお手伝いですし、仕込み直し以外は楽屋待機なので暇つぶしに丁度よい作業です。

#タイムコード #PIC

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

Icon of admin
 ふと思いついてこんなん試作ってみました。
20230427110940-admin.jpg 202304271109401-admin.jpg
 塩ビ水道管のT分岐にTRUE1のレセプタクルを取り付ける方法です。
 TRUE1の取付部は3Dプリンタで作っています。何の仕上げもしてないのはご愛嬌。
 塩ビ水道管の接着剤(エスロン)はABSも溶かすようです。ABS接着剤と臭いが似てるので試したところビンゴでした。
 溶着なら水漏れの心配はありませんし接着強度も十分です。
 
 先日作ったのはY分岐で、これはT分岐です。
 どちらがいいというより使い分けです。
 サスバトンに鈴蘭ケーブルごとく横繋ぎしていくならこれの方がいいかも。
 寸法の手直しがあるので、もう1セット作って評価しましょう。

 Y分岐もそうですが、意外な問題点はケーブルの仕舞い方です。
 ハウジングにはレセプタクルの取付穴しか開口部がありませんので、ケーブルの先端が取付穴から顔を出さないと結線が出来ません。この顔を出すための余長が思った以上に仕舞い難いのです。
 出来るだけ柔らかく、出来るだけ細いケーブルが望ましいのですが、KIVではなくHKIVなら太さを1ランク落とせます。KIV2.0スケアとHKIV1.25スケアの許容電流はほぼ同じです。
 

#3Dプリンタ #器具の製作

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

Icon of admin
 中華電機ムービングの筐体が割れています。アッパーボックスの樹脂パネルです。これを修理します。
 樹脂の補修は材質を把握するのが第一歩です。材質によって治し方が違うからです。
 材質の判断は匂いで見当を付けて溶剤もしくは接着剤で溶解具合いを見るのが基本です。今回のはABSでした。

 ABSどうしの接着ならコレが基本でしょう。セメダインの「ABS用」です。
 接着には様々な方法がありますが、これは「溶着」です。材を溶かして結合させます。
 面積のあるABSどうしの接着ならコレを両側に塗って貼り合わせればほとんど場合十分です。
20230227200529-admin.jpg
 今回のブツは肉薄なので肉盛りして補強した方がいいみたいです。破断面がキチンと嚙み合いませんので歪みというか応力がかなり残っているようです。今回の破損も衝撃が引き金だとしても応力のために割れやすくなっていたとも思われます。加熱して応力を取ることも出来るそうですが、職人技なので私には無理です。
 こういう時にはプラリペアです。樹脂材全般に使えますが、ABSとは相性が良いので裏側に盛って補強にします。
20230227201504-admin.jpg
 ただ、単にプラリペアを盛るより接合面に谷を掘って盛るのがお勧めです。
 こんな時、ミニルーターが便利です。私はPROXXONのミニルーターを使っています。
20230227204722-admin.jpg

 ABS用で形を戻し、裏側の目立たないところにプラリペアを盛って補強します。

#器具の修理

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

Icon of admin
 ANSI-CというかLinuxのC言語ではキー入力は「待ち」が基本です。何かキーが入力されるとか、Enterを押されるまで処理が一時停止します。それでも構わないこともありますが、ダメな時もあります。
 WindowsならDxLib.hを使って様々な入力を直に得ることが出来ますが、ANSI-Cの標準ライブラリには同様の物がありません。
 そこで、キー入力があれば受け付け、無いなら飛ばして次に行く処理を作ってみました。キー入力はOSがバッファしているので、これを覗く形です。

Raspberry Pi 4B / Rasbian11_32bit(blueseye) / OS標準gcc
/* ---------------------------------
  リアルタイムにキー入力をチェックする
  --------------------------------- */
/* getcharはキー入力のキャッシュが空だと入力があるまで待つ。
  キャッシュが無いなら無いでそのまま抜けたいが、タイムアウトを設定しても
  抜けない。環境に寄るのかもしれないが、ioctl.hを用いることで
  タイムアウトが実現できた。
*/

/* ライブラリ読み込み */
#include <stdio.h>
#include <sys/ioctl.h>
#include <termios.h>
#include <unistd.h>

/* 定数設定 */
#define SET 1        // ioctl.readのモードをRawにするフラグ
#define RESET 0       // ipctl.readのモードをCanonicalに戻すフラグ

/* プロトタイプ宣言 */
int get_inkey( char *get_char ) ;  // キー入力を取得する関数
  // char *get_char  取得したキーコードを返すポインタ
int set_inkey( int mode_flag ) ;  // キー入力のモードを設定する関数
  // int mode_flag  モードの設定フラグ 1(SET)=Rawモードにする / 0(CLR)=モードを戻す

/* テスト用main */
int main(void) {
  char in_char = 0 ;   // 入力されたキーコードを保存する変数
  int ret_inkey = 0 ;   // get_inkeyからの戻り値を保存する変数
  /* コンソールの設定を初期化 */
  set_inkey( SET ) ;
  /* 無限ループで入力したキーを表示する */
  for(;;) {
    // get_inkeyから1文字取得
    in_char = 0x00 ;          // 事前初期化
    ret_inkey = get_inkey( &in_char ) ; // キー取得
    /* get_inkeyの戻り値を処理 */
    // 戻り値が-1ならエラーなのでループから抜けて終了
    if( ret_inkey == -1 ) {
      break ;
    // エンターキーが押されたならループを抜けて終了
    } else if( in_char == 0x0A ) {
      break ;
    // 入力された文字を出力する・・・表示可能な文字
    } else if( in_char >= 0x20 && in_char <= 0x7F ) {
      printf( " %c<%02X>", in_char, in_char ) ;
    // 入力された文字を出力する・・・表示不可能な文字
    } else if( in_char > 0x00 && in_char <= 0xFF ) {
      printf( " <%02X>", in_char ) ;
    }
    fflush( stdout ) ; // 画面表示のスタックを吐き出す   
  }
  /* 正常終了 */
  printf( "\n" ) ;    // 念のための改行
  set_inkey( RESET ) ;  // コンソールの設定を元に戻す
  return 0 ;
}

/* キー入力を取得する */
int get_inkey( char *get_char) {
  char in_char = 0 ;     // 入力されたキーを保持
  char read_length = 0 ;   // 読み込んだバイト数

  // readを使って標準入力から1文字取得
  read_length = read( 0, &in_char, 1 ) ;
  // read_lengthが-1ならエラー、それ以外なら正常
  if( read_length != -1 ) {  // 正常なので取得値を返す
    *get_char = in_char ;
  } else {          // エラーなので以上通知
    *get_char = 0x00 ;
    set_inkey( RESET ) ;
    return -1 ;
  }
  return 0;
}

/* キー入力のモードを設定する */
int set_inkey( int mode_flag ) {
  static struct termio tty_backup;    // 変更前の設定を保持
  static struct termio tty_change;    // 変更後の設定を保持
  // モードを設定する
  if( mode_flag == SET ) {
    // 現在の設定をスタック
    ioctl(0, TCGETA, &tty_backup);
    tty_change = tty_backup;
    // 設定を変更
    tty_change.c_lflag &= ~( ECHO | ICANON ) ;   // エコーを止め、RAW モードへ変更
    tty_change.c_cc[VMIN]= 0 ;          // 0文字入力された時点で入力を受け取る
    tty_change.c_cc[VTIME] = 0.01 ;        // 何も入力がなくても1msec待つ (1 = 1/10sec)
    ioctl( 0, TCSETAF, &tty_change ) ;       // ここで設定を反映
  // モードを戻す
  } else if( mode_flag == 0 ) {
    // スタックしていた設定に戻す
    ioctl( 0, TCSETAF, &tty_backup ) ;
  }
  return 0;
}


 同じ感じでgetcharを使ってもいいような情報が多かったのですが、RaspberryPiのblueseyeではこの方法でないとキー入力があるまで一時停止してしまいます。
 Pythonでも同様の処理を書いたことがありますが、C言語の方が圧倒的にレスポンスがいいです。
 矢印キーがANSIエスケープシーケンスのコードで取得できたことには驚きましたが、ファンクションキーも含め、getcharでは取得できないこともあるキーも取得出来て満足。
 ただし、シフトキーなどの装飾キーを単体で取得することは出来ません。

#C言語

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

Icon of admin
 C言語を習得する壁として代表的な機能は、
1)ポインタ
2)構造体、共有体
3)typedef(自分なりの変数の型を定義する)
 でしょうか。
 ポインタは以前も書きましたが、変数をアドレス値で読み書きする方法です。CPU、メモリ、デバイスというハードウェアの基本要素が頭に入ってないと捉えにくいのですが、わかればシンプルだと思います。
 構造体はPythonで言うところのタプルみたいなものです。
 共有体は機能はわかっても意味がイマイチピンときませんが、高度なことを書く際に便利なのでしょう。
 typedefにはじんわりとオブジェクト指向を感じますが、データベースにアクセスするなど、構造体を多用する際に便利な気がします。
 他は計算記述とループコマンドですが、これらは方言のレベルで受け入れればいいようです。配列に対する計算はPythonと少し違うみたいなので整理が必要です。
 要所の基本は理解できたっぽいので、とにかく書いて慣れることですね。
 呆れる程書いて体に馴染ませたPICのアセンブラ並にC言語を書けるようになれたら御の字です。

 実習はこれからですが、共有メモリも見えてきました。
 名前のままですが、複数のプロセスからアクセス(共有)できるメモリ領域を定義する方法です。
 mmap(メモリマップドファイル)とかpipeに似ていますが、mmapはRAMディスク上のファイルを共有するイメージで、pipeは変数の内容をシステムを通じて送受信するイメージです。どれもプロセス間で情報を共有する手段ですが、共有メモリはこの中でもローレベルでシンプルな方法だと思います。ローレベルすなわち速度が期待でき、最初の定義は面倒だけど定義さえ済めば単なる変数として扱えます。
 今時のOSは特定のプロセスがアクセスできるメモリ領域を制限することで動作の安定とセキュリティ(セキュア)を担保します。このため、別プロセスの領域にある変数(メモリ)にはポインタを使ってもアクセス出来ないのです。
 MS-DOSなどの初期のOSではありえなかった制限ですが、利便性とセキュアは矛盾するシステム要件ですから、抜け道として共有メモリが用意されたのしょう。アクセスが許可されたプロセスからはただのメモリ領域ですからポインタで普通に読み書き出来ます。動作速度が通常変数と大差ないのも嬉しい。
 共有メモリを定義して得られる情報はID、先頭アドレス、メモリサイズ、パーミッションだけです。OSやコンパイラがマネージしてくれない変数ですから、メモリに展開する構造体を手作業で管理しなければなりません。読み書きもマネージしれくれませんので、プロセス間で動作が衝突して誤動作に繋がる可能性があるので、セマフォを使うなり、データを一方通行にするなりして対策する必要もあります。この辺りはPICのアセンブラと同じですけどね。

 学んでて思うのですが、C言語はアセンブラを抽象化して書きやすくしたものだとするのが私には自然です。アセンブラを補助するマクロ集を膨らませていったらマクロ命令だけでもプログラムソースが書けるようになってしまい、ならばマクロの内容を整理したら更に便利ぢゃね?となったんじゃないかと勝手に想像しています。プログラム言語としてJAVAやPythonと同類に位置付けされますが、性根のところでは別分野の代物なんですよ。学ぶ側にとっては、俗に言う高級言語に分類するから逆に理解し難いんだと思うのです。ハードウェアが直に読むマシンコードを便利マクロだけで書くと思えばポインタなどは超お気楽な便利機能に見えてきます。
 つーて、アセンブラとかマシンコードって何?って聞かれてしまうと困ります。色彩をカラーフィルターの番号と光源のレベルで例えてしまう照明屋の言葉が一般には通じないことと同じです。

#C言語
Icon of admin
 ライトアップのご依頼が多くなっています。
 自家製の制御システムがあるので安く提供出来るのが強みですが、このところはリレーやタイマーが手に入らず難儀してました。
 今月に入ってダメもとでモノタロウさんを見直したところ在庫あり。メーカーのサイトを見ると「供給量が少ないのでご注意ください」とはあれど供給は復活している。
 速攻でオーダー。
 リレーはOMRONさんのG7L-2A-BUBですが、フランジ形状なので取り付けが楽で、小型で動作電流も少なく、20A流せるので使い勝手が良いリレーです。AC100vで駆動する物を主に使いますが、制御用のDC電源が不要だし、横繋ぎで動かせるし、既設のタイマーで動いているAC100v負荷があれば制御信号として電源を盗み出して使うことも出来ます。
 タイマーも数量限定ながら手に入りました。近い将来IoT化するつもりですが、電源の制御はシンプルなタイマーリレーに限ります。

#本業 #ガチ工作
Icon of admin
「行燈」を作らねばなりません。
 灯台の様な円筒の建物のライトアップを依頼されているのですが、歴史のある代物なので落ち着いた雰囲気にしたいと。
 建築デザイン的に窓の存在感が強いのでライトアップでも窓を主張したいと。
 カーテンを付けて光を透かせばいいのですが、ライトアップをしない面の窓からは出来るだけ光を漏らしたくないと。
 と、なりますと、内側から窓に向けた面だけが光る「箱」をこさえねばなりません。「行燈」なワケです。
 お金も手間も時間もかけられないし、どうしたものかと思案しておりますが、看板屋さんの知恵と資材を使わせてもらうことにしました。
 全体を木枠で作り、光を漏らしたくない面には肉厚のターポリンを張り、光らせる面にはノボリ看板で使う生地を張ります。相手物が相手物ですから防炎素材を使わないといけませんが、看板で使う素材は余程の安物でなければ防炎素材。
 ちょいと年末年始休暇を減らして製作ですねぇ。

#本業 #ガチ工作

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

Icon of admin
 こんなん試作ってみました。
20221127203406-admin.jpg
 ケーブルをリングスリーブで接続した際のカバーですが、防滴のブンキーになったらいいなと。
 3Dプリンタの精度確認をしたかったので、現場で待ち時間が長かった時に描いたデータをプリント。精度確認の目的でもありますが、外皮をかなり肉厚にしてインフィルも細かくしたので強度はありそうです。バイスに挟んでハンマーで叩いたり、コンクリ目掛けて投げつけて壊れなければ使えるかなと。どのくらいで壊れるかを試すのも大事。いや、試作の醍醐味(笑
 水没に耐えられる完全な防水は目指してはいませんが、雨風を受けてもへっちゃらならOKです。

#3D #照明器具

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

Icon of admin
 鬼のデスクワーク中ですが、資料映像のレンダリング中は休憩です。
 気分を切り替えるのにクリアカムのパワーサプライのケースを作っています。
 ケース本体は中華電機製ですが、これを黒に塗装。ミッチャクロンを下地にしますが偉大な下地材です。凄い喰い付き。
 コネクタやスイッチを取り付けるフロントとリアのパネルは3Dプリンタでプリントした物にレーザープリンタで出力した紙をラミネートしたシートを貼ります。以前もご紹介しましたが、耐水紙に印刷してツヤ無しのラミネートで挟んだ物です。これは舞台のマーキングにも使えるなかなか優れた代物ですが、ケースのパネルの装飾に使うとかなりそれっぽくなります。

#ガチ工作
Icon of admin
 クリアカムのパワーサプライはA/B2系統としA+Bのパーティにも切り替えられるようにします。
 仕組みは、AとBそれぞれにターミネーターを入れ、A+BのパーティにするならBのターミネーターを切り離してAと繋ぎます。極々ありふれたスイッチ1つで出来ます。
 2系統必要なことは滅多にないけれど便利かもしれないし、コストも手間も大してかからないので、どうせ作るなら実装しておこうかなと。

#電子工作

■当面の課題

花粉症シーズンも一段落したようで重傷者にも笑顔が戻ってきました。私は原始人なので花粉が酷い日でも鼻の中が埃っぽいなぁくらいにしか感じませんけど。
気温の変化が激しいようですので、みなさま健康管理には注意してください。

編集

■全文検索:

複合検索窓に切り替える

■複合検索:

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

■日付検索:

■カレンダー:

2023年5月
123456
78910111213
14151617181920
21222324252627
28293031

■カテゴリ:

■最近の投稿:

最終更新日時:
2024年5月17日(金) 11時57分19秒