顯示具有 機器人,arduino 標籤的文章。 顯示所有文章
顯示具有 機器人,arduino 標籤的文章。 顯示所有文章

2016年11月6日 星期日

OPENCV(7)--2D Convolution ,Image Filtering and Blurring (旋積,濾波與模糊)


        這篇介紹OPENCV提供的對影像作空間濾波的工具,透過2D Convolution(旋積或譯卷積),可以達到對影像作濾波的功能,而對影像實施低通濾波(LPF),實質上就是對影像作去除雜訊,模糊化的作用,而高通濾波(HPF)實質上對影像的作用就是銳利化,以及可以凸顯出影像的邊緣。

2D Convolution 

        跟信號一樣,我們也可以對 2D 圖像實施低通濾波(LPF),高通濾波(HPF)等。OpenCV 提供的函數 cv.ftlter2D() 可以讓我們對一幅圖像進行卷積操作。
如下圖<一>我們對一幅圖像做Convolution (旋積),底下是使用一個 3x3 kernel (核)的運算範例圖。

        操作如下:將核放在原圖像的一個像素A 上,求與核對應的圖像上 3x3個像素的和,用這個值替代像素 A 的值。重複以上操作直到 將圖像的每一個像素值都更新一遍。

圖<一>2D Convolution演算法

此圖來源:



2016年10月27日 星期四

OPENCV(4)--Grayscale,Binarization,Threshole(灰階化,二值化,閥值)


    這篇簡單的介紹OPENCV的灰階化(Grayscale),二值化(Binarization),閥值(Threshole)

灰階化(Grayscale):顧名思義將原本讀取進來原本具有B.G.R三個頻道的彩圖,轉換成只有
    一個頻道為0-255,的黑白值分佈,由值0為最黑到255為最白.處於中間的即為漸黑或漸白
   如<圖1 >讀進一原圖為藍白漸層圖,轉成灰階值後呈現在圖中Gray
如果要將讀取進來的圖片做灰階化有兩種方式
a. 在使用 cv2.imread()讀圖時,將第二參數設為0,這樣讀取的img即為灰階化後的圖形矩陣
EX:     img = cv2.imread('bl2w.jpg',0)
b. 使用cv2.cvtColor(),將原圖讀進來的矩陣放置第一參數位置
    將第二參數設為cv2.COLOR_BGR2GRAY
EX:gray=cv2.cvtColor(img_RGB,cv2.COLOR_BGR2GRAY)
    那麼原本img_RGB如果為一BGR 圖檔即可轉成灰值圖矩陣gray

在Python裡處理影像矩陣式利用Numpy矩陣物件來處理.
而Numpy 提供一個.shape 屬性,使用此屬性可得知該矩陣的大小及維數.
如下圖2,在紅色框框裡img_RGB.shape 為(256,256,3) 其256x256 為其圖片像素rows,clos值
也是像素解析度大小,而3代表R.G.B 三通道.
而img_RGB.shape 為(256,256) 代表灰階化後只剩一通道像素解析度大小仍然是256x256.

<圖1>





2016年10月22日 星期六

OPENCV(3)--Matplotlib pyplot bassic function


    這篇簡單的介紹Matplotlib的基本用法,主要可以用來秀圖特別是可以畫出函數或是矩陣元素圖形,以利我們做數學上的分析,他的功能類似於有名的Matlab軟體.

底下分別畫出三種圖.



第一個放置在最左邊,單純任意輸入一維陣列
y=[1,3,5,7,9,12,16,22]     #隨便輸入幾個數字
x=[0,1,2,3,4,5,6,7]           #X 軸序號
那利用plt.plot 即可畫出該圖,也就是我可以從圖視覺畫的看出y陣列分布的狀況
至於'ro' 參數,r 代表紅色o 代表畫出圓點,
plt.plot(x,y,'ro')
而底下另一方式'b-',b 代表藍色,-代表線段
plt.plot(x,y,'b-', linewidth=3.0)
除了o,-可以使用外
('o', 'v', '^', '<', '>', '8', 's', 'p', '*', 'h', 'H', 'D', 'd')   都是可以使用的特定符號
x,y則分別是輸入的x陣列及y陣列
linewidth=3.0  可以指定線寬,數字越大線越粗

2016年9月2日 星期五

ESP8266 WIFI(5) -Set LED ON/OFF from WEB browser


 這篇文章介紹如何在瀏覽器透過ESP8266 wifi連線控制Arduino上的LED 開關.


<圖1>概念圖,非完整接線圖


<圖2>實際工作狀態



首先請先參閱之前的ESP8266介紹完成基本接線及測試,

ESP8266 Wifi (1)---Connected with PC.

http://arbu00.blogspot.tw/2015/12/esp8266-wifi-1-connected-with-pc.html
ESP8266 WIFI(2) -update firmware and modify baud rate.

2016年7月26日 星期二

使用python與arduino連接控制LED之GUI圖形介面


        這篇文章示範如何使用Python跟Arduino連結.並使用Python建立出來的圖形介面來控制
Arduino上LED 的ON/OFF.

底下是第一個範例的介紹連結:
http://arbu00.blogspot.tw/2016/07/pythonarduinoled.html

    所建立出來的圖形介面如下圖所示,按下按鈕<Connect>去跟Arduino確認是否連線成功.
按下按鈕<ButtonA>則會傳送字元'a' 到arduino當指令去啟動LED跑馬燈1
按下按鈕<ButtonB>則會傳送字元'b' 到arduino當指令去啟動LED跑馬燈2
按下按鈕<ButtonC>則會傳送字元'c' 到arduino當指令去啟動LED閃燈的動作.
按下按鈕<Exit>則會傳送'ESC'鍵 字元到arduino當指令去結束視窗跟所有動作.
 




有關這個範例的實際示範及詳細的說明可以觀看底下的影片教學.




2016年7月21日 星期四

使用python與arduino連接控制LED


        這篇文章示範如何使用Python跟Arduino連結.並簡單的控制LED ON/OFF.
由於Python 是跨平台的程式語言所以可以安裝在一般電腦的windows上,也可以安裝在
使用Linux的系統如樹梅派.
   
         底下的範例程式是在一般的電腦windows 裡執行Python程式.
使用這樣的連結的好處在於分工,例如我們可以把影像識別或是語音識別建立在執行速度比較快的CPU上,如一般PC或是樹梅派,而把一些如機械手臂的動作或是資料感測建立在arduino端,透過Python 的套件Pyserial 就可以從Python端下自訂的文字命令去控制Arduino ,或是得到從Arduino端回傳過來的一些感測器數值資料.

        為什麼選擇Python?因為Python 語法簡單易學但是功能強大,並且世界上網路上都有開源的
原始碼可以參考.例如之前建立的OPENCV 做影像識別或是語音辨識都可以透過Python做到
,而只要再透過Pyserial 就可以控制Arduino做出如機器人方面的應用.
     
          而Python本身也有支援強大的網路功能,所以要做到IOT物聯網的功能,如從Arduino端得到感測器的資料再透過Python傳到網路伺服器或是從網路端得到指令透過Python傳給Arduino作一些控制也都是可以的.

       Python的功能還不只如此對於統計或是科學方面上的應用也是支援很多的套件可以使用,可以說Python 是功能全面性的程式語言但是又不如C++那樣複雜難懂.最主要的是網路幾乎都可以找到你想要的範例程式碼而且都是開源免費的.






有關這個範例的實際示範及詳細的說明可以觀看底下的影片教學.




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年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月8日 星期五

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.




2016年2月10日 星期三

Building a robot ant with 3DP.


It is easy to build a robot ant just using 3 servo .


Material prepare:
1.Arduino nano  x1
2.MG995  servo x3
3.bread board x1
4.some line.
5,Led or spearker (optional)
6.18650 battery x2

Step 1:
download 3DP components from below website:
http://www.thingiverse.com/thing:1332590


Step 2: Dowload Arduino source code from below :
https://github.com/Ashing00/robot_ant/tree/master


Step 3:Arduino circuit connecting.
  1.Connect 3 SERVO signal pin to Arduino D2/D3/D4
 2. Connect speaker +pin to Arduino D5
 3.Connect Led +pin to Arduino  D6.


2016年1月10日 星期日

Using Android Mobile Phone to control House's Lamp (使用Android手機控制家用電燈)




I Put 2 Servo SG90 into this box and use android Mobile Phone to control House's Lamp
Thru Arduino+BT without any relay.You don't need to change your house original circuit
just plug in this box  original Lamp Switch.This box is for 2 Power Switch .and I used the
 generic mobile Phone USB changer as power source.

2016年1月9日 星期六

Arduino 5 Axis Robotic_Arm V2.0 (Arduino 五軸機械手臂)


  This is a 5 Axis Arduino Robotic Arm with 2 controlled method.
1. one is auto mode by programming in arduino nano chip
2 another is manual mode by using Joysticks.



    This page show you how to connect the arduino circuit,
Regarding how to download 3DP components and how to assemble it .
please see below website.

http://arbu00.blogspot.tw/2015/12/roboticarm-v20-arduino_23.html.


and below can download the Arduino source code for Robotic Arm.<roboticArm1_1.ino >

https://github.com/Ashing00/Arduino_RoboticArm/blob/master/roboticArm1_1.ino


2015年12月26日 星期六

ESP8266 WIFI(4) -Soil_Humidity sensor



   接下來要介紹Arduino+ESP8266的一個應用範例,
從Arduino 讀取土壤濕度感測器的濕度以及POWER及ESP8266的電壓
透過ESP8266 wifi連線,把資料送上//http://api.thingspeak.com
Thingspeak 是一個可以免費註冊的網站,我們只要把資料送到該網站
即可在該網站監控我們所作的土壤濕度感測器的濕度及電壓.




Arduino 範例程式下載:
https://www.dropbox.com/s/ah21knzmc08ip5h/esp8266_soil.ino?dl=0


2015年12月23日 星期三

2015年11月21日 星期六

Arduino BT_SmartCar_V2(藍芽智慧小車 V2.0)



     I re-designed my BT_Smart Car .The new architecture is more easy to assemble.

 download the  3DP components here:
http://www.thingiverse.com/thing:1147275

and just see the below pictures you will understand how to assemble it.


新的設計方便使用麵包版做實驗,並且設計成卡凖式的.電池盒,麵包版跟馬達裝進去
時都會有卡一聲.


加入阿布拉機的3D列印與機器人的FB粉絲團
https://www.facebook.com/arbu00/

Scan QRcode to join FB Fans.
1.Mechanism:

 1 All of 3DP components.

2015年11月5日 星期四

Build the BT_SmartCar with 3DP & Arduino -HW/SW section(用3D列印和arduino製作藍芽智慧小車-軟硬體部分)




     底下是主要的線路設計,最後還是用<MS小畫家>直接畫,為了方便性等等其他原因
全部都用模組化零件,這樣就算不是很懂電子電路的新手或小朋友也可以用麵包版,在不需任何焊接的情形下做好系統.


## <Below is my Bt_SmartCar H/W design & circuit ,It is conveinent to put all of modules on the Lab platform. without welding anything,I think it is good for children or education purpose.>

<Picture 1> 線路設計 <H/W Circuit> 可以另存新檔下載放大.



   
          有一個設計的重點要特別注意,我是用4顆 L9110H分別4顆驅動直流馬達(一個L9110H模組上有兩棵),一般其他設計上   L9110H 的輸入端IA/IB 有一真值表如<picture 2>,直接控制輸入high(高電位) or low(低電位).來控制正反轉,但是這樣不能控制速度,於是我把它改成用PWM的方式輸入IA/IB.PWM訊號等於0時就相當於low. 其他值100-255之間就相當於High(H)同時也可以控制速度.低於100的值有可能太低馬達扭力不足於驅動車子.

2015年10月5日 星期一

Building the Android APP to control Arduino Smart Car (製作Android APP控制Arduino 智慧車)


Below is a compeleted sample code created from MIT APP inventor2.
To Show how to connect to Andruino thru BT.
You can modify it by youself to meet which function you want.
Bassically,it is really easy to build a APP to support Arduino +BT projects  .

##這是一個用MIT APP Inventor2 所製作的Andriod APP .透過藍芽連接可以用來控制
由Arduino 所做的智慧小車.這是一個完整的範例,你也可以自己修改它來完成其他功能.
基本上由MIT APP Inventor2 來製作的Andriod APP 其實非常簡單,很容易就可以達成跟Arduino 做藍芽(BT)連線控制的動作.

Download this APP.Arduino SmartCar


<Picture 1> This is the APP layout ,At first,put the elements on the Screen1.
<Picture 1> 首先放所有元件在Screen1.

2015年9月13日 星期日

Using Android Phone to control House's Lamp ON/OFF(用Android手機遙控家裡電燈開關)





         My idea is just use one servo to switch the lamp's power button.
 Without Relay ,It just is a plug, It means we don't need to change house's original power circuits.