2016年11月27日日曜日

Raspberry Piを使ったドライブレコーダーの作成

ドラレコをラズパイで作る

どうも、お久しぶりです。
今回はドラレコを作ってみたいと思います。

とりあえず使ったもの一覧
  • Raspberry Pi 3
  • Raspberry Pi Camera Module v2
  • Ubuntu Mateインストール済みSDカード
  • タクトスイッチ数個
  • 抵抗数個
  • LED数個
  • 適当なケーブル
ドライブレコーダーって基本的な機能は運転してる風景を録画して、もし事故にあった時に
分かり易く第三者の視点として事件の状況を教えてくれるものですよね。
ただコレがすごく値段が高い!だいたい\15,000から\20,000するのでとてもじゃないけどワンクリ購入できない!
しかし性能は値段に比例するので高いやつを買っておけばOK!
きれいな画質でどこを何キロどれくらいの時速で走ったかまで記録してくれるものもありますね。

(コレ全部ラズパイでできるじゃん)

実はAliexspressで購入してあったGPSもあるし、カメラモジュールもこの前買ったし、
加速度センサーもなんだかんだ持ってるしイケる、コレはイケる!
もし実現したら市販のものにさらに付加価値を追加できるし、キットにして販売すれば
ワンちゃんビジネスとして通用するのでは?と思いついたわけです。

という事で簡単ざっくりとした制作記録を残しておこうと思います。

カメラケース制作

コレは前回紹介したものと同じでカメラモジュールは基盤むき出しのまんまだとすぐに壊れてしまうので、
何かしらのケースに入れて運用する必要があります。なのでまずはケース作りから始めましょう。

まずケースを作るにあたり、どのようにしてカメラを設置するかを考えなくてはいけません。
カメラと本体は一体にさせるのか、とかカメラだけをルームミラーの裏に貼り付けてケーブルで繋ぐのかとかとか。

私の場合は、うるせぇまずは静電気保護だ!って感じで適当に作ったので後で作り直さないといけません。
あと追加でレンズを装着する際の取付口とかも重要ですね。
巷ではマグネットで取り付けるタイプのが市販されていて先駆者さんたちはそれを使っているケースが多いようです

ドラレコ完成イメージ

とりあえず私は完成イメージをこう言う風にします。
  • カメラは吸盤を使ってフロントガラスに貼り付ける(スマホホルダーみたいなやつで)
  • ラズパイ本体は電源口に近いグローブボックスらへんに設置する
  • ラズパイとカメラを繋ぐために長いフラットケーブルを使う
  • 広角レンズを使う
  • 保存先の媒体はUSBメモリーかHDD
  • 可能ならばGPSを使ってどの道を何km/hで走ったのかを映像と紐付ける
  • 可能ならば加速度センサーで衝突を検知し、検知した場合の映像データは削除されないようにする
  • 保存先の容量が一杯になったら、古いデータから消去していく
設置場所についてはぶっちゃけ試行錯誤して改良していくしか無いので構想練りの段階では
あまり気にしなくていいかな感がします。

広角レンズは純正のカメラで録画すると、歩道など映らず意味が無いので画角を広げるために使います。

保存先については、ラズパイのOSが入れてあるSDカードに頻繁に書き込んだりすると故障する時期が
早まってしまうし、データを取り出す時に不便なので別口で用意したいところです。
HDDを使うと容量と書き込み寿命を考えないでいいけれど、振動で壊れるかもしれないので対策が必要ですね。
それとスピンアップ時に電力を大量に消費するのでラズパイと要相談っていうところもありますね。

そうそうラズパイの電源についても考えないといけません。
まぁそれはあとで考えましょう。

GPSを映像と紐付けるのは少し難しそうですね。後で念入りに考えましょう。

衝突時の検知は加速度センサーをチョチョイのチョイすればできそうな気がするので特に考える事はなし。

容量が一杯になったら~はすごく簡単考える必要なし。

以上を踏まえてドラレコを作っていきましょう。

後日色々更新します。

2016年11月22日火曜日

ラズパイ純正カメラのケース

カメラケース始めました。

どうも、今回はタイトル通りカメラケース始めました。

まずはこちら、どーん。

先日カメラを買ったときに、コレはもうドラレコにするしか無いと思いまして
まずカメラを使うにはケースだケースとなりました。それで作りました。

水滴とかホコリとか静電気とかが気になるのでアクリルのダサい板とはおさらば。
心機一転新型ケースでドラレコ制作開始ですね。

追記

なんかいろいろあってこうなりました。

新しく購入したものたち

購入したもの

こんにちは。
今回は新しく購入したアイテムをご紹介したいと思います。

まずはこちら。
これは13.56MhzのRFIDリーダーですね。
規格はISO/IEC 14443になっています。
このリーダーを使って入室管理的なことをしたいと思います。

続いてこの棒、歪センサーです。重さが量れるもので体重計の中にも入ってます。
これで飲み物の残量とかお米の残量とか表示できます。

これはISO/IEC 14443対応のタグです。
サンワサプライのNFCを買ってリーダーで試してみたんですが、使えなかったので買い直しました。
今はNFCとこの規格両対応のタグを購入しているところです。

そして今回の主役、ラズパイ純正のカメラモジュールです。
下にあるアクリルは適当に切って土台にしました。
これでドラレコとか作れますね。

あとヒートシンクも買ってきました。強制空冷するともっと冷えますね。

ではこれらを使いこなすために猛勉強をしましょうかね。

2016年11月16日水曜日

da-Vinci-1.0Aで非純正フィラメントを使いたい

非純正フィラメントを使いたい!

お久しぶりです。
今回はxyz printing製の3Dプリンターで純正のフィラメントではなく、非純正のフィラメントを使う方法を発見したのでご紹介したいと思います。
ただし今から行うことはメーカーの保証が無効になり、かつプリンターが壊れてしまう可能性があります。

参考サイト voltivo.com Da Vinci 1.0 filament counter reset using an Arduino

とりあえず本日必要になる道具たち

[ここをクリック]
aaaa

2016年10月30日日曜日

Raspberry Piで圧力センサーを使う

圧力センサーを使うために

どうも、電子工作っぽいことをやってみようと思います。

今回はスイッチサイエンスさんで売られているMouser製の感圧センサーを買ってきました。確かMouserは台湾の会社だったような。。。
お値段はおひとつ400円で、使用用途はとりあえず重さを測ると言う感じです。

しかしコレを使うには問題が!
それはA/Dコンバーターを使わないとラズパイではただの変なペラペラになってしまうことです。
しかし前回A/Dコンバーターをちゃっかり3つも買ってあるので大丈夫です。

それでは実際に回路を作ってみましょう!
SPI通信の設定をされていない方は、前記事のUbuntu mateでの設定方法の健忘録 SPI通信の設定をご覧の上行ってください。

今回使う部品たち
  • Raspberry Pi (お好きなバージョン
  • A/Dコンバーター (MCP3008)
  • 感圧センサー
  • ブレッドボード
  • ジャンパワイヤー
  • 適当な抵抗
まず最初にどうやって重さを測るかを説明しましょう。
興味のない方やもう知っていますという方は読み飛ばしてください。

重さを量るには・・・?

重さを量るにはまずセンサを用いますが、そこから先はどうするのでしょうか。
工業高校へ行った方とか高専とか工業系の方なら基礎過ぎて既にご存知だとは思いますが、
こういったアナログなセンサ類は基準の電圧からどれくらい電圧が下がったかを見ています。

例えば5vの電源に適当な抵抗を2つ追加したとします。
すると2つの抵抗の間の電圧はどうなるでしょうか?
電圧降下が起こり、その中間の電圧は5vから下がってしまいます。
そして今回使う感圧センサは荷重がかかると抵抗が下がるものです。
つまり二つ目の抵抗にこのセンサを使えば重さが計れるということになります。

そしてアナログセンサはその変化を波のように表します。
しかしラズパイはアナログの波を見ることが出来ないのでA/Dコンバーターを使用します。
今回使用するA/DコンバーターはMCP3008で、10bitの精度でアナログ波をデジタル波に変換することが出来ます。
10bitが何を指しているかというと、2^10で2進数を10桁扱えるということです。10進数に変換すると1024ですね。
それで0から1024の値の範囲で実際の重さと見比べればどれくらいの重さかが分かるというわけです。

回路制作

回路と行っても特別なものは何もありません。
上の図から用意に想像できる通りこうなります。
私が使用したラズパイ3はピンの配置が他と違いますのでご確認ください。

MCP3008のスペックシートを参考にラズパイと接続してください。

使用したPIN一覧

Pin02(5v)=MCP:VDD,VREF
Pin06(gnd)=MCP:AGND,DGND
Pin23(GPIO11)=MCP:CLK
Pin21(GPIO09)=MCP:DOUT
Pin19(GPIO10)=MCP:DIN
Pin24(GPIO08)=MCP:CS



作図に使用したもの

値を読み取るプログラム

A/Dコンバーターから受け取った値を見れるようにします。使用する言語はPythonですので簡単かも。
インデントと文字コードでエラーが出るかもしれないので使用する際はご確認願います。
#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
import spidev
import time
import os

# SPIバスを開く
spi = spidev.SpiDev()
spi.open(0,0)

# MCP3008から値を読み取るメソッド
# チャンネル番号は0から7まで
def ReadChannel(channel):
 adc = spi.xfer2([1,(8+channel)<<4,0])
 data = ((adc[1]&3) << 8) + adc[2]
 return data

# 得た値を電圧に変換するメソッド
# 指定した桁数で切り捨てる
def ConvertVolts(data,places):
 volts = (data * 5) / float(1023)
 volts = round(volts,places)
 return volts

# センサのチャンネルの宣言
force_channel = 0

# 値を読むのを遅らせる
delay = 0.25

# メインクラス
if __name__ == '__main__':
 try:
  while True:
   data = ReadChannel(force_channel)
   print("A/D Converter: {0}".format(data))
   volts = ConvertVolts(data,3)
   print("Volts: {0}".format(volts))
   time.sleep(delay)
# 何か入力したら終了
 except KeyboardInterrupt:
  spi.close()
  sys.exit(0)

実際に測定してみる

先ほど作成した回路を使って重さを測ってみましょう。
では書き込んだプログラムを実行しましょう。
実行するにはターミナルに
python /home/"ユーザー名"/"プログラム名".py
と打ち込みましょう。
""の中身は皆さんごとで違うと思いますが、私はhome上の自分のディレクトリ上にプログラムが置いてあります。

するとターミナル上に不思議な数字がたくさん出てくると思います。
"A/D Conveter"が10bit表記の電圧で、"Volts"が変換済みの電圧の値です。
何もセンサー上に置いてなかったりすると値は1023になっており、電圧は5vになります。
だんだん圧力をかけていくと値が小さくなっていき、電圧が下がります。

本格的にセンサーを使ってみる

回路とプログラムは無事に動きましたが素の状態でセンサーを使うのはどうも不格好だし、測りにくい。
そこで3Dプリンターでこんなものを作ってみました。

ぴったりハマります。ただし端っこに置くと正常に測れなくなりますが、ペットボトルとかなら測れますね。

以上で圧力センサーの使い方の紹介を終わります。

Ubuntu 16.04でXRDPが使えない

XRDPが使えない現象

この前のことですが、ラズパイと色々連携させるためのサーバーを用意していました。
最近は昔みたいに馬鹿でかいパソコンを使わなくても、サーバーレンタルしなくても手軽に安価にサーバーを用意出来るのでいいですね。
(ラズパイをサーバーにしとけばよかったかも

用意したのはIntelのNUCでSSDに換装済みのものです。



それでApacheとMySQLを使うために、最新版のUbuntuをインストールした所まではいいんです。
無事インストール作業が終わったのでいつも通りの手順でxrdpをインストールしました。
(複数パソコンが有るとディスプレイの切り替えだったり2つもキーボードがあったりして煩わしいので)
sudo apt-get install xrdp
その後キーボードとマウスとHDMIケーブルを引っこ抜いてメインのPCからリモートしようとログインした矢先に、「Login OK」という文字が表示された瞬間落ちるんです。何が落ちるってアプリが落ちて接続どころじゃないんです。


リモート出来ないんじゃ今後の設定ができないじゃないかと激おこですよ。
それでよく調べてみるとある段階からUbuntuはUIにUnityを採用してると言う記事が見つかりました。
UnityだとVNCがどうのこうのってつまりxrdpは使えないという結論になったわけです。おふざけあそばさらないでください割りと時間返してほしいです。
(しかしUnityちゃんが可愛いので許しましょう→

私が今までに見たサイトの数々↓
Griffon's IT Library – How to install XRDP on Ubuntu 16.04 – Easy Way
askubuntu How to use xrdp with Unity on Ubuntu 16.04 LTS?
kashiの日記 ubuntu 16.04インストール(11) リモートデスクトップ(xrdp)
pelican@ainoniwa.net Ubuntu 16.04.1とXRDP再び!日本語を取り返せ!

割りと最初に見たサイトはわかりやすく説明してあったのですが、追加でコードを書くのが嫌だったもので、いっその事Ubuntu Mateを使えばいいじゃないかと思いました。
(普通にUbuntuでxrdp使えるので私みたいに変なことしないでも大丈夫です。

さて、なぜUbuntu Mate(ウブンツメイトではなくマテ)を使うのでしょう。
理由は簡単Unityを使っていないからです。
Ubuntu Serverだと日本語に対応していなくて後からインストールが必要で、最新版だとxrdpが使えないし、
Ubuntu for Desktopは日本語版があるけれどもxrdpが使えない。
Mateだと日本語環境が最初からあっていちいち文字入力に追加でIbusやらMozacやらインストールしたり設定しなくてもいいし、Ubuntuベース?だから対して違和感もなく使い続けられます。

めっちゃいいじゃないですか。しかもラズパイでもMateは提供されているのでお揃いですよ。
ということでUbuntu Mateをインストール、xrdpもインストールして早速ログイン。

成功です!

2016年10月27日木曜日

Bloggerでソースコードを貼り付ける方法

Bloggerでソースコードを貼り付ける方法

これから書いていくコードを載せるときに不便だなぁと思ったのでソースコードを貼れるようにカスタマイズしたいと思います。
それで調べてみたところ何人かの方々が同じようなことを思ったらしく情報がたくさんありましたので幾つかを参考にさせていただきました。

参考サイト
SyntaxHighlighter公式ページ
プログラミング はじめる。 ブログ(Blogger)にプログラムのソースコードを埋め込む方法
digitra Bloggerでコードを綺麗に表示できるようにする
DevAchieve BloggerにソースコードをハイライトするSyntaxHighlighterを導入する

沢山のサイトを拝見させていただいたときに"SyntaxHighlighter"の文字が多く見られなんだろうと思い調べてみるとcssで作られたコードをきれいに見せるプラグイン的なものでした。

それではBloggerに適応してみましょう。

SyntaxHighlighterを使う


以下のCSSコードを"テンプレート"→"カスタマイズ"→"上級者向け"→"CSSを追加"の欄にコピー&ペーストします。
/* Pretty printing styles. Used with prettify.js. */
 
/* SPAN elements with the classes below are added by prettyprint. */
.pln { color: #000 }  /* plain text */
 
@media screen {
  .str { color: #080 }  /* string content */
  .kwd { color: #008 }  /* a keyword */
  .com { color: #800 }  /* a comment */
  .typ { color: #606 }  /* a type name */
  .lit { color: #066 }  /* a literal value */
  /* punctuation, lisp open bracket, lisp close bracket */
  .pun, .opn, .clo { color: #660 }
  .tag { color: #008 }  /* a markup tag name */
  .atn { color: #606 }  /* a markup attribute name */
  .atv { color: #080 }  /* a markup attribute value */
  .dec, .var { color: #606 }  /* a declaration; a variable name */
  .fun { color: red }  /* a function name */
}
 
/* Use higher contrast and text-weight for printable form. */
@media print, projection {
  .str { color: #060 }
  .kwd { color: #006; font-weight: bold }
  .com { color: #600; font-style: italic }
  .typ { color: #404; font-weight: bold }
  .lit { color: #044 }
  .pun, .opn, .clo { color: #440 }
  .tag { color: #006; font-weight: bold }
  .atn { color: #404 }
  .atv { color: #060 }
}
 
/* Put a border around prettyprinted code snippets. */
pre.prettyprint { padding: 0 0 0 3px !important; background: rgb(248, 248, 248) !important; color: gray; border: 1px solid rgb(224, 224, 224);}
 
/* Specify class=linenums on a pre to get line numbering */
ol.linenums { margin-top: 0; margin-bottom: 0; background: rgb(248, 248, 248); } /* IE indents via margin-left */
li.L0,
li.L1,
li.L2,
li.L3,
li.L4,
li.L5,
li.L6,
li.L7,
li.L8,
li.L9 { line-height: 1.5; border-left: solid 3px #6CE26C; padding-left: 3px;}
/* Alternate shading for lines */
li.L0,
li.L2,
li.L4,
li.L6,
li.L8 { background: white; }
li.L1,
li.L3,
li.L5,
li.L7,
li.L9 { background: rgb(248, 248, 248); }
pre.prettyprint {
        -moz-border-radius: 8px;
        -webkit-border-radius: 8px;
        border-radius: 8px;
        width: 95%;
        margin: .8em; auto;
        word-wrap: break-word;
        white-space: pre-wrap;
        overflow: auto
}

コピペしたら次は"テンプレート"→"HTMLの編集"と開いて、<head>タグの適当な位置に以下のコードをコピペします。
<script src="https://raw.github.com/gist/1522901/" type="text/javascript">

これで設定は終了、実際に記事に表示させるには
<pre class="prettyprint linenums">
ソースコード
</pre>
とする。

Raspberry PiのIPアドレスを通知させてリモートする

ラズパイのIPアドレスを知る

ラズパイを弄っていると、いちいちhdmiケーブルを繋ぎマウスとキーボードを別途接続して。。。
というのが億劫になってきました。
そこで"xrdp"をラズパイにインストールしてリモートしようと思いつきました。(sshはなんか嫌なので

大抵のラズパイをいじっている人も直接触るのではなくリモートするなりして操作していると思いますが、
そのためにはいくつか必要なものがありますので健忘録も兼ねて残しておこうと思います。

Pythonを使ってIPアドレスを調べる

とりあえずipアドレスは"ifconfig"で見れます。
commands.getoutput('ifconfig')

IPアドレスを送信するプログラム

Pythonを使って指定のメールアドレスにラズパイのipアドレスをお知らせするプログラムを置いておきます。
Gmailをお使いの方はhost,port,smtpの変更は要りませんがyahooとかだと変更が必要です。

#!/Usr/bin/env python                                                                                 
# -*- coding: utf-8 -*-                                                                               

import smtplib
from email.mime.text import MIMEText
from email.Utils import formatdate
import commands

class sendGmail:
    username, password = 'your_email', 'your_password'

    def __init__(self, to, sub, body):
        host, port = 'smtp.gmail.com', 465
        msg = MIMEText(body)
        msg['Subject'] = sub
        msg['From'] = self.username
        msg['To'] = to

        smtp = smtplib.SMTP_SSL(host, port)
        smtp.ehlo()
        smtp.login(self.username, self.password)
        smtp.mail(self.username)
        smtp.rcpt(to)
        smtp.data(msg.as_string())
        smtp.quit()

if __name__ == '__main__':
    to = 'your_email'
    sub = 'Raspberry Pi Notification'
    body = commands.getoutput('ifconfig')
    sendGmail(to, sub, body)

xrdpのインストール

apt-getでxrdpをインストールします。
sudo apt-get install xrdp

その後はWindowsからリモートするなら"リモートデスクトップ"からログインします。
"コンピューター"の欄はホスト名(NetBIOS?)かIPアドレスを打ち込んでやればいいです。

あとはラズパイのユーザー名とパスワードを入力してエンター。
以上でラズパイをリモートする方法でした。

Ubuntu mateでの設定方法の健忘録


Raspberry Pi調理のための下ごしらえ

SPI通信の設定

下記のコマンドをターミナルに叩き込み、config.txtを開きます。
sudo gedit /boot/config.txt
すると沢山変なコードが書いてあるので、その中からspi通信に関する箇所を探し出します。
一番ラクな探し方は"ctrl+f"で"dtparam=spi"と入力しエンター。
dtparam=spi=off
するとすぐ見つかるのでコレ↑を
dtparam=spi=on
こう変更します。
SPIが有効になったかは
ls /dev/spi*
で確認してください。

OSインストール後のパーティション変更

raspbianだと
raspi-config 
でいろいろな設定ができるけれどUbuntu mateだとこのコマンドが使えないので全て手打ちで変更する必要があります。
まずターミナルを開き以下のコマンドを入力します。
sudo fdisk /dev/mmcblk0
すると何やら入力を求められるので
vCommand (m for help): d
Partition number (1,2, default 2): 2と入力します。このコマンドはmicroSDカードの2番目のパーティションを削除しています。

削除したあとは新しく作成しないといけないので、以下の通りにします。
Command (m for help): n
Select (default p): p
Partition number (2-4, default 2): 2
First sector (133120-120946687, default 133120): (Enterキーだけ押す)
Last sector, +sector of +size{K,M,G,T,P} (133120-120946687, default 120946687):(Enterキーだけ押す)
この作業は新しくパーティションを作成するものでデフォルト値で大丈夫です。
容量を細かく分けたいのであれば"First sector"と"Last sector"の値を変えればokです。

以上の作業を反映させたいので、保存しましょう。コマンドは以下の通りです。
Command (m for help): w
このコマンドを打ち込んだあと、ラズパイを再起動して、更に以下のコマンドを入力します。
sudo resize2fs /dev/mmcblk0p2
以上で終了です。

自動起動するプログラムを設定する

2016年10月6日木曜日

割れないための工夫のその後

前回の割れないための工夫からの進捗

ケープを買いました

オシャレさんじゃないですがケープを買いました。
巷で流行りのケープはヒートヘッドにケープを散布するそうで、印刷し終わった構造物をきれいに剥がすことができるそうです。

まだ3Dプリントwithケープは試していませんが、今度試してみようと思います。
その報告はまた今度でも。

2016年9月4日日曜日

3Dプリントした印刷物の表面処理

アセトンを使った表面処理

表面処理って?

どうもみなさん、K専生です。
今回は3Dプリンターで印刷したモノに表面処理を施したいと思います。

3Dプリンターにおける表面処理とは、積層タイプで印刷した結果現れる凸凹を綺麗にする、または見えなくすることです(多分)。

↓左が表面処理を施したガイコツ、右が未処理のこどもペンギン。

それで表面処理を施すにはヤスリで頑張って削ってサーフェイサーでも塗るか、
表面の樹脂を溶かして滑らかにするしかありません。と言ってもそんなに方法はないと思いますがね。。。

今までもヤスリを使った方法は一番使っていましたが、表面をピカピカにしてある作品を拝見させてもらった時に自分もやるゾ~、と思いこっちの処理もしてみることにしました。
(ヤスリで整形するのって思いの外疲れるものですからねぇ)

ちなみにアセトンってなんぞという方に説明いたしますと、アセトン(除光液やガンプラの接着剤とかに入っている)はABS樹脂を溶かす作用があります。

百均かスーパー、Amazonに売ってますので簡単に手に入りますが、可燃性があるので扱いには注意してください。

では今からこの像を加工していきたいと思います。

必要なもの

今回必要なものを一覧にしてまとめました。
  1. アセトン
  2. 作品
  3. 作品を入れる容器
  4. 換気しながら作業できる環境

作業の仕方

  1. 容器に作品を入れる
  2. 容器にアセトンを入れる
  3. 密閉する
  4. 放置(場合によっては湯煎かドライヤーで温める)
数分後容器から取り出すと柔らかくなり表面が微妙に溶けています。

30分ほど放置したらすごく柔らかくなって手にとって見ると表面が薄皮みたいに剥がれてしまい悲惨なことになってしまいました。

結論

意外にイケる
結構イケますよこれ。
実際にはアセトンに浸すのか、気化させて溶かすのかって言う具合にいろいろ試してみないといけないですが仕上がりが断然違います。

見てください、このテカリ。
線が全くと言っていいほど気になりません。
もう自分はこれから3Dプリンターフィギュアモデル造形師目指しちゃいます。

皆さんもお時間があれば是非試してみては?

2016年8月22日月曜日

フィラメント交換

さぁ印刷だ・・・?

フィラメントの交換について

どうも、毎日3Dプリンターを弄っております。
今回はダヴィンチ1.0Aのフィラメント交換についてお話しようと思います。

フィラメントってなんぞ?

フィラメントはインクジェットプリンターで言う所のインクで、材質がABSとかPLAとかあります。
実は結構前に公式HPのストアから6個入りのお得パックを買いまして、それに交換したいな~
と思っている所に残量が残り少ないぜ!ってプリンターから言われました。
それでフィラメント、交換しちゃいます。

フィラメント交換の手順

交換の方法はダヴィンチシリーズだとほぼ全部同じだと思います(.JrとProは知りませんよ)。

まず上蓋をパカっと開けて見てください。線状のフィラメントがプリンタヘッドへと伸びています。

その後コンソールで”フィラメント交換”を選択して”アンロード”を選択します。
選択したら段々とフィラメントがせり上がってくるのでそのままズボッと引き抜きます。

その後はこのボックスを取り出せばいいんですが、まず留め具を外してください。
留め具を外したらボックス引き抜いて新しいの差しこむだけ。

差し込んだらフィラメントの端っこを持ってツィーっと穴に通していきます。


ズッポリ

その後コンソールから”ロードフィラメント”を選択してヘッドから新しいフィラメントがニュルニュル出てくるのを待ちます。
前のと違う色にした場合は色が完全に綺麗になったら終了です。
同じ色なら適度にやってればいいと思います。


フィラメントボックスにあるICチップ

ダヴィンチシリーズお使いの方だと同じ体験をされたと思うんですが割りとフィラメントが残ってても交換しろって言われるんですよねぇ・・・。
この前交換したボックスをシャカシャカ振ってみるとなんだかまだ中身が残っている様子。

 上がICチップで、下がそれの読み取り口
たまに刺し込み加減のせいで読み取りエラーが出る面倒くさいヤツ

それで分解しました。

めっちゃ残ってるやん!!!(怒)
なんだかインクジェットプリンターみたいですね・・・

ダヴィンチシリーズはこのICチップに書き込まれているフィラメント残量から交換する時期をお知らせしてくれるのですがコレはあんまりだろう・・・。

Google先生にこの事を聞いてみると同じような記事がわんさかわんさか山盛りでして、
何人かの有志はこのICチップを書き換えるツールを開発しちゃったようです。
フォーラムや個人ブログなどで取り上げられており、一つはArduinoを使って書き換えているみたいですね。

ちなみに何で書き換えるといいのかっていう話なんですが、残り残量がマックスの状態のICチップに書き換えられると純正以外のフィラメントが使えるようになります。またフィラメントを置く場所が自由自在になります。
理由は単純で使い終わった書き換えていないボックスを利用すると残量が0なのでエラーが出ます。

いやー私も書き換えたい!
リールのみをプリンターの上に乗せて、今フィラメント使ってるぞ!っていうのを見えるようにしたいですねぇ。

2016年8月9日火曜日

創意工夫

前回の3Dプリンター

今後の対策として・・・

前回は綺麗に割れてしまったヒートベッドについてお知らせさせていただきましたが、今後の対策として割れないようにする方法を考えることにしました。

まず割れないための印刷

割れる時の条件は大きい物を印刷するとき、かつ縮む時の範囲が関係しているみたいです。
それとヒートベッドにくっつき過ぎてて割れるのもありそうなのとヒートベッドのど真ん中に印刷すると耐久度的にも弱そう。

対策としては端っこに印刷と小さく分けて印刷することでひとまず実践してみたいと思います。
小さく分けて印刷することに関しては実際メリットもあるしイケるんじゃないかなぁ。

他にも3Dプリンターのユーザーが集まるフォーラムで同様の問題を体験した有志がいるらしく、そこでの対策方法はテープをガラス面に貼るというものでした。
テーピングをするとガラスの保護にもなるし、印刷物を割りと簡単にはがせるということらしいです。

実践してみました。(なぜアルミテープもあるし)

 紹介されていた方法では黄色いセロハンテープっぽいやつ(名前知らない・・・)を使っていました。
ただ自分は持っていなかったのでそこら辺に転がっているマスキングテープを使いました。


なんとなくアルミテープ貼ったほうがいいかなとか思って貼りました。


その上にマスキングテープをペタリ、なんだかいい感じっぽい。

しかしさぁテスト印刷だというところでテーピングして増えた厚さのことをすっかり忘れていた。
(なぜあのあと高さ調整しなかったし・・・)
そのまま印刷してしまった自分はその後、無残に剥がれたテープを見て卒倒してしまうのであった。
それでなんだか面倒くさくなった自分はもうやらないほうがいいやと思ってノーマルで今日も印刷しています。

それに端っこで印刷するとどっちにしろ割れてても関係ないじゃないかと思っている始末。

3Dプリンターのトラブル

悲報

da-Vinci-1.0Aさんが・・・

なんとヒートベッドのガラスが剥離してしまいました・・・
アニメ、咲に登場してくるキャラクターが持っているペンギンを印刷した時なんですが、土台の部分にピッタリとガラスが張り付いてしまいました。

見づらいですがぽっくりと穴があるのが確認できます。

頑張ってガラスを外した時の写真。この時手を切りかけました。
なぜこんなことになってしまったかというと、今自分が使っているフィラメントがABS樹脂で、
印刷後の冷却で熱収縮を起こしてパリッと割れてしまいました(何言ってだコイツ)。

わかりやすく説明するとこのガラスは電熱線付きのヒートベッドと言って、印刷中はとても熱いんです。何で熱くしてあるかというとガラスが熱くないと溶けた樹脂が綺麗にガラスに乗らないんです。
それでそこにABS樹脂が押し出されてガラスにひっつくんですが、このABS樹脂が問題でコイツは冷えると縮むんですよ。
小さいものを印刷すると特に問題はないんですが、大きくて高さのあるもの(この時の土台はだいぶ分厚かった)を印刷すると冷えた時の縮みが強く、そのまま割れてしまうということです。

正直とてもショックでした(泣)。
実はこのプリンター修理するのに結構なお値段するんですよねぇ・・・

とりあえず学科長殿には報告をしましたが、今後どうするか考えなければならなくなりました。
まだもう一機残ってるから印刷はできるけど、凡ミスすぎてモチベーションだだ下がり中です。

3Dプリントしたヤツ

印刷完了

3Dプリンターの精度

よく3Dプリンターで印刷したものは出来具合が汚いというウワサを耳にします。
まぁ自分としてはたまに汚い時もあるかな?それと3Dプリンターちゃんって結構気まぐれだし、
と思っています。
↑これは前回の記事で紹介したペンギンですが実際に印刷してみるとこんな感じになります。
ちなみに右側が大人ペンギンで横に印刷したもの、左側が赤ちゃんペンギンで縦に印刷したものです。
違いは層の方向から分かると思いますが、赤ちゃんペンギンのほうが汚く(そんなにじゃないと思う)見えるかもしれません。

ちなみにプリンターによって精度はもちろん違いますがユーザーが正しい設定で印刷しないと本来想定している精度では印刷されないという特性(?)があります。
これは人間の作業と似ていて、素早い速度で印刷すれば印刷結果が荒くなり、ゆっくりと印刷すれば綺麗になるといった具合です。

更に自分が使っているのは積層型(溶かしたフィラメントを層状に積み上げる)でその層の高さや、どれくらいの口径でフィラメントを出すか、といったところにも結果が左右されます。

なので一概にも絶対に汚く印刷される!というわけではないと思います(多分)。

モデリング

3Dプリントするデータの作成

どうやって3Dプリンター使うんですか(すっとぼけ)

って言う方いるんじゃないですか?どうすんねん的な。

まぁデータを作成しなきゃプリントできるものも出来ないんですが、
それを作成するには適当なCADソフトかモデリングソフトを使います。

CADって?

CADとはcomputer aided designって言ってコンピューター上で設計図を描く奴なんです。
種類もたくさんあって工業部品とかを作るやつや建築用のやつまであります。
自分は2年前にSolid worksを使ってデータの作成をしていましたが、
やはりデータの作成は難しいですね(お値段のする奴は使いやすいと思います)。

最近ではautodeskというところが沢山ソフトを出していて更に学生や一般個人での使用は無料
とかなんとかで高いソフトは使えないぞ、ということもなく誰でもデータを作成できるようになりました。

それで今自分はautodeskのFusion360を使っております。
これはファーストペンギン賞っていうトロフィー?用で作成したもので、fusion360だと3次元CADまで描けるくせにモデリングまで出来ちゃう恐ろしいやつです。

そしてデータを作成する際、3Dプリンター用のファイル形式はいくつかあるのですが大体は.stlを使っています。
Google先生に"3Dデータ stl"で質問してみると沢山の3Dプリンターデータ共有サイトが出てきて、自分でデータを作成せずとも適当なのを印刷することが出来ます。

最近では超絶流行っているポケモンGO用のスマフォケースのデータなんかも転がっています。

あとは印刷

da vinciだと公式のxyzwareっていうソフトを使ってこんな感じで印刷できます。
これはstlファイルを開いたあとにスラーサーがどういうふうに印刷するかを出してくれたあとにプリンターにその情報(G-コードって言うらしい)を転送する。