2016年7月16日 星期六

Make Electric current stick game by Arduino (使用Arduino製作電流急急棒)


    這是用Arduino 自製的電流急急棒範例.
其實我主要是想要測試智能串口HMI 顯示屏的功能,剛好小朋友的媽媽有學校園遊會的活動
於是應老婆大人要求做了這個小專案.


<前面> 螢幕為一HMI panel 型號為TJC4832T035_011R.綠色阻礙棒子接在一顆MG 90伺服馬達上,當開始計時時,馬達會每隔3秒揮動一次,另外也可以在綠色棒子上再貼上鋁箔,並把鋁箔連接上路徑鋁箔,當急急棒碰觸時一樣可以做到導電失敗.


主要功能及製作說明:
1.有兩隻粗細不同的棒子可以選擇,原因是怕小朋友很難過關所以原本是用3DP印出一
   直徑1.5CM 的棒子,測試過覺得難度太高,所以又增加了一隻用竹筷的細棒子.

2.路徑寬度原本是規劃2.5CM ,但是由於木板不好切割所以不是很均勻,建議用瓦楞板或是
厚紙箱做地圖即可,然後在路徑上可以貼上會導電的烤箱用的鋁箔,我在鋁箔有貼上銅箔膠帶
當固定膠帶,銅箔膠帶電子材料行買的到,但是一捲要好幾百(不至於全部用完),只是用來固定鋁箔.我之前就有買了這次剛好可以用到.

3.左側為一起始紅外線感測器,右端為一終點紅外線感測器,這個感測器跟用來做尋跡車用的紅外線感測器是一樣的,當棒子經過感測器左端上方即會自動開始計時,在時限60秒內,棒子沒碰觸到即可過關.當棒子經過右端終點感測器時會自動感應.

4.中途有架設一伺服馬達接上一綠色棒子當阻礙,每隔3秒會揮動一次,當然時間是由程式控制,可以自行改成是改變時間.

5.使用一串口HMI 的觸控panel當顯示,基本上主用是用來顯示狀態及倒數計時,可以參考下面實際圖片的說明. ㄧ般來說要顯示數字也可以用七節顯示器來做,所以這個顯示屏並非必要也可以用七節顯示器替代,不過我提供的Arduino source code 只有我使用的HMI 處屏的code,如果用七節顯示器則這部分的code就要自行修改.

    PS.這個HMI觸屏為一USART傳輸可控制的螢幕,透過簡單的UART跟Arduino連線
  可以透過文字指令跟這個觸屏作互動切換顯示.事先在HMI 觸屏提供的控件軟體編輯好
切換畫面或是按鈕或是文字欄,再透過UART序列傳輸指令即可以跟Arduino作互動.
  可以在掏寶上搜尋 "hmi觸摸屏"即可找到相關產品,至於使用方式,通常賣家都會提供資料.

2016年7月9日 星期六

My Robot ,Arbu_Lucky, feet parts.(阿布拉機機器人_雙足)



This page share  feet parts of My Robot < ArbuLucky>.

You can download 3DP parts fromm below website:
http://www.thingiverse.com/thing:1665399

   The 3DP element "Pillar.stl" defaul lengh is 60mm .you need to resize by youself.
Just use the slice AP like as Cura can easy to change the lengh.






2016年5月23日 星期一

How to install OPENCV in Raspbarry pi 3.(如何在樹梅派上安裝OPENCV)

    這篇來記錄如何安裝OPEVCV 在Raspbarry pi 3 上.

  使用OS :Ubuntu MATE 16.04,請參照前兩篇有關Raspbarry pi 3的安裝.

(1)How to install Ubuntu Mate 16.04 in Raspbarry Pi 3(如何在Raspbarry pi 3安裝Ubuntu 16.04)
http://arbu00.blogspot.tw/2016/05/how-to-install-ubuntu-mate-1604-in.html

(2)How to install SSH,WinSCP and VNC in Raspbarry pi 3(如何在Raspbarry pi 3安裝SSH,WinSCP,VNC)
http://arbu00.blogspot.tw/2016/05/how-to-install-sshwinscp-and-vnc-in.html

   接下來會說明如何安裝OPENCV 以及匯入OPENCV 到Python 3.x 語言上,透過Python
即可以操作OPENCV 的功能.OPENCV原本是Intel 內部的一個計劃專案,主要可以從事影像處裡及辨識,如人臉辨識,也包含了一些機器學習,統計,類神經網路的功能.是一個強大好用的開源API.原本的OPENCV 是由C/C++的開源碼寫成. 底下透過一些方式可以將OPENCV 編譯成一個.so檔.即可以匯入Python 3 語言中使用.最後實作一個範例可以辨識出圖片的紅色區塊並將其圈起來.





2016年5月14日 星期六

How to install SSH,WinSCP and VNC in Raspbarry pi 3(如何在Raspbarry pi 3安裝SSH,WinSCP,VNC)


   This tutarial show how to use SSH and VNC to connect Raspbarry pi3 and your PC.

 Also see How to install Ubuntu Mate 16.04 in Raspbarry Pi 3
http://arbu00.blogspot.tw/2016/05/how-to-install-ubuntu-mate-1604-in.html


Step 1:Enable SSH service
In fact, SSH already installed in Ubuntu mate 16.04 .
so you can just in terminal type:

How to install Ubuntu Mate 16.04 in Raspbarry Pi 3(如何在Raspbarry pi 3安裝Ubuntu 16.04)


This tutorial show How to install Ubuntu Mate 16.04 in Raspbarry Pi 3

Step 1 :
Download the Ubuntu MATE 16.04 for Raspbarry Pi 3 from below web:
https://ubuntu-mate.org/download/





Selecting  "Via Direct Download"  to get ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img.xz 

2016年4月17日 星期日

Arduino Smart Car V3.0(手機藍芽遙控多功能自走車V3.0)


  Base on Smart Car V2.0 to modify theUltraSonic portion.Add one servo(MG 90s) to check turn left or turn right when close the barrier.


See the previous Smart Car design:
http://arbu00.blogspot.tw/2015/11/arduino-btsmartcarv2-v20.html
 To connect Servo signal on D13 pin.

Download 3DP things from below website:
http://www.thingiverse.com/thing:1497224


Below source code just to reference ,it can work normally,but not yet perfect.
Download the new Arduino source code:
https://github.com/Ashing00/Smart_Car-V3.0/tree/master




2016年4月9日 星期六

Make the trible layer MAZE By 3DP(使用3D列印機製作三層陷阱迷宮)



  This maze have 3 layer ,Layer A and Layer B are the normal maze and Layer C is a trap layer
 Put a iron bell and try to find the way from  Entrance (A)  to Exit (B) .see the <Picture 6>

  Using your hand to control theiron bell and be careful that there are a lot of dead holes on the way.The squae hole are the dead holes.When the iron bell drop in.It will drop into trap layer C,then the game is over.
  You  need to get the iron bell from DEAD hole,then replay it again.The circle hole is right way to enter another maze layer B.On Layer B also have a lot of dead holes.Enjoy!

 Of cause you also can go from B to A.

Download this thing:
http://www.thingiverse.com/thing:1478081


To see below pictures to know how to made it.

<Picture 1> Just combine layer A.B.C .


2016年4月8日 星期五

2016年4月3日 星期日

C語言的指標及實作如何讀取應用程式執行時所附帶的參數


    今天要來介紹C語言的指標,以及如何利用指標來讀取執行應用程式時所附帶的參數.
原始程式碼下載:
https://github.com/Ashing00/pointer01/tree/master

        完整原始碼已放在在上述連結,只不過我是用visual studio 2013的win32控制台程式
去編譯,須注意你的編譯環境是否與我相同,如果使用不同的編譯環境有可能會發生
編譯不過發生錯誤情形,請再自行參考修正編譯錯誤問題,不過基本的原理是一樣的.

      一般來說學習C語言比較有可能遇到兩個較難理解的主題,一個是指標(pointer)另一個遞迴,有關遞迴會在另一篇文章介紹,然而了解遞迴之前最好先了解指標.

     指標(pointer) 簡單的來說就是指向我們電腦記憶體裡的位址(address),而一般我們所知道的
數值或是字元字串等等資料就是存放在這些記憶體位址裡的值(value).這樣的一個觀念在以前X86系統的組合語言裡反而是部會有太大的困擾的,因為學習組合語言必然要知道定址的方法
所以也必然會知道現在存放在暫存器如EBX,EDX的到底是位址(address)還是值(value).
    那C語言其實就是用指標(pointer) 來達到可以存取位址(address)的方法,只不過可能
是因為資料型態定義的方式在使用上容易跟原本的數值字串等等取值的資料型態搞混.
要搞懂它最好的辦法還是實機操作,底下的範例程式利用printf 的功能來一步步確認區分
究竟現在是位址(address)還是值(value).

    首先必須先知道C語言裡定義的兩個符號一個是*,另一個是&.
&指的是取出這個資料型態所存放值(value)的位址(address) 所在.
 所以他應該得到一個位址(address).

例如 pointer.c 宣告 一個int DataA  數值變數並給他初始值55.
當使用adr1 = &DataA; 這樣的敘述時我們可以指定存放數值55的這個記憶體位址給adr1
  於是adr1可以得到這個數值(value=55)存放的位址(address),請看圖一的說明.

*指的是從指標(pointer) 所存放的位址(address)去取出值(value),也就是它應該得到的是
 一個值(value),然而有趣的是在多重指標裡這個取出的值(value),本身也可能是代表指向另一地方的位址(address).請看圖一的說明再配合程式的執行.

<圖一> 底下應是偏移4位元組 <筆誤> 



2016年3月17日 星期四

Build the light sword with 3DP+Arduino(用3D列印+Arduino製作光劍)


    I used 3DP and arduino Nano to build the light sword.

There are 4 kind of LED blink modes.Just press buttom to change LED blink modes.
When you wave the sword, it can beep.