文章類型
開發平台
解決方案
關注主題
文章類型
開發平台
解決方案
關注主題

【LinkIt 7688】透過Wi-Fi控制器無線驅動3D印表機,千元搞定!

作者:Michael Huang

現在3D印表機應該算是普及了,有興趣的maker們多多少少都玩過,不過目前看到的做法大多都只有兩種:一種是接電腦,在切片完成之後就直接控制印表機,從校正、加熱、傳送指令等等,通通一機搞定。

另外一種是在電腦上切片完之後,把生成的*.gcode丟到一片SD卡中,然後插入SD卡的印表機可以在本身的控制面板上控制移動、校正等功能(所謂的脫機),然後再讀取SD卡內的*.gcode資料來做執行。不管是上述的哪一種做法,其實一遇到多台印表機可以同時運作的時候就會有點麻煩。

雖然說一來沒幾個人會有很多台印表機,二來沒幾個人會需要同時印大量成品出來使用(偏偏我就是剛好遇到必須這樣的坑)。但是不管怎麼說,如果能夠脫機,又能夠不用拿著檔案跑來跑去,這樣才智慧化嘛!

其實現行已經有人在維護這樣的專案:OctoPrint,不過搭配上述兩個情境,一般來說會使用Raspberry Pi來當WiFi控制器。算一算7688比Pi便宜這麼多,不拿來取代試試看太可惜了,本來就能夠做video streaming,再加上能夠無線控制3D印表機的話就完美囉!

因此,為自己設定了一個專案目標:透過WiFi控制器讓3D印表機可以無線檔案傳輸與控制,免於使用SD卡或者接USB線的困擾。

所需時間

目前雖然還沒有實際接上印表機測試,也還沒把影像串流加進來,不過目前把 OctoPrint 架設起來大概花不到半個小時。(阿就軟體照著安裝而已,不要泡咖啡看漫畫應該很快吧=3=)

先修知識

只要抱持著一個學習的心,不需要先修的~(X!這跟說「只要夠強就不用先修」有什麼兩樣!)(等等,這句話根本抄之前的文章啊!)好啦認真說(還抄!),這次要把OctoPrint架在7688上面,需要有7688的基本操作能力,所以如果第一次操做的,麻煩參照7688-OpenWRT操作篇(這裡)操作一下,往下的執行才會順利喔。

    • 材料規格、數量(參考購買地點)

      • 一片LinkIt Smart 7688(Seeed Studio

      • 一條MicroUSB-OTG連接線(源達電子,NTD85元)

      • 一台3D印表機(自備)

    • 材料使用說明

      • ㄜ….這次這樣應該很淺顯易懂吧?7688透過OTG連接上3D印表機上的USB線

        LinkIt Smart 7688執行兩支程式:一支會在7688裡面將WebCam的影像即時串流(streaming),不過這個還沒加上去(也不確定空間還夠不夠執行streaming);第二支程式則是在7688上執行OctoPrint,到時候則是透過網頁連線進入7688的OctoPrint來控制3D印表機囉。

 

  •  使用工具

    • 使用規格:電腦

    • 工具使用方法教學:電腦應該….不太需要教吧(要教還很頭痛阿囧)

    • 參考購買地點:電腦自備,OTG線在源達電子都可以買得到

 

  • 步驟1 – 初始設定LinkIt Smart 7688

    操作圖(影)片

    df2d62_85157811d11f47b6b5ad9429cb5caf89

    初始設定步驟(1)

    df2d62_09d4107bd5714b83acef8b003819b49b

    初始設定步驟(2)

    df2d62_92302f23833d4b088c5a1906d1acc194

    初始設定步驟(3)

    df2d62_e9db325716074750ae0812f0feb153b6

    初始設定步驟(4)

    df2d62_4d01caf93f4e4ebeba2bcae86211edee

    初始設定步驟(5)

  • 操作動作目的及說明

    在使用LinkIt Smart 7688之前,我們需要確定怎麼樣才可以進到7688裡面的Linux系統來執行程式,所以我們再接上電源之後呢,就先連接到7688的無線網路(如第一張圖),並且在瀏覽器中進入「mylinkit.local」,我們應該會看到第二張圖的畫面,這時候設定的密碼就會是之後要連線進7688的密碼(帳號是預設的root),在輸入密碼的時候會看到至少要是六個英數字的提醒(第三張圖),這時候登入就可以看到7688中的預設設定,也可以利用這樣的網路介面來更新韌體、設定糢式等等。

    • 在System Information中可以看到以及設定相關的參數,基本上只會在這邊更改密碼以及更新韌體,不過要更新韌體之前要先將韌體下載到電腦中,以免接上7688的無線網路之後就沒辦法連接上外部網路。

    • 在Network裡面可以看到「AP mode」和「station mode」,預設的「AP mode」也就是讓7688變成一個AP(無線網路存取點,Access Point),所以我們才會在第一張圖中看到電腦有搜尋到7688的SSID,而如果是選擇station mode,那麼7688就會像我們任何一個裝置連線到其他的AP,可以透過這樣的方法直接連上網路,不過這個時候就需要先知道7688在該AP裡面的虛擬位置,我們才有辦法連線進7688做控制。因此我們就維持AP mode即可,在此可以更改顯示出來的SSID。

df2d62_9827bd528bb4487580f837fcb40bd6ac-mv2df2d62_8f697b1dd0854c0d819f67ef2d29778c-mv2

  • 步驟2 – 接上測試用Arduino Mega

    • 操作圖(影)片

      螢幕快照 2017-01-17 下午3.15.18

    • 操作動作目的及說明

      首先因為還沒接上印表機,所以先找一片Arduino Mega,並且將Marlin這個常用的3D印表機firmware燒錄進去,然後透過OTG線將Mega接上7688。然後要讓7688能夠正確判斷連接埠。

      • 這邊記得要先把kmod-usb-acm安裝上還有更新setuptools,因為我測試過先安裝完OctoPrint之後再回頭來安裝kmod-usb-acm與更新,結果遇到空間不夠的問題。安裝完kmod-usb-cam之後就可以在7688中透過「ls /dev/」指令來看到裝上Marlin的Arduino Mega顯示為「ttyACM0」了。

      • 7688似乎本身就有安裝好python-setuptools了,所以我們直接用pip安裝更新就好了。這是OctoPrint需要的套件,所以一定要更新。

  • 步驟3 – 安裝OctoPrint

    • 操作圖(影)片

    • 操作動作目的及說明

      這一個部分相對來說簡單很多,感謝 Matt Defenthaler 已經在他的文章中把大部分的設定測試完了,而且還很好心的做成一個安裝 shell script,所以只要到他的網頁中,把「Software: OctoPrint + dependencies」下載下來就好。不過因為檔案空間不小,所以請先下載下來之後放到一張microSD卡,解壓縮之後再放進7688中職行。

      • 因為我們已經解壓縮完成,所以在7688中直接切換到SD卡中的OctoPrintSoftware目錄下,並且執行install.sh這個shell script就好。

      • 等待一小段的安裝時間之後,會看到「Finished processing dependencies for OctoPrint===xxxxxxx」,那就代表安裝完成囉!執行的時候使用指令「octoprint –iknowwhatimdoing」就好,後面那個有趣的flag是為了避免在root的情況下直接執行server(OctoPrint就是一個server),所以預設不執行,而因為OpenWRT都會是root在執行指令,所以就要加上這個flag來強制執行。當看到「Listening on http://0.0.0:5000」就代表server運行中,可以測試了!

  • 步驟4 – 進入OctoPrint

      • 操作圖(影)片

      • 操作動作目的及說明

        首先我們要在網址列打上「7688ip:5000」,其中7688的IP請使用AngryIP Scanner或者是類似軟體來找到(有mDNS的直接使用「mylinkit.local:5000」也行),然後第一次使用OctoPrint會需要你設定帳號密碼(畢竟是server,以後用帳密登入比較安全)登入之後就可以看到左上角可以選擇我們有透過OTG連接的印表機埠,還有左下角可以直接上傳檔案,甚至直接控制列印。在網路上有很多OctoPrint搭配Raspberry Pi的使用教學,這部分基本上已經進入到OctoPrint的server了,應該大同小異都差不多,所以有機會再往後多玩玩囉。

    總結

    這個案子說難不難,但說簡單也是花了我整個下午,不斷重頭跑過看一下哪樣的流程會比較OK(原本一直卡在空間不足),不過既然做出來了就讓大家一起來玩玩囉。最後是,如果真的要放上印表機去跑,總不可能每次都先連線進去7688來運行OctoPrint server,所以記得在「/etc/rc.local」中,「exit 0」前面加上「octoprint –iknowwhatimdoing &」,這樣每次7688就會在開機完成後直接執行OctoPrint server了。

    說真的,7688一片才不到台幣500塊,這樣的價格競爭力其實可以拿來做很多事情,只不過有一些關卡要先大家幫忙突破一下,雖然說我們散戶們使用的量小,但是至少做出來有成果,大家都來玩的話能見度才會高嘛!

    (本文轉載自【輕鬆動手】部落格,原文連結:《千元內的3D印表機WiFi控制器 – 7688案外案》)

Michael Huang

Michael Huang

即使國中便進了數理資優班,但仍然星期一到六天天至補習班報到。到了師大附中數理資優班,累積了這麼幾年過程困難的訓練,卻也因此而對事物有自己的一套理解方式。

有幸在台大電機努力四年後,在美國密西根大學挑戰機器人的衝擊,也因此更深刻體會台灣教育與學生的不足。我還不知道哪一條路會成功,但是至少我看過比較多失敗的方法。

現在致力推廣機器人及其教學,為全國機器人競賽「PowerTech全國青少年科技創意創作競賽」首席研發及講師。另一方面將以深入淺出的方式來引導實作方面的技術軟實力。

部落格:輕鬆動手
Michael Huang

上一篇: | 下一篇:

468 ad

1 Comment

  1. 嗨,我也刚看到他的作品,并试着去实现,但安装出现以下问题:PUTTY显示信息:
    Extracting OctoPrint-868dc6d7a9b4b45c4a6d77fa2226ca40d9a098a4-py2.7.egg to /usr/ lib/python2.7/site-packages
    warning: easy_install: byte-compiling is disabled, skipping.

    OctoPrint 868dc6d7a9b4b45c4a6d77fa2226ca40d9a098a4 is already the active version in easy-install.pth
    Installing octoprint script to /usr/bin

    Installed /usr/lib/python2.7/site-packages/OctoPrint-868dc6d7a9b4b45c4a6d77fa222 6ca40d9a098a4-py2.7.egg
    Processing dependencies for OctoPrint==868dc6d7a9b4b45c4a6d77fa2226ca40d9a098a4
    Searching for sphinx-rtd-theme
    Reading https://pypi.python.org/simple/sphinx_rtd_theme/
    Download error on https://pypi.python.org/simple/sphinx_rtd_theme/: [SSL: CERTIF ICATE_VERIFY_FAILED] unknown error (_ssl.c:581) — Some packages may not be foun d!
    Reading https://pypi.python.org/simple/sphinx-rtd-theme/
    Download error on https://pypi.python.org/simple/sphinx-rtd-theme/: [SSL: CERTIF ICATE_VERIFY_FAILED] unknown error (_ssl.c:581) — Some packages may not be foun d!
    Couldn’t find index page for ‘sphinx_rtd_theme’ (maybe misspelled?)
    Scanning index of all packages (this may take a while)
    Reading https://pypi.python.org/simple/
    Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAIL ED] unknown error (_ssl.c:581) — Some packages may not be found!
    No local packages or download links found for sphinx-rtd-theme
    error: Could not find suitable distribution for Requirement.parse(‘sphinx-rtd-th eme’)
    好像不能下载了

    Post a Reply

我想回應

你的電子郵件位址並不會被公開。 必要欄位標記為 *

成城共創股份有限公司版權所有、轉載必究.Copyright(c) 2017 MakerPRO