ラズパイの USB バスパワーを OFF/ON する方法 2019/03/15 株式会社アートファイネックス 1. 概要 ラズパイを使用し RFID リーダ ライタ (USB 給電タイプ ) を制御する場合 何らかの理由によりリーダ ライタをリセットするために USB ケーブルを抜き差しして電源を切

Similar documents
Raspberry Pi (Windows10 IoT Core) を使用したリーダ ライタの制御例 (UART 接続 ) 2018 年 12 月 18 日第 版 株式会社アートファイネックス

Microsoft Word - USB60F_Raspi_ doc

1. ネットワーク経由でダウンロードする場合の注意事項 ダウンロード作業における確認事項 PC 上にファイアウォールの設定がされている場合は 必ずファイアウォールを無効にしてください また ウイルス検知ソフトウェアが起動している場合は 一旦その機能を無効にしてください プリンターは必ず停止状態 (

LAN

TWE-Lite R 取扱説明書

PowerTyper マイクロコードダウンロード手順

デュアルウェア講習会課題 5 会津大学講習会 簡単な IoT を作成 2018 The University of Aizu

FTDI USB-Serial Converter デバイスドライバのインストール(Rev.1.01)

GenieATM 6300-T / 6200-T シリーズ 1. 基本的な機器オペレーションのために 1-1. 機器への接続 機器への接続方法は 以下の 2 通りがあります シリアルポートを使用してログインする LAN 経由で Telnet または SSH を使用して仮想 Interface からロ

第5回 マインクラフト・プログラミング入門

手順書 03 BlueDV for Linux のインストール手順 1.OS の初期設定 GUI 操作 (Raspberry Pi Configuration) で実施 1System --- Password => Enter new password Confirm new password そ

Raspberry Pi 2 Model B に Debian Jessie / armhf をインストールする - 第125回 2015年3月度

再起動した状態になり パスワードを入力すると 図 2 のように DEXCS2011 のアイコ ンがデスクトップ上に表示される 2 端末を準備する メニューバーにある端末の形を左クリック 図 2 デスクトップ メニューバーに端末の形がない場合 図 3 メニューバー アプリケーション アクセサリー 端末

AR-DV1_TAI_Software_Media_Setup_Procedure_v1.0_JAPANESE

Installation Guide for Linux

ReTRY HUB

5. 下の画面が表示されますので [Next>] をクリックします 6. License Agreement の画面が表示されますので 内容をご確認いただき 同意する場合は I accept the terms of the license agreement にチェックをして [Next>] をク

設定ソフト Ver1.0.5版 マニュアル

PowerPoint プレゼンテーション

取扱説明書[SH-04E]

UHF 帯 RFID リーダ ライタ I/F プロトコルによる制御方法 2018 年 04 月 04 日第 版 株式会社アートファイネックス

注意 この装置は FCC( 米国連邦通信委員会 ) 規則 パート 15 の副章 J に従い デジタル装置クラス B の制限事項を満たして設計され 検査されています この制限事項は 本装置が一般家庭内で取り付けられたときに 有害な電波干渉が発生するのを防ぐために設定されています 本装置はラジオ周波数エ

IC-R8600をSDRに使用するには

仮想 COM ポートドライバーインストールマニュアル 仮想 COM ポートドライバーをパソコンにインストールすることにより FTDX3000 シリーズとパソコンとを USB ケーブルで接続して CAT 通信 TX 制御 (PTT KEY FSK) および ファームウェアのアップデートを行う事ができま

MS5145 USB シリアル エミュレーション モードの設定

注意 この装置は FCC( 米国連邦通信委員会 ) 規則 パート 15 の副章 J に従い デジタル装置クラス B の制限事項を満たして設計され 検査されています この制限事項は 本装置が一般家庭内で取り付けられたときに 有害な電波干渉が発生するのを防ぐために設定されています 本装置はラジオ周波数エ

仮想 COM ポートドライバーインストールマニュアル 仮想 COM ポートドライバーをパソコンにインストールすることにより 対応するトランシーバーまたは USB インターフェースユニット SCU-17 を USB ケーブルでパソコンに接続し CAT 通信 TX 制御 ( PTT KEY FSK) U

変更履歴 日付 版数 変更内容 2012/07/13 Rev 初版発行 2013/07/03 Rev 対応機器一覧 機器一覧を更新 [Settings] 画面の表示 時刻を挿入する機能を追加アンテナ切替器のアンテナ番号を指定する機能を追加アンテナ番号を挿

取扱説明書[SH-06D]

- 1 -

Studuinoソフトウェアのインストール

はじめに Web IoT メイカーズチャレンジ 2017 in 横須賀 では 小型ボードコンピューター Raspberry Pi とセンサーキットを使って JavaScript によるハードウェア制御をハンズオン形式で学びます 本テキストの対象 内容レベル Webを触ったり ちょっとしたプログラミン

Technical Information 文書番号 SYMC-SBG タイトル IPMI/iDRAC による情報採取方法 対象機器 Symantec Messaging Gateway 8300 Series ソフトウェアバージョン - 文書作成日 2011/2/22 最終更新日

Raspberry Piでエアコン操作 高町咲衣 たかまち さき

lifedesign_contest_No3

2013年『STSSスキルコミュニティ』 テーマ別Kickoff資料

おことわり 本書の内容の一部又は全部を無断転載することは禁止されています 本機の外観及び仕様は改良のため 将来予告無しに変更することがあります 本書の内容について万一不審な点や誤りなどのお気付きの点がありましたらご連絡ください 本書に記載されている会社名 商品名などは 一般に各社の商標又は登録商標で

USBドライバーインストールガイド

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー

情報処理学会研究報告 IPSJ SIG Technical Report Vol.2015-CE-131 No /10/10 1,a) 1,b) 1,c) 2,d) 1,e) 1,f) Raspberry Pi GPIO I2C Raspberry Pi Linux HTTP, Rasp

WAGO / / Modbus/RTU対応 バスカプラ クイックスタートガイド

目次 1. ソフトウェアのインストール 対応 OSについて インストール手順 アンインストール手順 USB ドライバのインストール 操作の流れ 接続の準備 ソフトウ

Windows 10 IoT Core MVA 2015 August Windows 10 IoT Core ハンズオントレーニング Building and running Github MS IoT Samples on Windows 10 IoT Core 5 章センサーデータをクラウドへ

Raspberry Pi 3 + Nginx でつくる Live中継環境

TH-D74

4 接続インターフェイスに関係なく LPT1 ローカルポート を選択し Install をクリックします 5 下記メッセージが表示されたら インストールは完了です OK をクリックします 続いて 接続インターフェイス毎に プリンタドライバの設定を説明します コントロールパネルより ハードウェアとサウ

IoT

Dr.Web Desktop Security Suite Ver.10.1 簡易構築ガイド -Linux 用 - 株式会社 Doctor Web Pacific 初版 : 2015/10/20 改訂 : Copyright Doctor Web Pacific Inc. All rights re

第一章 LPC2478 ボードの概要...3 第二章 uclinux の初体験 SD カードのテスト USB メモリのテスト USB Devices のテスト network のテスト...6 第三章 uclinux のコンパイル...

RsMulti の取扱説明 「RS232C で直接接続する(LAN を使用しない場合)」

HP USB Port Managerご紹介資料 -シンクライアント

PowerPoint プレゼンテーション

LANDriverUpDate

Microsoft Word - ViSaGeSetupガイド2005.doc

CS-DRC1操作説明書

1. インストールする前に 1. インストールする前に プリンタードライバーをインストールする前に 下記の事項を確認してください 複合機が正しく接続されているネットワーク接続の場合複合機を社内 LAN などのネットワークにつなげて使用する場合は 複合機が正しくネットワークに接続されていることをネット

Microsoft Word - I-02_ã•’å‹©çfl¨æ›‰é€ƒæł¸ã•‚ã‡¹ã…žã…łã‡¢ã…Šã…ªã•„ircDDB㕓ㆮ勩çfl¨æ›‰é€ƒï½œ1.1盋| docx

USBドライバーインストールガイド

セットアップする付録2 セットアップする Step1 各部の名称を確認する 電源ボタン microusb ポート ( 電源供給用 ) 給電用 microusb ケーブル ( 添付 ) を接続します USB 2.0 ポート 必要に応じて USB 機器 ( 別途用意 ) をつなぎます ストラップホール

PowerPoint プレゼンテーション

レターヘッド日本語版 (AC厚木本社)

MS104-SH2 USBドライバ(仮想COMポートドライバ)の不具合について

Taro-ラズパイのインストールと設定

取扱説明書[SH-12C]

まず 以下の項目をお調べください それでも問題が解決できない場合は お問い合わせ先 (157 ページ ) にご相談ください 困ったときは 1. 無線 LAN 端末を接続できない 1. 本製品と無線 LAN 端末の無線 LAN 機能がオンになっていることを確認してください 2. 正しい WEP キーを

PowerPoint プレゼンテーション

modemmanual.xls

imcs04 ソフトウェアマニュアル imcs04 ソフトウェアマニュアル Ver1.4 株式会社イクシスリサーチ , ixs Research Corporation All right reserved.

3

プリンタードライバーインストールガイド Windows8 対象 インストーラー編 本ガイドは 複合機 bizhub C284 を例に説明をしています 他の機種の場合も操作方法は同じです 本書では Windows 8 で複合機を利用するために必要なプリンタードライバーのインストール方法を説明します 他

Computer Setup ユーザガイド

Flash Loader

目次 1. 動作環境チェック 動作必要環境 Java のインストール Java のインストール Firebird のインストール Firebird のインストール Adobe Reader のインストール

Kermitの設定

変更履歴 日付 版数 変更内容 2012/07/13 Rev 初版発行 2013/07/03 Rev 対応機器一覧 機器一覧を更新 [Settings] 画面の表示 時刻を挿入する機能を追加アンテナ切替器のアンテナ番号を指定する機能を追加アンテナ番号を挿

簡単設定でスマホをブロック!仮想化時代の情報漏えい対策に最適なツール

1. 対象装置 (1) 日立仮想 Fibre Channel アダプタ 適用装置 : EP8000 7xx 2. 仮想 FC アダプタドライバ来歴 この仮想 FC アダプタドライバは 次の機能拡張とバグ修正を含みます バージョン内容 新規追加 AIX ロ

WiFiの現状

Copyright 2005 アンリツ株式会社許可なしに転載 複製することを禁じます

「V-Sido CONNECT RC」 Raspberry Pi 2との連係方法

センサーデバイスへの仮想IP割り当て実験

編集中

PRIMERGY TX200 S3とUbox2100・XL-9380の接続検証

Windows XPでの手動USBドライバインストール方法

CommCheckerManual_Ver.1.0_.doc

管理者ガイド

Microsoft Word - (171124_v1.30)NTTCom-Jpki_インストールマニュアル.doc

目次 各装置仕様... 2 各部の名称... 3 簡易操作手順... 6 データフォーマット... 7 無線設定... 8 無線設定変更手順... 9 Ethernet 設定 HYBRID ROUTER の追加機能について 制限事項... 15

実習 :VLSM を使用した IPv4 アドレスの設計と実装 トポロジ 学習目標 パート 1: ネットワーク要件の確認 パート 2:VLSM アドレス方式の設計 パート 3:IPv4 ネットワークのケーブル配線と設定 背景 / シナリオ 可変長サブネットマスク (VLSM) は IP アドレスの節約

はじめに 京セラ製スマートフォンを指定の microusb ケーブル ( 別売 ) またはこれと共通仕様の microusb ケーブル ( 別売 )( 以下 USB ケーブル ) と接続して USB テザリング機能をご使用いただくためには あらかじめパソコンに USB ドライバ をインストールしてい


NFC EXPRESS ASUS NFC Express は Windows 8 対応の外付けデバイスです NFC 対応のスマートデバイス または付属の NFC タグをタッチするだけで 簡単に様々なアクションを実行することができます NFC Express をインストールする NFC Experss

bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows ˆ Windows10 64bit Wi

第5回 マインクラフト・プログラミング入門

EV3 の初期設定

Microsoft Word - (151201_v1.29)NTTCom-Jpki_インストールマニュアル.doc

_01 日医標準レセプトソフトクラウド版 CLAIM 接続利用手順 ベンダー向け 2017 年 8 月 23 日 日本医師会 ORCA 管理機構株式会社

LAN ケーブル接続について

:30 18:00 9:30 12:00 13:00 17:00

Transcription:

ラズパイの USB バスパワーを OFF/ON する方法 1. 概要 ラズパイを使用し RFID リーダ ライタ (USB 給電タイプ ) を制御する場合 何らかの理由によりリーダ ライタをリセットするために USB ケーブルを抜き差しして電源を切り入りしたいことがあるかもしれません ところが 直接 USB ケーブルを抜き差しできないときは アプリケーション内からそれを行う必要があります 本書では アプリケーション内からラズパイの USB バスパワーを OFF/ON する2つの方法を記します 1つ目は ラズパイの4つの USB ポート全てを OFF/ON する方法 2つ目は RFID リーダ ライタのポートだけを OFF/ON する方法です 想定している機器などは下のとおりです ラズパイ :Raspberry Pi 3 Model B OS:Raspbian 言語 :python3 RFID リーダ ライタ : アートファイネックス社製 RFID リーダ ライタ (USB 給電タイプ ) 2. ラズパイの USB ポートについて ラズパイには下図のように USB ポートが 4 つ付いており ポート 2~5 と割り付けられています ( ポート 1 は LAN ) ポート 2 ポート 4 ポート 3 ポート 5 例えば下図のようにポート 2 にキーボード ポート 3 にマウス ポート 5 にリーダ ライタを接続して lsusb -t を実行すると 1 / 11

$ lsusb -t /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M Port 1: Dev 20, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M Port 2: Dev 21, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M キーボード Port 2: Dev 21, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M Port 3: Dev 22, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M マウス Port 5: Dev 23, If 0, Class= Vendor Specific Class, Driver=ftdi_sio, 12M リーダ ライタ キーボード / マウス / リーダ ライタがそれぞれの USB ポートに接続されていることが分かります 本書では このポート 2~5 の全てのポートを OFF/ON する方法と RFID リーダ ライタのポートだけを OFF/ON する方法を記します 2 / 11

3. 全ポートを OFF/ON 3.1. コマンド USB バスパワーを切るときは下のコマンドを実行します (unbind) echo -n "1-1" > /sys/bus/usb/drivers/usb/unbind また入れるときは下のコマンドを実行します (bind) echo -n "1-1" > /sys/bus/usb/drivers/usb/bind 特権が必要なため sudo sh -c "******" で行う必要があるので実際には下のようになります sudo sh -c "echo -n "1-1 " > /sys/bus/usb/drivers/usb/unbind" sudo sh -c "echo -n "1-1 " > /sys/bus/usb/drivers/usb/bind" 注意 コマンドラインで unbind すると キーボードとマウスの操作ができなくなります 3.2. アプリケーションで実行 アプリケーションで実行するには subprocess を使います 始めに import subprocess を宣言しておき アプリケーション内で下のようにします OFF するときは subprocess.call("sudo sh -c "echo -n "1-1 " > /sys/bus/usb/drivers/usb/unbind "", shell=true) ON するときは subprocess.call("sudo sh -c "echo -n "1-1 " > /sys/bus/usb/drivers/usb/bind "", shell=true) 3 / 11

3.3. サンプルアプリケーション import serial import time import subprocess # subprocess を使うという宣言 for n in range(100): # 以下を 100 回繰り返す ser = serial.serial("/dev/ttyusb0") ser.baudrate = 19200 senddata = b' xbb x80 x22 x00 x02 x01 xa1 x7e' print(n) ser.write(senddata) while (True): recvdata = ser.read(5) len1 = recvdata[3]*256+recvdata[4]+1 USB オープン temp1 = ser.read(len1) タグ読取りコマンドを送信 if (recvdata[2] == 0xFF): 読取り結果を受信 & 表示 print('no tag!!') USB クローズ elif (recvdata[2] == 0x27): else: len2 = len(temp1) temp2 = temp1[2:len2-4] print(temp2.hex()) ser.close() subprocess.call("sudo sh -c "echo -n "1-1 " > /sys/bus/usb/drivers/usb/unbind "". shell=true) # USB バスパワーを切る print(' noff n') subprocess.call("sudo sh -c "echo -n "1-1 " > /sys/bus/usb/drivers/usb/bind "". shell=true) # USB バスパワーを入れる print('on n') 4 / 11

4. リーダ ライタのポートだけを OFF/ON 4.1. はじめに ラズパイの4つの USB ポートのどれか1つを OFF/ON する方法はありませんが システムトークス社製の SUGOI HUB4X を使用すればその HUB のポート1またはポート2だけを OFF/ON できます 4.2. 事前準備 ラズパイをネットワークに接続して 以下の手順で libusb-dev をインストールして hub-ctrl を使えるようにします $ sudo apt-get install libusb-dev $ wget http://www.gniibe.org/oitoite/ac-power-control-by-usb-hub/hub-ctrl.c $ gcc -O2 hub-ctrl.c -o hub-ctrl-armhf-static -lusb -static $ sudo cp hub-ctrl-armhf-static /usr/local/bin/hub-ctrl システムトークス社製の SUGOI HUB4X を用意します 4.3. 接続方法 下図のように ラズパイのポートと SUGOI HUB を接続し SUGOI HUB の一番左のポートにリーダ ライタを 接続します ( 左側の 2 ポートのいずれかでなければ個別に OFF/ON できません ) 4 3 2 1 5 / 11

4.4. デバイス番号の確認 SUGOI HUB とリーダ ライタのデバイス番号などを確認します $ lsusb Bus 001 Device 007: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-serial (UART) IC Bus 001 Device 006: ID 0409:005a NEC Corp. HighSpeed Hub Bus 001 Device 005: ID 413C:301a Dell Computer Corp. Bus 001 Device 004: ID 413C:2113 Dell Computer Corp. Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 roothub リーダ ライタ SUGOI HUB マウスキーボード LAN $ lsusb -t /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M Port 2: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M Port 2: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M Port 3: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M Port 5: Dev 6, If 0, Class= Hub, Driver=hub/4p, 480M Port 1: Dev 7, If 0, Class= Vendor Specific Class, Driver=ftdi_sio, 12M キーボードマウス SUGOI HUB リーダ ライタ 4.5. コマンド リーダ ライタのポートを OFF するときは下のコマンドを実行します hub-ctrl -b 1 -d 6 -P 1 -p 0 (-b は Bus の番号 -d は Device の番号 -P は Port の番号 -p は 0 が OFF で 1 が ON) リーダ ライタのポートを ON するときは下のコマンドを実行します hub-ctrl -b 1 -d 6 -P 1 -p 1 特権が必要なため sudo sh -c "******" で行う必要があるので実際には下のようになります sudo sh -c "hub-ctrl -b 1 -d 6 -P 1 -p 0" sudo sh -c "hub-ctrl -b 1 -d 6 -P 1 -p 1" 6 / 11

4.6. アプリケーションで実行 アプリケーションで実行するには subprocess を使います 始めに import subprocess を宣言しておき アプリケーション内で下のようにします OFF するときは subprocess.call("sudo sh -c "hub-ctrl -b 1 -d 6 -P 1 -p 0 "", shell=true) ON するときは subprocess.call("sudo sh -c "hub-ctrl -b 1 -d 6 -P 1 -p 1 "", shell=true) 7 / 11

4.7. サンプルアプリケーション import serial import time import subprocess # subprocess を使うという宣言 for n in range(100): # 以下を 100 回繰り返す ser = serial.serial("/dev/ttyusb0") ser.baudrate = 19200 senddata = b' xbb x80 x22 x00 x02 x01 xa1 x7e' print(n) ser.write(senddata) while (True): recvdata = ser.read(5) len1 = recvdata[3]*256+recvdata[4]+1 USB オープン temp1 = ser.read(len1) タグ読取りコマンドを送信 if (recvdata[2] == 0xFF): 読取り結果を受信 & 表示 print('no tag!!') USB クローズ elif (recvdata[2] == 0x27): else: len2 = len(temp1) temp2 = temp1[2:len2-4] print(temp2.hex()) ser.close() subprocess.call("sudo sh -c "hub-ctrl -b 1 -d 6 -P 1 -p 0 "", shell=true) # OFF print(' noff n') subprocess.call("sudo sh -c "hub-ctrl -b 1 -d 6 -P 1 -p 1 "", shell=true) # ON print('on n') 8 / 11

4.8. 注意事項 前述では SUGOI HUB がデバイス番号 6 となっていましたが ラズパイの USB ポートから SUGOI HUB を抜き差しするとデバイス番号が変更されます そのため 抜き差しをしないようにするか 現在どのデバイス番号になっているかをその都度調べて対応します どうしても 自動的に SUGOI HUB のデバイス番号を入手してリーダ ライタのポートを OFF/ON しなければ ならない場合は次章をご覧ください 9 / 11

5. 自動的に SUGOI HUB のデバイス番号を入手してリーダ ライタのポートだけを OFF/ON 5.1. 概要 $ lsusb を実行すると下のように SUGOI HUB の情報が表示されます Bus 001 Device 006: ID 0409:005a NEC Corp. HighSpeed Hub この ID(0409:005a) を手掛かりにデバイス番号を入手し そのデバイス番号を使って OFF/ON します 5.2. 事前準備 下の 2 つのシェルを作成します (1)off.sh --- SUGOI HUB のデバイス番号を入手してリーダ ライタのポートを OFF するシェル #!/bin/sh DEV=`lsusb grep '0409:005a' tail -1 cut --delimiter=' ' --fields='4' tr --delete ':'` sudo sh -c "hub-ctrl -b 1 -d $DEV -P 1 -p 0" (2)on.sh --- SUGOI HUB のデバイス番号を入手してリーダ ライタのポートを OFF するシェル #!/bin/sh DEV=`lsusb grep '0409:005a' tail -1 cut --delimiter=' ' --fields='4' tr --delete ':'` sudo sh -c "hub-ctrl -b 1 -d $DEV -P 1 -p 1" パーミッションを変更します $ sudo chmod +x off.sh $ sudo chmod +x on.sh これらのシェルをアプリから呼びます 10 / 11

5.3. サンプルアプリケーション import serial import time import subprocess # subprocess を使うという宣言 for n in range(100): # 以下を 100 回繰り返す ser = serial.serial("/dev/ttyusb0") ser.baudrate = 19200 senddata = b' xbb x80 x22 x00 x02 x01 xa1 x7e' print(n) ser.write(senddata) while (True): recvdata = ser.read(5) len1 = recvdata[3]*256+recvdata[4]+1 temp1 = ser.read(len1) if (recvdata[2] == 0xFF): print('no tag!!') elif (recvdata[2] == 0x27): else: len2 = len(temp1) temp2 = temp1[2:len2-4] print(temp2.hex()) ser.close() subprocess.call("sh off.sh", shell=true) # OFF print(' noff n') subprocess.call("sh on.sh", shell=true) # ON print('on n') USB オープンタグ読取りコマンドを送信読取り結果を受信 & 表示 USB クローズ 以上 11 / 11