PyCon_mini_Shizuoka2020

51198d0c7643e9c6d8d491533eead6c9?s=47 myasu
February 29, 2020

 PyCon_mini_Shizuoka2020

51198d0c7643e9c6d8d491533eead6c9?s=128

myasu

February 29, 2020
Tweet

Transcript

  1. PythonとRaspberry Piで 現場カイゼン! @PYCON MINI SHIZUOKA 2020/2/29

  2. 2 59 / お前、誰よ? • myasu 岡山県在住 • 本業 岡山の機械メーカで生産技術

    (生産ラインの設計・立ち上げ・カイゼン) → 生産設備・治具製作、社内システム開発 (PLC/ラダー言語, C++, C#, Python) Twitter: @etcinitd Qiita: @myasu GitHub: @trihome
  3. 3 59 / お前、誰よ?(参画コミュニティー) • 瀬戸内ROS勉強会 (岡山主催) → ロボットミドルウェアROS • Nerves

    JP  (設立メンバー) → Elixir言語で組み込み開発 • 個人活動 「備中絡繰(からくり)製造所」 → Maker Faire出展(山口、大垣、京都、東京) → コミケ サークル参加(C95~)
  4. 4 59 / お伝えしたいこと テーマ 「あなたの知らないPython」 • 生産設備屋(ハードウェア)、趣味視点でのPython活用 → 3つの作例、作り方 •

    製作を続けるためのモチベーション 小型パソコン 「Raspberry Pi」
  5. 作例1: 組立作業のポカよけ

  6. 6 59 / 背景 • 勤務先の工場の製品・・・ → 農機具(農業で使う道具・設備) • 「季節に合わせた製品」を「多品種・少量生産」

    ・「多品種・少量生産」 ・「季節に合わせた」 →  年間約250機種。生産期間は最短3日~最長4ヶ月 →  次回の生産は、来年の同じ季節・時期
  7. 7 59 / 多品種少量生産の悩み • ”ポカ” → 組立作業での部品の取り間違い → (微妙な仕様違いなど)

    • 作業者の慣れに期待したいが・・・ → 次の生産は来年 → 作業者の担当の入れ替わり • 製品寿命が短いので・・・ → 作業手順書、チェックシートの作り込みが困難 → 設備投資した費用の回収が難しい 2019 2020
  8. 8 59 / 現場カイゼン! 小型パソコン「Raspberry Pi」 市販のFA向け部品 工場の生産現場

  9. 9 59 / 作例1 • 部品の取り間違いを防止する「ポカよけ」装置 → 部品を取り上げる順番を、ランプの点灯で誘導 → 既製品※を使わずRaspberryPiとPythonで製作

    ※市販品有り、1箇所◦万円・・・ ランプ付き ボタン 左から点灯、ボタンを押したら次を点灯
  10. 10 59 / 作例1 (実物) ランプ付き ボタン 様々な部品の 入った箱

  11. 作例2: 設備の稼働状況集計

  12. 12 59 / 設備稼働の見える化の悩み • 加工設備の稼働状態は以前から手作業で集計 • 自動化:加工設備メーカに相談・・・ → 高過ぎて気軽に手が出せない

    → 実際どのように活用出来るか? • (2年くらい前?)旭鉄工さんの作例を思い出した → 似たような仕組みが作れないか? • ならば、RaspberryPiとPythonで作ってみよう!
  13. 13 59 / 作例2(実物)

  14. 14 59 / 作例2(実物) NC複合旋盤に 観測装置を設置

  15. 15 59 / 稼働状況のモニター 収集したデータを集計して表示

  16. つくりかた (細かい技術的な話し)

  17. 小型パソコン「Raspberry Pi」  イギリス生まれの、教育用コンピュータ HDMI出力、USBポート4つ、無線LAN、有線LAN(B) 価格:8£(約1200円)~ 65mm “Raspberry Pi Zero W”

    “Raspberry Pi 3 Type B+” 85mm (写真:Switch Science, raspberrypi.org) ・UNIX系のOS ・Windows が動作
  18. 小型パソコン「Raspberry Pi」  デジタルの入出力ポートを装備 組み込み機器の業界でも、普及が進む

  19. 19 59 / 工場で使われるFA機器 • FA → Factory Automation • スイッチ、ランプ、センサーなど・・・ •

    頑丈! • 少々荒い使い方をしても、壊れない → (想定外の使い方で壊れると)つらい・・・ • 電源 → 基本はDC24V
  20. 20 59 / RaspberryPiとPLC • 普段は 産業向け制御装置(PLC)を使うが・・・ RaspberryPiをPLC代わりに使ってみた • 好きな言語、OSSライブラリを活用し効率よく開発

    • いろいろな情報(図面、手順書)を、大きな画面で見たい → 大型のFA用のタッチパネルは高価 PLC  = プログラマブル ロジックコントローラ
  21. 21 59 / RaspberryPiのPLC(モドキ)化 • PLCの考え方を真似る・・・ → モジュール単位で機能拡張 <モジュール> •

    RaspberryPiにFA用機器※を直接接続 → 電圧の違いを相互変換する機能                        ※DC24Vで動作 • 拡張し易い仕組みの導入 → 中国Seeed社のGROVE System CPU  IO  AD  Ether・・・
  22. 22 59 / FA機器とRaspberryPiの接続 FA用センサなど FA用表示灯など DC24Vで動作する機器 RaspberryPi RaspberryPi 3.3Vで動作する部品

    フォトカプラで 電気的に絶縁 フォトカプラで 電気的に絶縁 フォトカプラで 電気的に絶縁 フォトカプラで 電気的に絶縁 トランジスタ アレイで 電流増幅 トランジスタ アレイで 電流増幅 センサ の信号 表示灯の 信号 表示灯を点灯 センサ の信号
  23. 23 59 / FA機器とRaspberryPiの接続 FA用センサなど FA用表示灯など DC24Vで動作する機器 RaspberryPi RaspberryPi 3.3Vで動作する部品

    ランプ の信号 センサ の信号 GPIO24V~3.3V レベル変換 &RTCユニット
  24. 24 59 / GROVE System • 豊富なデバイスとアクセサリ → 4線式でシンプルな規格 →

    主要マイコン(Arduinoなど)向けIFも豊富 • オープンな規格、”無ければ作る!” → Seeedの基板製造サービスも活用 初めて作った電子基板→
  25. 25 59 / RaspberryPiのPLC(モドキ)化 Grove Base Hat for Raspberry Pi

    UPS&電源 監視ユニット Raspberry Pi GPIO24V~3.3Vレベ ル変換 &RTCユニット アナログ GPIO24V 本装置のステータス 表示 赤:通信異常など 青:正常運転 様々な 既製品のセンサー (無ければ自作) 様々なFA機器
  26. 26 59 / 使い回ししやすく・・・ • 汎用的に使える盤を製作 サーキットプロテクタ(IDEC、富士電機) 端子台(東洋技研、WAGO) RaspberryPi GROVE

    Hat ・プラボックス(日東工業、タカチ) ・アルミフレーム(NIC) ・ゴム足(タキゲン) コンセント(パナソニック) ランプ、スイッチ    (IDEC、オムロン) タワー表示灯 (日恵製作所、パトライト) DINレール、配線ダクト (篠原電気) 300mm 500mm
  27. 27 59 / Pythonライブラリ • GPIO端子の制御 → Rpi.GPIO, pigpio 入力イベント取得:GPIO.add_event_detect

    が便利! • I2C → smbus • Grove → 公式のライブラリ Grove.py • 見える化 → OpenPyXl → plotly
  28. 28 59 / 仕様:作例1(ポカよけ) • 次に使う部品を作業者に教える → 部品箱そばのランプを点滅 • 部品を取ったことを検知

    → 人がボタンを押す → 間違ったボタンを押したら警告 (高速に点滅して「押して」アピール) • RaspberryPiの電源管理、RTC時刻保持
  29. 29 59 / 全体構成(ハード) ランプ 付き ボタン 操作盤 (押しボタン&ランプ) Grove

    Base Hat for Raspberry Pi UPS&電源 監視ユニット 作 業 者 入出力数 拡ユニット (16ch) Raspberry Pi GPIO24V~3.3Vレベ ル変換 &RTCユニット アナログ GPIO24V 本装置のステータス 表示 測定対象 赤:通信異常など 青:正常運転 GROVE I2C ・・・
  30. 30 59 / Python3 プログラム 全体構成(ソフト) systemd 電源監視 sh RTC/NTP管理

    sh pokad.service 時刻合わせ:起動時だけ UPS&電源監視ユニットからの 信号監視 Raspbian Buster
  31. 31 59 / 作例1 製作中・・・ ボタンボックスの内部 拡張基板の動作テスト

  32. 32 59 / 作例1 製作中・・・ 裏側の配線・・・ 整線後

  33. 33 59 / 作例1 (実物) ランプ付き ボタン 様々な部品の 入った箱

  34. 34 59 / 仕様:作例2 (設備監視) • シグナルタワーの点灯状態の検知 → 点灯・点滅・消灯の判定(フォトTr) •

    生産設備の電源の電流値測定(CT) • 作業者による設備ステータスの入力受付 → 自動検知できない事象は人手でボタンを押す • 測定データをSQL Serverに転送 → LAN接続異常時は、ローカルのSQLiteに保存 • RaspberryPiの電源管理、RTC時刻保持
  35. 35 59 / 全体構成(ハード) フォト トラン ジスタ CTセンサ 設備の元電源 他(押しボタン&ランプ)

    Grove Base Hat for Raspberry Pi UPS&電源 監視ユニット 設備 アンプ& フィルタ フィルタ Raspberry Pi GPIO24V~3.3Vレベ ル変換 &RTCユニット アナログ GPIO24V 本装置のステータス 表示 測定対象 赤:通信異常など 青:正常運転 GROVE
  36. 36 59 / ROS nodes 全体構成(ソフト) systemd roslaunch 電源監視デーモン RTC/NTP管理デーモン

    roslaunch起動スクリプト 時刻合わせ:起動時だけ UPS&電源監視ユニットからの 信号監視 respawn="true" オプション (ノードが落ちたら自動再起動) Raspbian + ROS Kinetic
  37. 37 59 / ROSノードの構成 /gpio_in /gpio_out /grove_ad /storage /workerstat /mystat

    /main GPIO入力 GPIO出力 AD変換入力 設備状態 判定 シグナルタワー 点灯状態判定 全体統括 データ書き 込み 各ノードが正常 に動いているか 監視 RPI.GPIO PyMssql PySQLite GROVE.AD pytnonライブラリ ノード msg srv /sigtowerstat
  38. 38 59 / 作例2 (見える化) 設備の運転状態 始業 終業 ・緑:加工中 ・黄:段取り中 当日の部品加工実績リスト

    (工場の生産管理システムから取得) C#.NET(スミマセン!) で作ったWindowsアプリで、見やすい形に加工 作業者の状態
  39. 39 59 / 実際やってみた感想 • Pythonで手軽に作成! (豊富なライブラリが有り難い! • 単純な事を見えるようにしただけで・・・ チョットした気付き → 改良ネタも出てきた

    → 作例1:時間の長すぎ・短すぎの警告 (作業自体の誤り検知) → 作例2:日報の自動入力へ展開 (作業時間、作業内容) • 使ってもらえる! → モチベーションアップ !  !
  40. 作例3: コンサート会場でIoT

  41. 41 59 / 現場カイゼン! 小型パソコン「Raspberry Pi」 コンサート会場 (写真:Switch Science, raspberrypi.org)

    教育用マイコン「micro:bit」
  42. 42 59 / 背景 • とある、アイドルグループのファン → 秋葉原、沼津市、お台場が舞台 • 2013年に出会ったのを機に、転職。

    → 時間に余裕が出来たので、コミュニティやメイカー活 動を始めた → 静岡県沼津市が舞台の ”サンシャイン!!”の大ファン (画像:ラブライブ!webページ他)
  43. 43 59 / 自己紹介(ライブ参加歴) • 2013年 (出会い) ・・・    • 2017年

      ・2nd埼玉 • 2018年   ・3rd埼玉x2、3rd福岡                  ・ファンミ愛媛                  ・4th東京ドームx2 • 2019年   ・ファンミ広島, 東京                  ・アジアツアー千葉                  ・5th埼玉 ・1st東京 • 2020年   ←---- ラブライブ!フェス in SSA ----→                 ・CYaRon!1st福岡 (画像:ラブライブ!webページ他) μ’s Aqours 虹ヶ咲 スクールアイドル 同好会
  44. 44 59 / 自己紹介(ライブ参加歴) • 2013年 (出会い) ・・・    • 2017年

      ・2nd埼玉 • 2018年   ・3rd埼玉x2、3rd福岡                  ・ファンミ愛媛                  ・4th東京ドームx2 • 2019年   ・ファンミ広島, 東京                  ・アジアツアー千葉                  ・5th埼玉 ・1st東京 • 2020年   ←---- ラブライブ!フェス in SSA ----→                 ・CYaRon!1st福岡 ライブビューイング (映画館)含めると 30回以上 6日前には 北九州市に参加! (画像:ラブライブ!webページ他) μ’s Aqours 虹ヶ咲 スクールアイドル 同好会
  45. 45 59 / きっかけ • コンサートの場で応援グッズとして 使われるペンライト (コンサートライト) • その場の雰囲気に合わせ →

    発光色を変えたり → 振り方を変えたり • アーティストと観客と共につくる、”一体感”
  46. 46 59 / ”カイゼン”したいこと • 色替えのボタン操作を 簡単にしたい (操作する瞬間、”素”に戻る!) • ”オタクは3本が基本”

    → 実際は複数本持ち → スイッチ押しにくい・・・ 色替えボタン ペンライトの柄 “基本”の持ち方
  47. 47 59 / ”カイゼン”したいこと • コンサートが始まるとtwitterが静かになる・・・ • コンサート中の雰囲気を伝えるために、 簡単にツイートしたい       ←ココ、IoTっぽい

  48. 48 59 / 製作したモノ • 音声認識でペンライトを色替え • ペンライトを”振る”ことで自動ツイート ① ②

    ペンライト部 RaspberryPiと周辺機器 ③ ④ ⑤ ⑥ ⑦ ⑧ ペンライト制御の Micro:bit ペンライト RaspberryPiと 周辺機器 咽頭マイク
  49. つくりかた (細かい技術的な話し)

  50. 50 59 / 仕組み • キャストさんの ”愛称の読み”の辞書を 元に音声認識 → キャスト・カラーに切替

    • ペンライトを”振った”動きを micro:bitの加速度センサを トリガに使って、ツイート • ラズパイとペンライトの無線通信 演者名 色番号 演者名 色番号 あんちゃん 1(橙色) あいきゃん 6(白色) りかこ 2(桃色) きんちゃん 7(黄色) すわわ 3(緑色) あいにゃ 8(紫色) ありさ 4(赤色) ふりりん 9(ピンク) しゅか 5(青色) (内蔵の) 加速度センサ
  51. 51 59 / ソフトウェア構成 micro:bit USB IF シリアル 通信入力 音声認識結果から

    色番号を選定・文字列生成 Julius プロセス マイク入力 デバイス シリアル 通信監視 ツイート 内容生成 シリアル 通信出力 認識辞書ファイル Pythonスクリプト ペンライト部 micro:bit Twitter APIに 指示 無線通信
  52. 52 59 / ハードウェア構成 ペンライト部 RaspberryPiと周辺機器

  53. 53 59 / ハードウェア構成 ペンライト RaspberryPi Zero W Micro:bit USB

    サウンド IF 咽頭マイク スマートフォン (WiFiテザリング) twitter 出力IF 加速度センサ Micro:bit 3V電池 USB ハブ 5Vモバイル バッテリー micro:bit “RADIO” インターネット WiFi ペンライト部 RaspberryPi &周辺機器 IF:インター   フェース LTE USB アナログ デジタル USB USB
  54. 54 59 / こんな感じで動作!

  55. 55 59 / 自動ツイート

  56. 56 59 / ところが・・・ • レギュレーションのため 会場には持ち込めない! • 公式さん、はやくコレ作って・・・

  57. 57 59 / コンテストに応募 • 「みんなのラズパイコンテスト 2018」 (日経BP・日経Linux/ソフトウェア主催)

  58. 58 59 / コンテストに応募 • 「みんなのラズパイコンテスト 2018」 (日経BP・日経Linux/ソフトウェア主催) • なんと入賞!

  59. 59 59 / まとめ • 身の回りのちょっとした”カイゼン”に当てはめる → やりたいことの断片が分かれば  →Tipsが選べる →

    自分で使う、誰かに使って貰う  →次を作るモチベーション  • 「作りきる」こと! → ”Done is better than perfect.” 「多分動くと思うからリリースしようぜ」 → 妥協と納得の範囲内での”品質”を目指そう • 更にモチベーションアップ! ・・・そして、”メイカー”になろう! → コンテストへの応募、MakerFaire等イベントに展示参加してみ よう!(京都5月、東京10月、大垣12月?)