鶏メモブログ

カラスになりたい

MENU

環境自動測定ロボットを作製する ②

 まずはロボットの駆動輪を考えてみる。駆動方式として、以下が挙げられる。

1. 二輪

 タイヤ2つだけで、駆動もこの二輪。このままだとシーソーみたいに傾くので、補助輪(ボールやキャスタ)を付けて安定性を得る。左右のタイヤの駆動を独立させたし、補助輪を傾けたりすれば、ステアリングもできる。コンパクトで、コストも低くできそう。地面の傾きには弱いか?

参考:PicoGo 自走ロボット

2. 四輪

 原理は上と同じで、設置タイヤの数の違いだけ。安定感はこっちのほうがある。ステアリングを駆動輪と別にする場合は、アッカーマンアングルなども考える必要がある。

参考:Lynxmotion - A4WD3 ラグホイールローバー

3. キャタピラ(無限軌道)

 戦車や重機で見られる駆動。キャタピラー登録商標なので、クローラーとか履帯とかのほうが正しいか。駆動は歯車の付いた二輪を回し、歯車に合わせた履帯が回ることで進む。左右を独立駆動させ、回転方向を互いに逆へ回せば、その場で回転する。接地面が圧倒的に多く、多少の凹凸に対しても履帯が変形するので、安定して動けそう。

参考:Lynxmotion - A4WD3 トラック ローバー

4. 歩行

 人のように歩くものや、昆虫のような6本足のものもある。ロボット感を一番感じられるが、制御が難しそう。

参考:Lynxmotion SQ3U 四足歩行ロボット

 上記のような駆動方式が挙げられる。今回のロボットに求めるのは、「安定して、正確に移動できる」駆動である。したがって、キャタピラ形式を採用しようと思う(いつか、歩行にも挑戦してみたい)。

環境自動測定ロボットを作製する ①

 仕事柄、気温や地温、植物の状態などを測定・集計することがある。できれば毎日測って考察に役立てたいが、やっぱり面倒だし手間。そこで、試験圃場を自走して測定し、集計できるような測定ロボットを作りたい。

 構想として、

1. キャタピラで凹凸や障害物を乗り越えられるように

2. 測定器をマウント、のせかえられるような設計

3. 移動範囲を限定し、一人でどこかに行かないように

4. 測定後は車庫(?)に自分で帰る

 この辺りを最終目標にしたい。

 電子工作の素人としては、一つ一つ学びながらになるので、その備忘録として記事に残していこうと思う。(どれくらいかかるかなぁ・・・)

 

 今のところのフローチャートとしては、

1. キャタピラの機構と駆動制御の理解

2. ラジコンのような無線制御の理解

3. 試作機の設計と3Dプリント

4. 自動制御の仕組みの理解

5. GPS制御の理解

6. 測定器マウント機構の設計

 といったところ。やっていくうちに追加していくと思う。

「Fritzing」でブレッドボードの配線を描く

 電子工作を行う上で、ブレッドボードとジャンパー線を使った仮組をよく行う。ブログタイトルのごとく、鶏頭はすぐに忘れてしまうので、回路図をメモに残したい。写真を都度撮ってもいいが、面倒だしカッコ悪い。

 そこで、簡単にPC上で描けるソフトウェア「Fritzing」を使ってみる。

 オープンソースのソフトで、ブレッドボード、回路、プリント基板の3種を描くことができる。有料ソフトで8 ユーロかかるが、Githubで無料版が公開されている(当然、動作保証なし、自己責任)。今回は以下のURLよりDL、お試しで使ってみる。

Releases · fritzing/fritzing-app · GitHub

 右ウインドウからブレッドボードに部品をドラッグし、穴に入れるだけ。ワイヤーはボード上の穴をドラッグすれば任意の長さで引け、色も後で変えられる。ワイヤーは曲げて見やすい形にもできる。

 試しに下のようなものを作ってみた(抵抗は適当)。

 見た目もよく、わかりやすく残せるので、メモ代わりに使っていこうと思う。

プリンター改造メモ

kingroon kp3sを購入してから半年、見た目は少し変わっている。

変更点を簡単にまとめておこうと思う。

1. ヘッド回り

 ファンは2つ備わっており、一方は常時回転でヒートシンクに、もう一方は2層目以降のプリント時に回転して造形を冷やす。

 前者はDC/DCコンバーターで24 V → 12 Vに落とし、12 Vのファン(もらったもの)を使用。コンバーターが表に出てるので、いつか本体内にしまい込みたい。後者はより静音で強力なものを使用。

Amazon.co.jp: GDSTIME 2PCS 50mm x 15mm 12V DC 冷却ファン 小型換気扇 送風機 遠心排気ファン、 3Dプリンター用、ボールベアリング ファン CE RoHS : パソコン・周辺機器

 

 ノズル周りは、ノズル先端を除き純正のものを使用。AliExpressですべて買える。ノズルはAmazonで適当に買ったもの。

・サーモミスタ

Kingroon-ガラス製の密閉型温度センサー,100k,ntc 3950,シングルエンド,端子XH2.54-2P,1mケーブル,3dプリンター1用

・ヒーター カートリッジ

Kingroon-ヒーターカートリッジ12v 24v 50w,6*20mm,セラミック,3dプリンター部品用ヒーター,reprap mendel v6 j-head

・ヒートブロック

3dプリンター用アルミ押出機部品,v5 jヘッド用ホットエンドヒートブロック,16x16mm x 12mm,5個,kp3s

・ヒートブレイク

Kingroon-titan押出機kp3s,1.75mmフィラメント用ステンレス鋼m6スレッド6x30mm,3dプリンター部品,2個4個5個

ヒートシンク

Kingroon-車のヒートシンク,kp3s 3.0 e3d v6,v6用の短い直接ヒートシンク,jヘッドウェード押出機,kp3s用の3dプリンター部品1.75mm

 

 3D touchも搭載し、オートレベリングもできるようにしてある。

・3D touch

タッチセンサー付き3Dプリンター,Reprap mk8 i3用の3Dタッチセンサー,2022

 

 ファンカバー(赤色のパーツ)は、以下をプリントしたものを使用。

 自分の場合、ベッドとファンカバーがすれすれなので、底面は少しやすってある。

www.thingiverse.com

 

 

2. ベッド

 ベッドにはデフォルトのマグネットシートを使っていたが、造形物を剥がす際にシートを削ってしまった。そこで、耐久性があるガラスベッドを使用している。平面もしっかりとれて使いやすい。

Kingroon-ホットベッド付き3Dプリンター,超ホットベース,表面,ガラスプレート310*310*4mm/235*235*4mm/220*220*4mm

 

3. XYZ軸

 品質に大きく影響するXYZ軸の精度。直角は取れているようだったが、ベルトとプーリーを精度の良いものに変えている。

Trianglelab-タイミングベルトGATES-LL-2GT,幅6mm,9mm,ender3 cr10 anet 3Dプリンター用耐摩耗性

Trianglelab-タイミングベルトプーリー2gt 20 6mm p5,アルミニウムプーリー,6mm同期ベルト,ギアホイール

Openbuildsため10個cncクリアポリカーボネートvホイールプラスチックホイールpomプーリーvスロットリニアレールボールベアリング3Dプリンタ部品

 

4. ファームウェア

 OctoPrintを導入し、遠隔での印刷が可能となっている。

 印刷時に角がぷくっと膨らむのを防ぐためにKlipperを今後導入したい。

 

OctoPrint webカメラ導入

OctoPrint内でwebカメラによる監視が可能で、印刷ミスをいつでも見れるようになる。

対応カメラなら接続するだけでよいようだが、手持ちのカメラは全滅だった。

どうやら対応外カメラでもいじれば使えるようなので、そのやり方の参考サイトをいくつか貼っておく。

Linuxの操作が不勉強で扱えていない。まずはそこからやってかねば。

 

note.com

raspi-katsuyou.com

signal-flag-z.blogspot.com

OctoPrint導入

立ち上げたUbuntu ServerにOctoprintを導入し、遠隔で3Dプリンターを動かしたい。

以下をもとにやってみる。

localharvestsupply.com

www.illuminated3d.com

 

1.  アップデート

 まずは、システムアップデートを行う。

sudo apt update

 で、有効なパッケージの一覧を更新し(アップデートの実行はしていない)、

sudo apt upgrade -y

 で、有効なパッケージをもとに、可能なパッケージを更新(=アップデートの実行)。

sudo apt install net-tools

 で、net-toolsをインストール。

sudo reboot

 で、再起動。

 

2. OctoPrintのインストール
sudo apt-get install puthon3-pip python3-dev python3-setuptools python3-virtualenv gitlibyaml-dev build-essential

 で、インストール。

mkdir OctoPrint
cd OctoPrint

 で、ディレクトリを作り、

virtualenv --python=python3 venv
source venv/bin/activate

 で、Python3の仮想環境を作り(?)←よく分かっていない( ^^; )、

pip install pip --upgrade

 で、最新バージョンのpipをインストール。

pip install https://get.octoprint.org/latest

 で、OctoPrintをインストール。

sudo usermod -a -G tty "ユーザー名"
sudo usermod -a -G dialout "ユーザー名"

 で、ユーザー権限を付与。

~/OctoPrint/venv/bin/octoprint serve

 で、OctoPrintを走らせる。

OctoPrintの操作は、ウェブブラウザ経由で管理画面を開いて行う。

http://"IPアドレス":5000

 で、動いてれば管理画面が開ける。

 

3. OctoPrintのデフォルト設定

最後にTera Termでのデフォルト設定を行う。

wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.init
sudo mv octoprint.init /etc/init.d/octoprint
wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.default
sudo mv octoprint.default /etc/default/octoprint

 で、権限確認。

sudo chmod +x /etc/init.d/octoprint

 で、設定ファイルをnanoモードで編集できる。

nanoモードは「Ctrl + X」で終了できる。

 

4. プリンターへの接続とOctoPrintの初期設定

 いよいよプリントと接続する。

 まず、プリンターとサーバーPCをつなぎ、PCを立ち上げる。

~/OctoPrint/venv/bin/octoprint serve

 で、もう一度OctoPrintを走らせ、

http://"IPアドレス":5000

 を、ウェブブラウザで入力し、OctoPrintと接続。

 いくつかの初期設定はあるが、ユーザー名などだけ決めて、後は適当でおけ(後で変更可)。

 「connect」でプリンターと接続できる。

 「upload]でg-codeを転送し、印刷で遠隔操作できる。

Open SSH

前回立ち上げたUbuntu Serverにリモートでつなげるように設定する。

1. 設定ファイルの参照、変更

 設定ファイルの現状と変更を行う。

   sudo vi /etc/ssh/ssdh_config

 で、設定ファイルを確認。必要なら書き換え、

    
:wq

 で、上書きして終了。

 

2. sshdの起動
   sudo service ssh restart

 で、sshdを起動。

 

3. sshdの起動確認
   systemctl status sshd    

 で、サービスが有効(active runnning)かを確認。

 

4. IPアドレスの確認
   ip addr

 で、IPアドレスを確認。

 

5. ネットワークの確認
   ping "IP アドレス"

 で、ネットワークの確認。

 

6. Tera Termでの接続

 Tera Tem を使ってリモートで接続する。

Tera Term Open Source Project

 固定したIPアドレスを入力して接続。これで、別PCから遠隔操作ができるようになった。