顯示具有 Arduino 標籤的文章。 顯示所有文章
顯示具有 Arduino 標籤的文章。 顯示所有文章

2016年12月4日 星期日

Android + Arduino 小車的手機藍牙遙控計劃

對於手機的Android Apps今次是作為初學者的第一個項目。但不枉我在這次印度公幹期間,電腦之外,我都執了幾件零件和書。在印度試好了如何在Android上用藍牙連接Arduino,簡單的按鍵去傳送方向指令(數字),和預備日後作其他用途的顯示和輸入介面。詳細的檔案己經放到下面的dropbox link。
Arduino Sketch: https://dl.dropboxusercontent.com/u/71621110/Blogger/Sketch_CarBT.ino
Android Project: https://dl.dropboxusercontent.com/u/71621110/Blogger/myFirstBluetoothApp.zip

 Arduino

首先,Arduino 的Sketch中,令小車移動的指令是連接L298D的4個腳位控制個馬達的正轉反轉和速度。先把向前向後轉左轉右等指令包裝成forward()、backward()、left()、right()、brake()等指令:
int Left_motor_go=8;     //左馬達前進(IN1)
int Left_motor_back=9;     //左馬達後退(IN2)
int Right_motor_go=10;    // 右馬達前進(IN3)
int Right_motor_back=11;    // 右馬達後退(IN4)

void forward()     // 前進
{
  digitalWrite(Right_motor_go,HIGH);  // 右馬達前進
  digitalWrite(Right_motor_back,LOW);     
  digitalWrite(Left_motor_go,LOW);  // 左馬達前進
  digitalWrite(Left_motor_back,HIGH);
  
  analogWrite(Right_motor_go,200);
  analogWrite(Right_motor_back,0);  
  analogWrite(Left_motor_go,0);
  analogWrite(Left_motor_back,200);
}

連接藍牙到Arduino時要像以下般連接,藍牙模組會直播接連到板子上的TX,RX 腳位。當Arduino開始"setup()"時除了設定相關腳位的pinMode外,也需設定Serial的通訊。之後的程式上就可以像Serial 通訊般互傳指令。而Serial Rate 要跟自己藍牙模組的Baud Rate 相同,才可以在同一頻率下理解訊息。之前在電腦上搜尋這藍牙時,確定自己用的是HC-05的藍牙組件。HC-05出廠設定是rate=9600,配對密碼1234。
Bluetooth's TX  <-->  Arduino's RX
Bluetooth's RX  <-->  Arduino's TX
Bluetooth's GND  <-->  Arduino's GND
Bluetooth's VCC  <-->  Arduino's 5V

2016年10月16日 星期日

Arduino 淘寶小車 - 焊接/使用CH341的Driver/功能測試

從Arduino的Starter Kit之後,在淘寶上買了一架Arduino的小車,大概兩天便有貨到手了。這個標榜從做中學的科教玩具,到貨時有一塊Arduino底板,轉接板的印刷電路板(PCB),和將會安裝上面的電子零件,以及組裝小車所需的零件等。大約200港幣,全套包括循跡、紅外線/超音波的避障、紅外線/藍牙的遙控。

焊接

因為那份轉接板是需要把零件遂件焊接的。為此先到鴨寮街買了一支3x元40W的焊機,試過後有時見太熱也會令底板變色,也怕燒壞底板。原來焊頭有不同的輸出功率和溫度,30W的大概已經夠用,高溫和貴點的可以換不同焊頭,可以作刻劃之用,不過也用不著。選購焊錫的過程中會經常見到松香的出現。錫作為焊料,松香作為助焊劑,對焊接有幫助,不過也不是必須吧。建議買一支低功率的焊機,包裝內就連少量焊料的那種。焊接時所有IC先不要安裝到插槽上。

Arduino 的 Starter-Kit Project 2

旅行前完成了Starter Kit 後半的項目。最感興趣的是電容的實驗,當中重要部份是電子方面的原理。Processing的實驗也按步驟的做完,但這個Processing應該有更大的發展空間。有過之前的基本了解,並不難實踐以下的項目。然後也決定跟著Starter Kit做完一次之後,要用組裝一輛玩具車作為下一個學習項目。現在就先補充Starter Kit的後半部:

Project 06
蜂鳴器(Piezo)的使用,可以用tone() function 去設定輸出的音調。有點類似analogWrite() 的PWM輸出般並不是單純的 High/Low 電位,但不同的是tone()改變的是一組訊號的Period長度,也即是改變Frequency。而duty cycle永遠是50%。analogWrite()的PWM是透過固定Period中0%-100%的duty cycle去模擬類比輸出


2016年5月29日 星期日

Arduino 的 Starter-Kit Project

Arduino 的 Starter-Kit Project,跟著試做已經進行到第5個教學例子。自從跟身邊朋友講起之後,原來也有些朋友有玩過Arduino,有學過電子的同事,學電腦設計的舊同學,點子活動中的新相識,都對這個有點認識。只是大概網上資源香港還是不多,主要仍然是台灣人架的網站,書店和圖書館也有少數台灣書可以找到。而香港除了我入手的RS Components外,還有深水埗黃金對面的福仁商場G37-Tell How Technology有賣。有一個叫Dim Sum Lab 的空間可以讓香港的同好交流,有點像Maker Bay的形式,但是不同的主題。

Arduino 是一塊電路板和編程語言的整合。但它卻讓很多沒有任何電工或編程經驗的人也可以開始動手做電子硬體的控制。它也是作為一個開源項目,讓社群的人可以在它的基礎上改善和發展,出現後推動了一股稱為自做者/創客的文化。它在電路上整合了微控制器(例如Arduino Uno上的ATmega328P),輸入輸出介面(各種Pin位、USB接口);當結合各種電子元件(如開關、感測器、LED、步進馬達),和配合Arduino語言(類似C)的程式開發環境,便可以嘗試自做一些電子機器。而特別令我感興趣的,是它讓自己可以連繫起軟體和硬體。看到網上的高手可以自行開發出很酷的東西:

<駭客只要用這個USB充電器,就可以竊取你的無線鍵盤輸入資料>
http://www.techbang.com/posts/21946

<將Arduino 變成Game Boy,還可自行設計遊戲的Arduboy>
http://www.techbang.com/posts/23764

<什麼樣的工程師能上太空?13 歲少年玩 Arduino,玩到被送上太空!>
http://buzzorange.com/techorange/2013/10/14/thirteen-year-olds-hack-their-way-into-space/

<簡易Arduino機器人製作>
http://www.makezine.com.tw/make2599131456/arduino13

說它是開源項目因為當初開發團隊的決定是開放這個項目的設計,只有Arduino這個名稱、標誌以及圖案是受保護的商標(不過,現在有關於 arduino.cc和 arduino.org的分別)。硬件的電子連接都是在創意共享Creative Common Attribution Share-Alike 授權條款去公開原設計文件,可以讓人模仿、以至修改成自己所需的底板或相容系統,他們的網頁上就有教如何自製一塊Arduino。就不同的需要,它們自家開發的就有初學者入手的Arduino UNO、細小便攜的Arduino Mini、可穿戴和縫紉在衣服上的LilyPad Arduino、有WIFI和增強了運算能力Arduino Yun等,其他人仕自行開發的有Intel Galileo, Webduino, 等。Arduino的社群中,在底板以上還有著不同的擴充板(Shield)可以擴充它的功能,如Motor Shield、Ethernet Shield等。而程式方面,用家可以在提供的IDE介面自行編寫控制程式(Sketch),而且還有各種的函式庫可以引用或自建。

2016年5月8日 星期日

生活雙週 - 空手道, 魚仔板, Udemy, Arduino

這兩星期為之後的日子突然又下了幾個決定/行動。
同事推介一起上柔術的課,正正讓我面對一直在意的一個主意:重新空手道的練習。自從某天在地鐵上遇到大昭師兄後,大概都有了回去的決心。今晚剛剛回去了空手道的練習,身體和技術都未有怎樣生疏;征遠鎮和拔塞大的動作練幾次也記得了;但只有之前也記不上的那些套拳分解,仍是忘了大半。早兩年一直有為自己定下一些目標,但大概受著擔心和討厭今年就算定下了,也未會實踐這個目標,而一直未為今年打算。但現在開始了,這就好了。想做又應該做的事,不應該因為害怕令自己停步,「怯,你就輸成世」。

在Skatecity買了塊平價的Street牌魚仔板,晚上到吐露港沿單車徑旁的行人路試踩。記得是焜哥和店員所講的都是踩著前面釘位,不過第一晚試踩並不容易,人的重心和滑板的移動總是不配合。學習時未想在單車路上,行人路是紅磚式的地面,隙縫的阻力也很大,不斷只有幾步幾步距離地移動。到有個位置是旁邊有休憩處的,那地面就沒那麼粗糙,合適得多,試過這段路後,沿行人路回去時也順了點,後腳也放到板上。之後放在家時找些YouTube上的penny教學,記得幾段基本滑行、轉彎、Tictap。前晚就去了另一個公園的緩跑徑練習,慢慢繞過一圈後就感覺開始掌握到平衝感。然後繞了幾圈到凌晨才回家。今早到附近「觀星台」的空地練習,算每一次嘗試上板/滑前/轉彎(右)都可以了。

PMP 的 35 contact hours, 終於在Udemy 找到平價之選,LearnSmart LLC的Project Management Professional,只要 USD$20。標榜是PMI的Registered Education Provider (R.E.P.),完成課程後的證書可以作為報PMP考試要求的35 Contact hour 。 影片的講解尚算有條理及清晰,還可以在手機App下載起來,然後在上下班時去看,暫時完成了13%的進度。因為自己上年在考慮的時候己經把圖書館借來的書看完一次,不是只靠它的影片開始從零學習,所以只算是在用來覆習和要知道PMBOK5更新的部分。如果要備試的話我覺得更重要的還是做練習,現在尚未看它的習題,下載起首幾課的補充資源中就都有包括crossword puzzle/ flash card / quiz 等等,大概都是之後自學都會用的。

在看工聯會除了同事介紹的柔術外還有什麼課程時,自己又想找一些電子工程的知識學習。看到有教授Arduino的課堂,想起早幾天在圖書舘看過這名字的,於是再找想關的介紹或學習。找到其他電工會的課程也差不多價錢,而且連零件實習的還另需零件的費用,當想找找那裡可以買到時,原來官方也有出一套Starter Kit, 有一塊Arduino UNO, 可以跟著學習的Projects Book和相關電子零件等。在RS 這個電子零件商入手買了。不知是否香港不算著普及,少有個人提及Arduino,下單後也因為RS香港未有貨,而要等海外運送。在一個星期後終於送到屋企,相比電話聯絡時他們預估的快了兩天。

最後,還有7月義大利之行的機票,比之前搜尋時貴了,不過決定還是會去的。這個工作營從知道的一刻,一直在一個兩難的選擇的猶豫中,因為日子可能跟工作上的一個專案相撞。不過經番思量,這個工作上的機遇,就當凡事留一線吧。義大利:作為一直想看看的歐洲城市,一次非工幹的旅行,期望多些新鮮體驗吧。