ラベル Miscellaneous の投稿を表示しています。 すべての投稿を表示
ラベル Miscellaneous の投稿を表示しています。 すべての投稿を表示

2025年8月27日水曜日

NI USB-6501PythonによるPower Supply 制御

また、Pythonを使用した話し ですです。

 ■概要
今回は、remoteでKIKUSUIのPower Supplyを制御して、一つのPSから多数の出力をコントロールすることを狙ってNI USB-6501Digtal I/Oの24channels を使用してMOSFETを制御するものを作ってみた。

■プログラムの引用先
KIKUSUIはPythonのサンプルがHPにあるので使用した。
National InstrumentsはGitHubから引用した。

■作画
Tabを使用したプロットを作成する。
昨年度作成したGitHubのCopilotに教えてもらったタブプロットを利用する。

■問題点
①USB-6501:コマンド出力できるが、ステータスを読み取れていない。(わからない)仕方がないので、LEDで出力状態を表示
②KIKUSUI:一定値が続くと出力を10秒ごとにするように可変時間を採用したが、意図がずれる。(プログラムが下手)

2025年3月5日水曜日

GitHub Copilot を使用したプログラムをGitHubに投稿する

GitHub Copilot を使用したプログラムをGitHubに投稿
っていいのか?

■プログラムの著作権
GitHub Copilotを使用して作成したプログラムの著作権は誰にあるのか?
AI関連の著作権はどこにあるのか少し疑問
でも、何を使用して作ったかが書いてあれば良いか? 文献の引用のように解釈した。
少しは手を加えているので、GitHub Copilotがすべてを作った訳でもない。(言い訳)

正しく言えば、自分で作れば悶々とした時間だけが成果物で、ものにはならなかった。今回のものは昨年の11月ごろに着手してpendingになっていたものを うまく動作させる方法をGitHub Copilot に教えてもらった。

■内容
Plotをタブ形式にして見やすくしたもの
何枚もプロットすると、windowを何枚も開いて収拾がつかなくなる。
Tabを押せば、そのプロットが現れる(リアルタイムープロット実行中)
取り合えず、スタートボタンを押せば、2枚のプロットがほぼ同時にスタートする

■結果と感想
GitHubの’Real-Time-Plot-with-Tabs’ に登録してみた。
GitHub Copilotを使用し始めて、やりたいことが簡単に作成できるようになった。
VSCodeの画面とGoogleのWeb画面を行き来しながら、「あーでもない。こーでもない。」とやっていた時からすると、One Stop Serviceであるので画面を切り替える手間もなく、その上AIがやりたいことを実現してくれるので その開発速度はすごいことになってきている。

こんな感じの小さな画面でスタートする

スタート後、windowは勝手に拡大
Graph2 Tabを開けるとこんな感じ

2025年2月28日金曜日

GitHub Copilot Edits on VSCode で開発が爆速になる....ってホント?

最近GitHub Copilot Editsでプログラムの開発が爆速みたいな記事(たぶん@IT通信 でも記事が探せない)があったので、使ってみることにした。

■どんな風か
一番典型的で有効な場面は、プログラムを修正する場面で「CheckWriteしたいな。」みたいな時に自分が追加で何かを書こうとすると、先回りして書きたいことを書いてくれる。Wordの機能?(インプットメソッドの機能?)である「自動補完/入力補完」と似ている。Wordの入力補完は何となくハズレが多いが、VSCodeのCopilot Editsは的確なのでタブキーを押して確定する機会が多い。 さすがAI。 特に、分野がプログラムの開発なので、その特定分野のLLMはいい感じ集積されていて、的確な回答が返ってくるのでしょう。

■例
pと書き始めると
①VSCodeのもともとの補間機能でインスタンス類をブルーで提案
pと書いたので選択するものがタブ状にpの下側に多数表示される
②GitHub Copilot Editsは グレーでpのあとに「rint(col0)」と提案
 タブキーを押せば確定する。
(例としては、少し有り難た味 がないなぁ。もう少し良い例示を探そう)

GitHub Copilot Editsの例

■現状の評価
まだまだ、使い始めて間がないので点をつける訳にはいかないが、イイ感じに提案してくれる。
また、CopilotのChat-GPT4.0で会話すれば簡単にゼロからCodeを書いてくれる。
修正は、さらにChatを進めるか Edits側で行うことも可能。
ほぼ、やりたいことはAIでできる様だ。
以前はワープロとインプットメソッドの出現で漢字が書けなくなると思っていた。そのうち、AIで文書やソフトウェアも書けなくなる自分がいるような気がする。

2024年10月19日土曜日

ロングレール工事



名鉄のロングレール化 少しずつ進めてる。

駅を中心に名古屋寄りはロングレールでの反対側はまだロングレールでなかったので、その準備中のようだ。
少し前は単品のレールだったと思う。そこを写真に収めたかった。残念。

12/23 月曜日に気づいたら完成していた。週末の夜に入れ替えたのかな?


10/19 準備途上

12/23 気付いたら完成していた


2024年9月13日金曜日

Python Jupyter Notebookで地図を作成

Python Notebookで作成した地図をコピーして
HPに張り付けてみた
Pythonで5行程度のプログラムの出力が以下の地図。
なんてこった!
明石市の子午線通過位置にマークを付けて、その近傍の地図にした。
地図の拡大縮小にも対応している。(Interactive Likeな地図になっている)

Make this Notebook Trusted to load map: File -> Trust Notebook

2023年11月5日日曜日

Thorlabs/Motion_Control on Python

毎度! 今日もPythonネタで、 どーもすいません。

ThorLABSのmotion Controlをpythonで動かしている。
Analyzer側に回転モーターを取付け、Polarizerとの直交条件を探索している。
左からコントローラー電源、TDC001モーターコントローラー(USB接続)、PRM1-Z7(回転モーター)

■ThorLABS APT
 今までは、ThorLABS APTというソフトのwrapperでPythonで使用できるライブラリを使用してきた。こちらがそれ。

 モーターコントローラー/ドライバーは TDC001/PRM1-Z7の組み合わせ。discontinuedの商品。また、ThorLABS APTが使用しているActive XはMicrosoftは維持しない。もしかして将来はない?カモ。しかし、インストールは簡単で、ソーラボのAPTをインストールした後は、README.mdに従い、以下の操作をする。

 Copy APT.dll from the "APT installation path\APT Server" directory to one of the following locations:

        Windows\System32
        into the "thorlabs_apt" folder
        your python application directory

動作コマンドは、Exampleに従えば良い。
Example以外のコマンドは以下から探した。
なお、”move_to”,”move_by”,”move_home”,”position”のコマンドは使えると分かったが、move_to(角度の絶対値移動)は180degを超える所でCW,CCWを判断しないで常にCW方向に移動するので、絶対値移動は相対値移動(move_by)に書き直して使用した。


■ThorLABS Kinesis
ThorLABS の新しいソフトにKinesisがある。こちらは.NET対応。また、古い機種にも対応していると書いてはある。しかし、TDC001/PRM1-Z7の組み合わせでは回転モードにならないので、python版も使っていなかった。


本当にKinesis/TDC001/PRM1-Z7 の組み合わせでは並進モードしか作動しなくて回転モードでは動作しないのか? 興味本位だが ThorLABSの書いたKinesis python版を動かしてみたくなった。そこで、以下のページを参照して動作させてみる。
  https://github.com/Thorlabs/Motion_Control_Examples

このページのReadme.mdに
Python examples make use of the pythonNET and cTypes modules. 
と書いてある。pythonNETをインストールして.NETのCLI(コマンド・ライン・インタフェース)を使用できるようにしてみた。

■環境整備
まず、
①64bit版Kinesisをインストール

②Requirementsの項
 Additionally, it is currently necessary to communicate with devices using serial commands via the FTDI chip present in all MotionControl devices. と書いてあるので、FTDIのdriverとやらもインストール

③Python Requirementsの項
 最後にpythonNETをインストール

これで、動作環境は整った。

■実行
GithubのExampleからPythonのKcube/KDC101 のPythonnet.pyをCopyした。

①ライブラリ
 自分の環境に合わせて、CLIのライブラリはKCubeからTCubeに変更
"C:\\Program Files\\Thorlabs\\Kinesis\\ThorLabs.MotionControl.KCube.DCServoCLI.dll
⇩
"C:\\Program Files\\Thorlabs\\Kinesis\\ThorLabs.MotionControl.TCube.DCServoCLI.dll"

②Motorシリアル番号,DeviceName
 serial_noを変更。
 DeviceSettingsName = "PRM1-Z7"に変更

それらしく、これをライブラリー化して出来上がり。


■現状の課題
①CLI(コマンド・ライン・インタフェース)Method?/Function?
 CLIのサンプルは例にある通りだが、それ以上のMethod?/Function?がわからない。最低以下の3つでどうにかなるが、相対移動が知りたい。Helpを見ながら試したところ、MoveRelativeでerrorは出なくなったが動作もしない。
DeviceのDisconnectがあるのは嬉しい。終了時にDeviceを切り離さないと、次回接続時に問題が生じることがある。接続状態のままプログラム終了すると新しいプログラムを立ちあげた時にアクセスできないことがしばしばある。
  MoveTo(角度の絶対値移動)
  Home(零度の位置に移動)
  Position(現在の角度は何度かを教えてくれる)

②Decimal入出力
 何となくしっくりこない。LabVIEWでプログラムを作った時にはbit表示を角度に直す時、最小分解能=3/2048(deg)をfloatで表示していたが、本ライブラリでは小数点以下3桁に限定されている。いい様な、悪い様な。
 面倒だがBitの値を推定して割掛けして角度に直している。無駄かな?最小分解能程度の表示がされているのでOKといえばOKなのだが。

■使用した感想
Python版の「Kinesis」「 APT」は使用した感じから、以下のような差があった。

「ThorLABS Kinesis」を使用したバージョンは単体で動作するようだ。単体というのは、「windowsにインストールしたプログラムをsettingしなくても、アクチュエータの種類を書き込むので何をドライブしているか理解して動作させている。」という意味で使っている。

            self.KDC101 = KCubeDCServo.CreateKCubeDCServo(serial_no)
            m_config = self.KDC101.LoadMotorConfiguration(serial_no,.....
            m_config.DeviceSettingsName = "PRM1-Z7" 


「ThorLABS APT」を使用したバージョンは、あらかじめwindows側でプログラムが動作できるようにして置く必要がある。TDC001/PRM1-Z7で動作する様に条件設定が必要である。Python版のソフトウエアではアクチュエータが何であるかの指定がない。ドライバーのSerial Numberは入力するが、アクチュエータの種類の入力はない。インスタンスはSN由来のコレ一発。
            self.apt_TDC001 = apt.Motor(SN) 

てことは、ドライバーを識別するが、細かな条件はインストールしたプログラムが動作する条件が前提で、そこから情報を引っ張て来ているのでPython版上ではアクチュエータが何でも気にしていない。と理解した。なので、ActiveXが利用できなくなるとこれも使用できないと思われる。

2023年4月18日火曜日

Python 少しの進歩


Pythonを始めて少しだけ書けるようになった。
嬉しくなって、出来のよさそうなのをGitHubに上げてみた。

第1号は、顕微鏡のソフトでスケールを表示できるようにしたもの。
自分ではなかなかの出来栄えと思う。

と、言っても Google先生に教えてもらっただけなんで、オリジナルの部分は? あるかなどうかな 怪しい。
Google先生は ChatGPTより正しい答えを教えてくれる。
お金を払っていないversionだから?  ChatGPTは間違いも平気ですからね。”I apologize for it . “が常套句なんで。

リンクはこちらです。

誰か、感想をくれないかな~!




2022年6月7日火曜日

GitHub って何だろう?

最近、Pythonのインストールでお世話になっているGitHub

便利なんで重宝する。
でもなんだろう? Web-based Version Control Repository

GitHubのHPには以下のように記述されている。

Millions of developers and companies build, ship, and maintain their software on GitHub—the largest and most advanced development platform in the world.

GitHub社はMicrosoftの傘下らしい。
PublicDomainだと思っていた。

Gitの意味は何だろう? こちらのHPに何か書いてある


そもそもgitとは
CUIツール(コマンドラインツール)の一種であるgitは、ソースコードのバージョンをいつ誰がどこを編集したのか、最新のバージョンはどれになるのか、などを管理するツールとして作られました。

gitはツールの名称なんだ。
 と散歩してみた。

2021年9月3日金曜日

Python 他

  最近、必要になったのでPythonを使用している。画像に強い言語らしい。僕のようにC言語がわからない人にも開発しようかなという気にさせてくれる敷居は低そうな言語である。Pythonは日本語で発音するとパイソンなのだけれど、ペイソンとかペイトンと間違える。頭が固くなっている証拠だ。

 それより、Google上でPythonの開発環境が揃っているので、簡単に試用(使用)できる。こんな感じです。大変便利な時代になってきた。

   Pythonの開発環境       https://colab.research.google.com/?hl=ja

   自分のプログラムファイル https://drive.google.com/drive/my-drive           

 Net社会なので、色々なものがNet上で済ますことができる時代になった。その他だと、PDFの編集やOCRによる文字認識の機能もNet上でできるのでAcrobat本体をインストールする必要もなくなってきている。Acrobatはあれば便利だが、たまに使用する程度なら手元になくてもどうにかなるし、iPad,iPhone,Mac,PC、Android機種を選ばないのでインストールという面倒なことがなくなる。Browserさえあればよい。

 WindowsもNet上で使用するようになるのが近い将来の形のようだ。手元にはBrowserが動く簡単なiPadのような端末にしてServer側にWindowsがあるような形である。Windoows側はServer上で動くのでGraphicsTip, StrageTip, その他USB,Wifi,Bluetooth等のNetworkTipの互換性を考えなくて良くなるので、OS側の負担が減る。Server側の一括管理なので、Updateも簡単、データ消去も簡単=管理が簡単ということらしい。

 iPhone,iPadを使用すると機種変更が簡単なので、WindowsPCの機種変更はたいへんだなというのが率直な感想である。だから、iPadを使用し始めた頃に将来的にはPCは家庭からなくなるなと思っていた。少し前まで、会社でWindowsを使用するのは特殊なソフトを使用するから仕方ないが、将来的には会社でもiPadで仕事をする人が増えると思っていた。 

 いや違う。数年でWindowsPCがLegacyになる。GamersPCのみになるな。