星期一, 6月 03, 2019

Lego EV3 Print Bot列印機器人(含EV3 Dev的安裝)

一、ev3改為Ev3dev環境(步驟參考:https://www.ev3dev.org/docs/getting-started/
  1. 參考https://www.ev3dev.org/docs/getting-started/
  2. 下載EV3dev image file
  3. 準備一張microSD卡(不要超過32GB)
  4. 下載Etcher ,並安裝以便於將下載的EV3dev image檔燒錄到microSD卡中
  5. 執行Etcher,選擇microSD卡的位置,以及image file,並開始執行image file燒錄動作
     

  6. 將燒錄好的microSD插入EV3主機,支援EV3的wi-fi dongle也一併接上EV3的USB port
  7. 將EV3主機開機,開機完成後會出現以下畫面,畫面右上角代表電池的電壓,若電壓值於8V~6.5V之間,代表電力正常,若電壓低於5V,主機將自動關機
  8. 選擇Wireless and Network,設定wi-fi連線(使用金鑰認證),若連線成功,ev3主機螢幕上方會出現正確的IP位置
  9. 打開Pietty利用SSH,遠端連線到EV3主機的IP,預設帳號robot,預設密碼maker
  10. 執行python --version,得知目前環境預設的python是2.7版,系統也支援python3.5。執行which python,得知python的執行路徑放在/usr/bin/python,ls -al /usr/bin/python 可得知是連結到python2.7 若要切換預設執行版本:
    sudo rm /usr/bin/python
    sudo ln -s /usr/bin/python3.5 /usr/bin/python
    切换到3.5版本的python了

    若要再改回來:

    sudo rm /usr/bin/python
    sudo ln -s /usr/bin/python2.7 /usr/bin/python
    切换到python版本2.7了
    進入python編輯畫面,要跳出時,按CTRL+D

    二、如何在EV3DEV執行簡單的程式直接操控EV3

    1. 發出聲音:
      $ beep # 440 Hz for 200 ms
      $ beep -f 200 -l 500 # 220 Hz for 500 ms
      $ beep -f 262 -l 180 -d 20 -r 2 \
      -n -f 392 -l 180 -d 20 -r 2 \
      -n -f 440 -l 180 -d 20 -r 2 \
      -n -f 392 -l 380 -d 20 \
      -n -f 349 -l 180 -d 20 -r 2 \
      -n -f 330 -l 180 -d 20 -r 2 \
      -n -f 294 -l 180 -d 20 -r 2 \
      -n -f 262 -l 400 # twinkle twinkle little star
    2. 讓ev3可以直接說話(將輸入的英文字句,以人聲講出來)
      $ espeak "hello, I am an EV3. I like to talk because I am a robot.“ 
      --stdout | aplay
      Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono


    三、利用3D印表機,列印出可以plug在樂高積木橫桿上的筆套(Pen holder for EV3 Drawing robot

    四、組裝ev3 print bot
    1. 組裝步驟圖:下載處
    2. 組裝完後,將前端固定筆的裝置拆下
    3. 改成3DP列印的筆套
    4. 在windows下,執行pietty,以SSH連線到EV3
    5. 執行以下指令
      git clone https://github.com/cavenel/ev3-print3rbot.git
      cd ev3-print3rbot/
    6. 編輯writer.py,找到以下程式碼。wri.draw_image(image_file = 'images/test.svg')代表程式執行預設是畫出images/test.svg檔
      wri = Writer(calibrate = True)
      wri.draw_image(image_file = 'images/test.svg')

    7. 執行程式讓ev3printbot開始畫圖(列印)
      python3 writer.py

    8. 若要讓EV3畫出不同的圖,首先我們要利用inkscape畫圖,存檔成SVG檔,在windows 下利用inkscape命令列,轉換圖檔:
      "c:\Program Files\Inkscape\inkscape.exe" c:\image.svg --verb=EditSelectAll --verb=ObjectToPath --verb=SelectionUnGroup --verb=FileSave --verb=FileClose --verb=FileQuit
      參數意義:
      --verb=EditSelectAll (選擇全部)
      --verb=ObjectToPath (將物件轉成路徑)
      --verb=SelectionUnGroup (將物件解散群組)
      --verb=FileSave(覆寫存檔)
      --verb=FileClose(關閉)
       --verb=FileQuit(離開)
    9.  將轉換後的image.svg,利用winscp這種sftp軟體,將檔案上傳到EV3,並放在/home/robot/ev3-print3rbot/images
    10. 修改writer.py,將
      wri.draw_image(image_file = 'images/test.svg')
      改為
      wri.draw_image(image_file = 'images/image.svg')
    11. 執行writer.py
      python3 writer.py




    Reference:

    1. https://www.ev3dev.org/
    2. Ev3 print3rbot on Github
    3. Робот-художник EV3 Print3rbot

    沒有留言: