絞り込み条件を変更する
検索条件を絞り込む
有料ブログの投稿方法はこちら

すべてのカテゴリ

12 件中 1 - 12 件表示
カバー画像

pico のUSBシリアル経由で入出力制御

前回の記事「pico USBシリアル input待ちに_thread利用」で作ったMicroPythonのプログラムに以下の機能を追加しました。前回の記事のURL https://coconala.com/blogs/2433234/3737101.1秒間隔でpicoの内蔵温度センサーの値(温度換算)を送信する。2.コマンド 'stop'を受信すると1の送信を停止する。3.コマンド 'run'を受信すると1の送信を再開する。4.コマンド '1' を受信するとpicoの内蔵LEDを点灯する。5.コマンド '0' を受信するとpicoの内蔵LEDを消灯する。送信される文字列は温度とLEDの状態で、以下のような文字列です。25.0,0外付けハードウェアを一切使わずに動作確認出来るようにしました。センサーやアクチュエーターを外付けしてPCやRaspberry Pi からUSBシリアル経由で制御できる装置を製作する時の参考になると思います。測定用や検査装置と言った用途の事前準備と考えています。ご希望があれば、マンマシン・インタフェースを提供し、ログをファイルやデータベースに記録するPCやRaspberry Pi 側のPythonアプリを提供することも可能です。pico のプログラムは以下のように実現しました。threadによるinput待ち合わせinputを実行すると他の処理が出来なくなるのを避けるために、前回同様にthreadを使っています。インターバルタイマーを利用前回の記事はsleepで時間(1秒)を作っていましたが、タイマー割込みによる方法に変更しました。classを作成温度セン
0
カバー画像

pico のUSBシリアル input待ちに_thread利用

Raspbrry Pi Pico はUSBシリアルのコンソール機能を使ってPCと接続が容易と言うことで、センサーからの入力をPCに送るような機能を容易に実現出来るようです。これまでにもPCやRaspberry Pi にマイコンボードをUSBシリアル変換ケーブルで繋いで、検査装置のようなものを作ったりしましたがpicoを使えばUSBケーブルだけで済みそうです。MicroPythonによるPCとの通信はprint と input が使えることを確認しました。一定間隔で測定値を送り続けるだけの用途ならprintだけで済むのですが、送信間隔等の設定値を変更したいと言った場合は、inputでPCからのコマンドを受ける必要がありそうです。inputを使うと入力が済むまでの間、他の処理が止まってしまうのでinputの待ち受けに_threadを試してみることにしました。動作確認用のプログラム電源を入れると0~9の数字を繰り返し送信して来ます。PCから文字列'stop'を送ると繰り返し送信が停止し、'stop'以外の文字列を送ると繰り返し送信を再開します。teratermでも動作確認しました。ソースコード以下のコードで確認しました。import _thread # スレッドモジュールを準備 from utime import sleep instr = [''] def core0(instr): # print 担当     intf = 1     while True:         for i in range(10):             if instr[0] == 'st
0
カバー画像

Raspberry Pi Pico W 修行中

技適が通った Pico W が販売されたので購入しました。3/27日に注文し、3/31日に入荷していたのですが、まとまった時間が取れず試せていませんでした。Webページを参考に、WiFi経由で内蔵LEDをON/OFFさせるサンプルを動かして動作確認を済ませました。MicoroPythonはESP32で経験があるので、SPIとmicrodotを使えるようになれば、目先のやりたいことが出来るようになると思います。連休中は、これに加えてAppSheetの練習をして、Pico W とGoogle sheetを使ったアプリケーション作成に向けて準備を進める予定です。残りの日数で出来ることには限界があると思うので、その後も少しづつ進めようと思っています。暫く自主開発で経験を積んで、誰かのお役に立てるレベルになったら、出品も検討したいと考えています。今後とも宜しくお願い致します。
0
カバー画像

Raspberry Pi Pico W に期待

PICマイコンを使うので、Raspberry Pi Pico を使う機会がありませんでした。現場で使うためには何らかのI/F基板を作る必要があり、基板を作るならCPUも一緒に実装した方がスッキリすると言う理由です。 Raspberry Pi Pico W であれば WiFi が使え、将来は BLE にも対応する予定と言うことですし、Micro Python で記述出来るようなので期待しています。 ESP32 が既に実現している機能で、私も ESP32 を Micro Python で使う機会があります。WiFiを手軽に使えるマイコンボードは IoT 分野で使い易くて助かります。 Micro:bit は WiFi は使えないながらも、BLE を手軽に使えて便利です。I/F基板への実装制御対象とのI/F基板にこれらのマイコンボードを実装する際には、直接半田付けするか、ピンヘッダーやコネクタで接続することになるかと思います。 とにかく小さくまとめたい場合は、ESP32を直接半田付けする方法が良いと思います。 Mciro:bit はカードエッジコネクタでI/F基板に接続するのが一般的だと思いますが、このコネクタの大きさと Micro:bit 自体の大きさから小さくまとめるには不利な選択になるかと思います。 一方で標準実装されたLED表示器、SW、センサー、無線機能を使う他、手軽に複数の装置に付け替えて使いたいと言った場合に向いていると思います。Raspbrry Pi Pico W は ESP32 に比べて外形寸法が大きい分だけ、小さくまとめるには前述2機種の中間的な存在になるのかな?
0
カバー画像

PICマイコン入手難

タイトル画像は本日現在における秋月電子通商のPIC18F25K22ページの一部です。「在庫切れ」、「納期確認中」、「価格は変更となる場合があります。」との内容です。 仕事で装置を作る時にPIC18F23K22を多用してきましたが、秋月では23K22が姿を消してメモリー容量の多い25K22, 26K22は在庫切れです。 PIC18F23K22を初め良く使うCPUは幾つか手元に確保しているので今のところ仕事に対する影響は小さく抑えられています。 今般の事態を想定したわけではなく、開発工数を抑えるために以下のようにしてきたことが奏功したようです。 採用CPUを数種類に抑える装置用なので特殊な場合を除いて小ピンに拘ることなく、数種類のシリーズ品を選定して採用することでソフトウェア資産を使い回せるようにします。 装置用は8bitCPUが多く、以下のようなものを使っています。  PIC18F23K22  28PIN  PIC18F46K22  40PIN  PIC16F18318   8PIN (小ピン用途)  PIC16F1705   14PIN (8bit DAC内蔵)DIP品を使う出来るだけDIP品をソケットに挿して使い、基板改修時などには使い回しています。 オシロやテスターを当てやすいのでデバッグも楽になりますし、何より老眼に優しいのが魅力です。在庫を確保する装置用なので比較的少量ですが、急な製作要求に応じられるように手持ち在庫を確保しています。特に使用頻度が高い18F23K22は、今回の半導体不足に対応するために段階的に数十個の在庫を確保しました。 Raspbrry Pi も
0
カバー画像

Raspberry Pi と PIC の連携

Raspberry Pi と PIC を組み合わせた治具や装置を作ることがあります。 オペレータが使う検査治具などが多いです。 表示能力に優れLANなどのネットワークを使い易いRaspbrry Pi と、きめ細かな信号制御が可能なPICを連携させて装置を作ります。 PIC側はRaspberry Pi からのコマンドを受けて動作を変更したりレスポンスを返すことで連携します。コマンド・レスポンスの取り決めは自由に設計しています。何故USBシリアルかタイトル画像のような構成ですが、Raspberry Pi をWindows PC に置き換えて、普段使い慣れたPCで使うようにすることもあります。 このように、PC側の選択肢を増やすことが出来るのでRaspberry Pi のGPIOを極力使わずUSBシリアル(変換ケーブル)で接続することにしています。何故PICか1個から入手しやすく、情報も多いことからPICにしています。 ESP32を併用した経験もあります。 手軽で情報の多い様々なマイコンボードがありますが、センサーやアクチュエータを接続して継続的に使おうとすると結局プリント基板を作ることになります。 それならマイコンも基板に載せた方が、安価で小型になると考えています。 作ったプリント基板を複数の用途に使いまわせるように工夫したりします。 簡単な表示機能で良い場合はRaspberry Pi を使わずにESP32を使ったこともありますが、WiFiよりもLANケーブルで接続する方が安心な気がしています。 ESP32 やMicro:bit は用途次第で柔軟に活用することにしています。Rasp
0
カバー画像

Micro:bit + BLEでデータを集める

作業場に点在する圧力センサのデータをRaspberry Pi に集めてデータベースに記録することにしました。 圧力センサ毎にIPアドレスを振るのは勿体ないので、Micro:bitを使ってみました。幸い、圧力表示(NO/GO)が主な目的で、データベースへの記録の方はたまに欠落しても問題ないので、初めてのMicro:bitも思い切って使えます。構造タイトル画像のように、4個所に配置したMicro:bitに合計で6個の圧力センサを外付け(ADC)して、1台のRaspberry Pi から順次ポーリングしてデータを集めます。 Raspberry Pi は、集めたデータを所定のタイミングでLAN内のデータベースに記録します。機能圧力センサはコンプレッサーエアーまたは基準ガスの圧力を測定していて、各々のバルブ開閉を検出する他、所定の圧力範囲内に入っているかを監視します。 4個のMicro:bitにある5x5=25個のLEDには以下の表示を行います。 1. 圧力のレベルを5段階に表示(高過ぎ、OK3段階、低過ぎ) 2. BLEのコネクション状態 3. BLEによるポーリングの都度点滅するインジケータ 青色LEDと緑/赤の2色LEDを外付けして、以下を表示します。 1. 圧力の状態表示(橙:高過ぎ 緑:OK 赤:低過ぎ) 2. 青色LEDは動作中点滅動作確認Micro:bit は500msec毎にセンサデータをサンプリングして表示に反映させます。 Raspberry Pi は約1.2秒間隔で6個のセンサデータを集めます。 (sleepを入れているので、2倍近い実力があると思います。) バ
0
カバー画像

Raspberry PiでPython入門

ターミナルを使ってみるRaspberry Piのセットアップが完了して起動すると、デスクトップ画面が開きます。(デフォルトでは)左上にあるラズベリーのアイコンが、メニューでそれに続いてブラウザー、フォルダ、ターミナルのショートカットがあります。デスクトップ上でマウスを使ってGUI(Graphical User Interface)で作業をすることもできますが、せっかくなのでCUI(Character User Interface)にも少し触れてみましょう。慣れてくるとCUIのほうが作業が速くなるとかならないとか…。まずターミナルのアイコンでターミナルを開きます。または「Ctrl」+「ALT」+「t」でもターミナルを開くことが出来ます。ターミナルとはWindowsでいうコマンドプロンプトやPowershellに似たもので、キー入力によるコマンドで作業をするものです。Pythonスクリプトを作成し実行するまず、nano hello.pyと入力します。これを一般的に$ nano hello.pyと表記したりします。$から始まる行はこのようにターミナルに打ち込むコマンドを示します。「Enter」で実行するとnanoというデフォルトのテキストエディタで「hello.py」というファイルが作成され、その編集画面が開きます。ここに「print("Hello world!")」と入力し、「Ctrl」+「o」、「Enter」で保存します。「Ctrl」+「x」でnanoエディタを終了します。$ lsと入力するとhello.pyというファイルが作成されていることが分かります。次に$python3 h
0
カバー画像

Raspberry Piにファイルを送るには?

Raspberry Piにファイルを送るには?Raspberry Pi を Web サーバーにした場合、直接 Web サイトの中身を Raspberry Pi で作る方法もありますが、別の開発用の PC で作成して送る仕組みがあると便利です。実際の Web サーバーの場合も殆どは、別の PC でサイトの中身を作って、Web サーバーに送るのが一般的です。こうした仕組みを理解する意味でも実際に試してみると理解が深まります。色々あるサイトの情報の送り方Web サイトの情報を送る方法は色々あります。 良く利用されるのは、FTP(File Transfer Protocol)で、Web サイトのホスティングを提供する業者も、FTP を利用してサイトの中身をサーバーに送る方法は広く利用されています。仕組みも簡単で、Raspberry Pi でも簡単に利用できます。同じような方法で、SFTP(SSH File Transfer Protocol/Secure File Transfer Protocol)という方法があります。 何が違うかというと、ファイルを送信する際に暗号化して送るのでより安全にデータを送ることができる方法です。FTP の場合、データを暗号化しないで送信するため、途中経由するコンピュータなどでは中身を見ることができるため、最近ではインターネットを経由するファイル転送は SFTP を利用する場合が主流になっています。この方法は、Raspberry Pi 側で、SSH の設定をしておけば簡単に利用できるので、今回はこの方法を利用して別の PC からデータを送る方法について紹介
0
カバー画像

Raspberry Pi 4が届きました!

Raspberry Pi 4が届きました!Linux を Raspberry Pi で学ぼう!という趣旨で連載をするために、実際に Raspberry Pi を購入しました。本日 Raspberry Pi が届きましたので、早速第一弾の記事です!購入したのはスターターキット今回購入したのは、Raspberry Pi 4 のスターターキットです。ミニワークステーションとしての利用を考えているので、Raspberry Pi の中ではハイエンドの、8 GB メモリ、128 GB ストレージ(マイクロ SD カード)の物を購入しました。キットには:* Raspberry Pi 4 の本体(基板)* ケース* 冷却用のファン* ヒートシンク* HDMI ケーブル* パワーアダプタが含まれていて、SD カードには NOOBS が予めインストールされていました。早速、ケースに入れてヒートシンクとファンをつけて電源を入れてみました。 ここまで 10 分程度です。Raspbian を試してみる電源を入れると問題なく立ち上がって、OS がインストールできるようになっています。まずは、標準の Raspbian を選択して試してみました。 インストールは簡単で、Raspbian を選んでクリックすると自動的にインストールされます。Raspbian を利用するだけならばこれで初期設定は完了です。 WiFi の設定もスムーズで、簡単にインターネットにも繋がりました。Ubuntu のインストールRaspbian でも十分、デスクトップコンピュータとして利用できます。しかし、普段開発で利用している Ubunt
0
カバー画像

キャラクタLCD コンソール

装置の操作を行うRaspberry Pi は、7インチのタッチスクリーンを使って来ましが、用途によっては上図のようなマン・マシンI/Fが良いようです。経緯 タッチボタンが小さいと操作に気を使ったり、装置操作とは直接関係のないGUI操作など、PCに馴染みのない人は面倒に感じることがあるようです。 そう言った理由でキャラクタLCDとボタン操作、LED表示を使ったI/Fを試すことにしました。構造 マン・マシンI/Fとして、キャラクタLCDとタクトスイッチ6個、LEDを2個(2色x1個、単色x1個)、ブザー1個を使えるようにしました。上図は一部実装していない物です。 これらを制御するためにPICマイコン(18F23K22)を使い、Raspberry PiとはSPIで通信します。 上図のように作業台に置いて使いますが、用途によっては装置に組み込むことも出来そうです。上図に見えるLCDの裏側にRaspberry Pi をGIPO用のコネクタで直接接続しています。 横幅は7インチ・タッチスクリーンとほぼ同じと大振りなので、3Dプリンターの造形でケースを作ると高価になることから、アクリル板(3枚)をレーザーカットしてもらってケース代わりにしました。思ったより安価に抑えることが出来ました。 自作の装置はPICマイコンで動作し、UARTでコマンドを受け、レスポンスを返すと言う仕組みのものがほとんどです。 Raspberry Pi に USB・シリアル変換ケーブルを使って接続しています。 他のLinux PC や Windows PC でも使えるように、出来るだけGPIOを使わない方針でしたが、今回
0
カバー画像

ココナラで試したいこと

同じハンドルを使い、ブログ等を使って直接お話ししたことの無い方々に自分なりに良かれと思うお話を書いています。今後もマイペースでブログ投稿を続けたいと思います。コメントや高評価によって、ある程度の反応を感じることが出来ますが、読んでくれる方々が本当に必要としているお話を書けているのか疑問が残ります。私の場合は結構マニアックな内容ですから、多数の方々が同様に興味を持ってくれるような話題は少いだろうと思います。限られた読者層の中ですら、広く興味を持ってもらえるような話題は既にWeb上にある場合が多いように感じています。多くの方々に「為になった」と言ってもらえる話題を提供するためには、自ら経験した具体的な事例を示すのが良いだろうと思いますが、勤め人故に企業のノウハウや守秘義務の壁があります。ココナラにサービスを出品することで、「これが知りたい」と言ってコンタクトしてくれる貴方に向き合ってお役に立ちたいと思います。ココナラのサービスを通じて、複数の方々のお役に立てるようなヒントが得られたなら、やるべきことや試したいことが見えてくると思います。勿論、ご相談頂いた方やシステムにご迷惑をお掛けしない範囲で試します。ココナラのシステムについては初心者なので、私の勉強不足で、ご迷惑をお掛けするようなことがあったら遠慮なくご指導ください。宜しくお願い致します。
0
12 件中 1 - 12
有料ブログの投稿方法はこちら