วันพุธที่ 27 กรกฎาคม พ.ศ. 2554

เริ่มต้นการพัฒนา Application ด้วย Hello World

หลังจากที่เราได้ลองติดตั้งและทดสอบ Emulator ของEclipse Android SDK กันแล้ว
มาคราวนี้เราจะลอง App ง่ายๆ บน Android กัน ด้วยโปรแกรมพื้นฐานสำหรับทุกการเขียนโปรแกรมอย่าง Hello World

เริ่มต้นด้วยการสร้างโปรเจค Android ใน Eclipse
1. เปิดโปรแกรม Eclipse ขึ้นมา จากนั้นเลือกที่ File > New > Project
ในหน้าต่าง New Project ภายใต้ Android เลือก Andrild project ดังรูป หลังจากนั้นให้กด Next



2. เมื่อเสร็จจากขั้นตอนแรกแล้วจะได้ดังรูปนี้ โดยกรอกข้อมูลต่อไปนี้


- Project Name: HelloWorld
- Build Target : Android 2.2
- Application Name: HelloWorld
- Package Name: com.example.hello
- Create Activity: HelloWorld
- Min SDK Version: 8
จากนั้นคลิกที่ Finish




นี่คือคำอธิบายของแต่ละฟิลด์:
- Project Name : นี้คือชื่อโปรเจกของ Eclipse – ชื่อของไดเรกทอรีที่จะมีไฟล์โปรเจกอยู่
- Build Target : ได้เลือกใช้ Android 2.2 platform ซึ่งหมายความว่าแอปพลิเคชันของคุณจะถูก compiled กับ Android 2.2 platform library
- Application Name : นี้เป็นชื่อสำหรับแอปพลิเคชันของคุณ – ชื่อที่จะปรากฏในอุปกรณ์ Android
- Package name : นี้คือ namespace แพคเกจ (ตามกฎเดียวกันกับสำหรับแพคเกจในภาษา Java) ถ้าจะเปรียบเทียบให้ง่ายๆก็เหมือนเป็นโฟลเดอร์ที่ทำหน้าที่จัดเก็บ Class ต่างๆ ไว้ให้เป็นหมวดหมู่
- Create Activity : นี้คือชื่อสำหรับ class stub ที่จะสร้างโดยปลั๊กอินนี้ ซึ่งจะเป็น subclass ของ Android’s Activity class
- Min SDK Version : ค่านี้ระบุ API ระดับต่ำสุดที่จำเป็นสำหรับแอปพลิเคชันของคุณ
3. ตอนนี้โปรเจก Android ของคุณพร้อมแล้ว คุณจะมองเห็นใน Package Explorer อยู่ด้านซ้าย คลิกเปิดไฟล์ HelloWorld.java (HelloAndroid > src > com.example.helloworld) ซึ่งควรมีลักษณะเช่นนี้:
package com.example.helloworld;

import android.app.Activity;
import android.os.Bundle;

public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
หลังจากสร้างโปรเจกเรียบร้อยแล้ว ขึ้นตอนต่อมาคือการรันแอปพลิเคชัน
1. คลิกเลือกที่ Run > Run
2. เลือก “Android Application”
หลังจากนั้นโปรแกรมจะทำการเปิด Emulator ของ Android SDK 2.2 ที่เราเคยสร้างไว้ขึ้นมาอย่างอัตโนมัติ กดที่ Manu เพื่อปลดล็อกเครื่อง
ซึ่งคุณจะเห็น Hello World ดังรูป



ขอขอบคุณ http://www.openplus.org/content/development/application-android-sdk-16-hello-world

โครงสร้างของแอนดรอยด์

การทำความเข้าใจโครงสร้างของระบบปฏิบัติการแอนดรอยด์ ถือว่าเป็นสิ่งสำคัญเพราะถ้านักพัฒนาโปรแกรม สามารถมองภาพโดยรวมของระบบได้ทั้งหมด จะให้สามารถเข้าใจถึงกระบวนการทำงานได้ดียิ่งขึ้น และสามารถนำไปช่วยในการออกแบบโปรแกรมที่ต้องการพัฒนา เพื่อให้เกิดประสิทธิภาพในการทำงาน

[[รูป 1-6 : Android Architecture]]



จากโครงสร้างของระบบปฏิบัติการแอนดรอยด์ จะสังเกตุได้ว่า มีการแบ่งออกมาเป็นส่วนๆ ที่มีความเกี่ยวเนื่องกัน โดยส่วนบนสุดจะเป็นส่วนที่ผู้ใช้งานทำการติดต่อโดยตรงซึ่งก็คือส่วนของ (Applications) จากนั้นก็จะลำดับลงมาเป็นองค์ประกอบอื่นๆตามลำดับ และสุดท้ายจะเป็นส่วนที่ติดต่อกับอุปกรณ์โดยผ่านทาง Linux Kernel โครงสร้างของแอนดรอยด์ พอที่จะอธิบายเป็นส่วนๆได้ดังนี้

Applications ส่วน Application หรือส่วนของโปรแกรมที่มีมากับระบบปฏิบัติการ หรือเป็นกลุ่มของโปรแกรมที่ผู้ใช้งานได้ทำการติดตั้งไว้ โดยผู้ใช้งานสามารถเรียกใช้โปรแกรมต่างๆได้โดยตรง ซึ่งการทำงานของแต่ละโปรแกรมจะเป็นไปตามที่ผู้พัฒนาโปรแกรมได้ออกแบบและเขียนโค้ดโปรแกรมเอาไว้
Application Frameworkเป็นส่วนที่มีการพัฒนาขึ้นเพื่อให้นักพัฒนาสามารถพัฒนาโปรแกรมได้สะดวก และมีประสิทธิภาพมากยิ่งขึ้น โดยนักพัฒนาไม่จำเป็นต้องพัฒนาในส่วนที่มีความยุ่งยากมากๆ เพียงแค่ทำการศึกษาถึงวิธีการเรียกใช้งาน Application Framework ในส่วนที่ต้องการใช้งาน แล้วนำมาใช้งาน ซึ่งมีหลายกลุ่มด้วยกัน ตัวอย่างเช่น
Activities Manager เป็นกลุ่มของชุดคำสั่งที่จัดการเกี่ยวกับวงจรการทำงานของหน้าต่างโปรแกรม(Activity)
Content Providers เป็นกลุ่มของชุดคำสั่ง ที่ใช้ในการเข้าถึงข้อมูลของโปรแกรมอื่น และสามารถแบ่งปันข้อมูลให้โปรแกรมอื่นเข้าถึงได้
View System เป็นกลุ่มของชุดคำสั่งที่เกี่ยวกับการจัดการโครงสร้างของหน้าจอที่แสดงผลในส่วนที่ติดต่อกับผู้ใช้งาน (User Interface)
Telephony Manager เป็นกลุ่มของชุดคำสั่งที่ใช้ในการเข้าถึงข้อมูลด้านโทรศัพท์ เช่นหมายเลขโทรศัพท์ เป็นต้น
Resource Manager เป็นกลุ่มของชุดคำสั่งในการเข้าถึงข้อมูลที่เป็น ข้อความ, รูปภาพ
Location Manager เป็นกลุ่มของชุดคำสั่งที่เกี่ยวกับตำแหน่งทางภูมิศาตร์ ที่ระบบปฏิบัติการได้รับค่าจากอุปกรณ์
Notification Manager เป็นกลุ่มของชุดคำสั่งที่จะถูกเรียกใช้เมื่อโปรแกรม ต้องการแสดงผลให้กับผู้ใช้งาน ผ่านทางแถบสถานะ(Status Bar) ของหน้าจอ
Libraries เป็นส่วนของชุดคำสั่งที่พัฒนาด้วย C/C++ โดยแบ่งชุดคำสั่งออกเป็นกลุ่มตามวัตถุประสงค์ของการใช้งาน เช่น Surface Manage จัดการเกี่ยวกับการแสดงผล, Media Framework จัดการเกี่ยวกับการการแสดงภาพและเสียง, Open GL | ES และ SGL จัดการเกี่ยวกับภาพ 3มิติ และ 2มิติ, SQLlite จัดการเกี่ยวกับระบบฐานข้อมูล เป็นต้น
Android Runtime จะมี Darvik Virtual Machine ที่ถูกออกแบบมา เพื่อให้ทำงานบนอุปกรณ์ที่มี หน่วยความจำ(Memmory), หน่วยประมวลผลกลาง(CPU) และพลังงาน(Battery)ที่จำกัด ซึ่งการทำงานของ Darvik Virtual Machine จะทำการแปลงไฟล์ที่ต้องการทำงาน ไปเป็นไฟล์ .DEX ก่อนการทำงาน เหตุผลก็เพื่อให้มีประสิทธิภาพเพิ่มขึ้นเมื่อใช้งานกับ หน่วยประมวลผลกลางที่มีความเร็วไม่มาก ส่วนต่อมาคือ Core Libraries ที่เป็นส่วนรวบรวมคำสั่งและชุดคำสั่งสำคัญ โดยถูกเขียนด้วยภาษาจาวา (Java Language)
Linux Kernel เป็นส่วนที่ทำหน้าที่หัวใจสำคัญ ในจัดการกับบริการหลักของระบบปฏิบัติการ เช่น เรื่องหน่วยความจำ พลังงาน ติดต่อกับอุปกรณ์ต่างๆ ความปลอดภัย เครือข่าย โดยแอนดรอยด์ได้นำเอาส่วนนี้มาจากระบบปฏิบัติการลินุกซ์ รุ่น 2.6 (Linux 26. Kernel) ซึ่งได้มีการออกแบบมาเป็นอย่างดี

ประวัติความเป็นมา android

เริ่มต้นระบบปฏิบัติการแอนดรอยด์ ถูกพัฒนามาจากบริษัท แอนดรอยด์ (Android Inc.) เมื่อปี พ.ศ 2546 โดยมีนาย แอนดี้ รูบิน (Andy Rubin) ผู้ให้กำเนิดระบบปฏิบัติการนี้ และถูกบริษัท กูเกิ้ล ซื้อกิจการเมื่อ เดือนสิงหาคม ปี พ.ศ 2548 โดยบริษัทแอนดรอยด์ ได้กลายเป็นมาบริษัทลูก ของบริษัทกูเกิ้ล และยังมีนาย แอนดี้ รูบิน ดำเนินงานอยู่ในทีมพัฒนาระบบปฏิบัติการต่อไป

ระบบปฏิบัติการแอนดรอยด์ เป็นระบบปฏิบัติการที่พัฒนามาจากการนำเอา แกนกลางของระบบปฏิบัติการลินุกซ์ (Linux Kernel) ซึ่งเป็นระบบปฏิบัติการที่ออกแบบมาเพื่อทำงานเป็นเครื่องให้บริการ (Server) มาพัฒนาต่อ เพื่อให้กลายเป็นระบบปฏิบัติการบนอุปกรณ์พกพา (Mobile Operating System)

ต่อมาเมื่อเดือน พฤศจิกายน ปี พ.ศ 2550 บริษัทกูเกิ้ล ได้ทำการก่อตั้งสมาคม OHA (Open Handset Alliance, http://www.openhandsetalliance.com) เพื่อเป็นหน่วยงานกลางในการกำหนดมาตรฐานกลาง ของอุปกรณ์พกพาและระบบปฏิบัติการแอนดรอยด์ โดยมีสมาชิกในช่วงก่อนตั้งจำนวน 34 รายเข้าร่วม ซึ่งประกอบไปด้วยบริษัทชั้นนำที่ดำเนินธุรกิจด้าการสื่อสาร เช่น โรงงานผลิตอุปกรณ์พกพา, บริษัทพัฒนาโปรแกรม, ผู้ให้บริการสื่อสาร และผู้ผลิตอะไหล่อุปกรณ์ด้านสื่อสาร

[[รูป 1-3 : สมาคม OHA (Open Handset Alliance)]]



หลังจากนั้น เมื่อเดือนตุลาคม ปี พ.ศ 2551 บริษัท กูเกิ้ล ได้เปิดตัวมือถือตัวแรกที่ใช้ระบบปฏิบัติการแอนดรอยด์ ที่ชื่อ T-Mobile G1 หรืออีกชื่อนึงคือ HTC Dream โดยใช้แอนดรอยด์รุ่น 1.1 และหลังจากนั้น ได้มีการปรับพัฒนาระบบปฏิบัติการเป็นรุ่นใหม่ มาเป็นลำดับ

[[รูป 1-4 : T-Mobile G1/HTC Dream]] [[01-04-01.bmp]]



ช่วงต่อมาได้มีการออกผลิตภัณฑ์จากบริษัทต่างๆ ออกมาหลากหลายรุ่น หลากหลายยี่ห้อ ตามการพัฒนาระบบปฏิบัติการแอนดรอยด์ ที่มีอยู่อย่างต่อเนื่อง ทำให้สินค้าของแอนดรอยด์ มีให้เลือกอยู่อย่างมากมาย

[[รูป 1-5 : Android Device]]



Samsung: Nexus S HTC: EVO 4G Motorola: Droid2




Motorola: XOOM HTC: Flyer

วันพฤหัสบดีที่ 21 กรกฎาคม พ.ศ. 2554

การเขียน Flowchart เบื้องต้น

งานพัฒนาโปรแกรมในขั้นตอนที่ 2 คือการวางแผนแก้ปัญหา เครื่องมือที่ใช้จะมีให้เลือกอยู่สอง
ชนิดคือ Flowchart และ Pseudocode การเขียน flowchart จะมีข้อได้เปรียบ Pseudocode คือ
flowchart เขียนเป็นรูปภาพทำให้ง่ายต่อการเข้าใจมากกว่า Pseudocode ซึ่งเขียนเป็นตัวหนังสือ
การเขียน flowchart หรือ Pseudocode ก็คือการลำดับขั้นตอนการทำงานนั่นเอง
การเขียน Flowchart เบื้องต้นเราจะใช้สัญลักษณ์ดังต่อไปนี้คือ

จุดเริ่มต้น/สิ้นสุด (Terminator)
ข้อมูล นำเข้า/ส่งออก (Input / Output)
ประมวลผล (Process)
ตัดสินใจ (Decision)
ทิศทาง (Direction)
จุดต่อเชื่อม (Connector)

การเขียน Flowchart แบบโครงสร้าง
การเขียน Flowchart แบบโครงสร้างมีประโยชน์คือทำให้การไล่ขั้นตอนการทำงานทำได้ง่ายและ
เป็นระเบียบ ซึ่งมีหลักการเขียนอยู่ สามข้อ คือ
• Sequence
• Selection
• Iteration


อ.สุรัตน์ โคอินทรางกูร

วันพุธที่ 20 กรกฎาคม พ.ศ. 2554

ภาษา JAVA เบื้องต้น

(JAVA Script เบื้องต้น)
ภาษา JAVA เป็นภาษาโปรแกรมที่เพิ่งเกิดใหม่ ใช้แทรกในเอกสารภาษา HTML
เพื่อให้รับตัวแปรจากภายนอก ทำมีความสามารถหลากหลาย ทำให้ลักษณะการเขียนโปรแกรม
ก็ยากขึ้นเป็นเงาตามตัว อย่างไรก็ตามในที่นี้จะกล่าวถึงเฉพาะความรู้เบื้องต้น เพื่อใช้ประยุกต์ใน
งานการพัฒนาสื่อเพื่อการเรียนการสอนในบางประเด็น การเรียนรู้คำสั่งเพื่อสร้างข้อสอบผ่าน
เครือข่ายอินเทอร์เน็ต ซึ่งอาจทำให้ผู้ศึกษาสามารถพัฒนาในระดับก้าวหน้าต่อไปในอนาคตได้

รูปแบบของจาวาสคริปต์ที่ใช้งานร่วมกับ HTML
แบบที่ 1 แทรกภาษา JAVA ในส่วนของ Body ของภาษา HTML


……



……………………………………



แบบที่ 2 แทรกภาษา JAVA ในส่วนของ HEAD ของภาษา HTML


……



……………………………………


แบบที่ 3 แทรกภาษาทั้งในส่วนของ HEAD และส่วน BODY ของภาษา HTML


……





วันจันทร์ที่ 11 กรกฎาคม พ.ศ. 2554

ภาษาแอสแซมบลี้ (Assembly Language)

ประวัติภาษาแอสแซมบลี้

ภาษาแอสแซมบลี้ เป็นภาษาที่ใช้สัญลักษณ์ในการสื่อความหมาย ภาษาแอสแซมบลีมีลักษณะคำสั่งที่ขึ้นกับเครื่อง คอมพิวเตอร์ที่ใช้งานและมีการแปลคำสั่งให้เป็นภาษาเครื่อง นอกจากภาษาเครื่อง และภาษาแอสแซมบลีแล้ว ยังมีภาษาระดับสูง เช่น Basic Cobol FORTRANซึ่งเป็นภาษา ที่มีคำสั่งใกล้เคียงกับภาษาอังกฤษมาก ทำให้ผู้เขียนโปรแกรม สามารถเขียนโปรแกรมได้สะดวกและรวดเร็วแต่ว่า โปรแกรมที่เขียนด้วยภาษาระดับสูงต้องใช้เนื้อที่เก็บในหน่วยความจำเป็นจำนวนมากอีกทั้งทำงานได้ช้ากว่า ภาษาแอสแซมบลีดังนั้นภาษาระดับสูงจึงไม่นิยมนำมาประยุกต์ใช้กับการทำงาน ที่ระบบการควบคุม ที่มีความสำคัญมาก ภาษาแอสแซมบลี เหมาะกับโปรแกรมที่ใช้เนื้อที่ในหน่วยความจำไม่มากนัก ทั้งทำงานได้รวดเร็วและ ในการควบคุม การทำงานของเครื่องคอมพิวเตอร์ได้โดยตรง

คำสั่งปฏิบัติการของภาษาแอสแซมบลี แบ่งออกเป็น 4 ชนิด คือ

- Machine Instruction เป็นคำสั่งที่ทำให้เกิดการปฏิบัติการ (Execution) ชุดของคำสั่งอยู่ใน ; Assembler'instruction set
- Assembler instruction เป็นคำสั่งที่บอกแอสแซมเบอร์ให้ทำการระหว่างการแอสแซมบลี
- Macro instruction เป็นคำสั่งที่บอกแอสเซมเบอร์ให้ดำเนินการกับชุดของคำสั่งที่ได้บอก ไว้ก่อนแล้ว ซึ่งจากชุดของคำสั่ง แอสเซมเบลอร์จะผลิตชุดของคำสั่ง ซึ่งต่อไปจะดำเนินการ เหมือนหนึ่งว่าชุด ของคำสั่งนี้เป็นส่วนหนึ่งของ Source program แต่เริ่มแรก
- Pseudo instruction เป็นคำสั่งที่บอกให้แอสเซมเบลอร์รู้ว่า ควรปฏิบัติการ เช่นไรกับข้อมูล
การBranch อย่างมีข้อแม้ แมคโคร และ listing ซึ่งปกติแล้วคำสั่งเหล่านี้จะไม่ผลิตคำสั่งภาษาเครื่องให้
การพัฒนางานทางด้านไมโครคอนโทรลเลอร์ด้วยภาษา Assembly นั้น ถือว่ายังเป็นที่นิยมอยู่มากในบ้านเรา เรียกได้ว่าเป็นส่วนใหญ่เลย ในขณะที่ต่างประเทศนั้น ภาษา Assembly จะนิยมรองลงมาจากภาษา C ที่ใช้กันเป็นอันดับหนึ่ง อาจจะเป็นเพราะว่าความคุ้นเคย หรือเพราะความตรงไปตรงมาของภาษา Assembly ที่เป็นจุดเด่นอย่างหนึ่งก็ได้ ไม่ว่าจะอย่างไรก็ตาม การเข้าถึงภาษา Assembly ได้นั้น ถือว่าเป็นการเรียนรู้และเข้าใจได้ลึกซึ้งที่สุด และถ้ารู้จักนำมาประยุกต์ใช้งานให้เหมาะสมแล้ว ก็จะเป็นประโยชน์ต่อการพัฒนาเทคโนโลยีต่าง ๆ เป็นอย่างมาก สำหรับชิพ

วันจันทร์ที่ 4 กรกฎาคม พ.ศ. 2554

เริ่มต้น AVR Microcontroller


ไมโครคอนโทรลเลอร์ AVR
ไมโครคอนโทรลเลอร์ AVR เป็นไอซีไมโครคอนโทรลเลอร์ของบริษัท Atmel มีสถาปัตยกรรมภายในเป็นแบบ RISC ( reduced instruction set computer) โดยใช้สัญญาณนาฬิกาเพียง 1 ลูกในการปฏิบัติงานใน 1 คำสั่ง โดยจะประกอบด้วยหน่วยความจำโปรแกรมภายในที่เป็นแบบแฟลช์ โปรแกรมข้อมูลได้แบบ In-System programmable และในบางเบอร์ยังสามารถมีการกำหนดตำแหน่งของหน่วยความจำที่สร้างเป็นบูตโหลดเดอร์ (เขียนโปรแกรมเพื่อติดต่อกับ PC หรือไอซีตัวอื่นๆ และยังสามารถโปรแกรมให้กับตัวเองได้) มีขนาดของหน่วยความจำตามเบอร์ของไอซีแต่ละตัว ยกตัวอย่างคุณสมบัติเบื้องต้นของไอซีเบอร์ Atmega8A ได้ดังต่อไปนี้

เป็นไอซีขนาด 8-bit ใช้พลังงานต่ำ
มีโครงสร้างภายในแบบ RISC
มีคำสั่งควบคุมการทำงานไมโครคอนโทรลเลอร์ 130 คำสั่ง คำสั่งส่วนมากจะทำสำเร็จในรอบสัญญาณ นาฬิกาเดี่ยว
มีจำนวนรีจิสเตอร์ทั่วไปขนาด 32 x 8
มีหน่วยความจำโปรแกรมภายในแบบ Flash ขนาด 8K Bytes มีการโปรแกรมได้แบบ In-System Self-programmable
มีหน่วยความจำภายในแบบ EEPROM ขนาด 512 Bytes
มีหน่วยความจำภายในแบบ SRAM ขนาด 1K Byte
เขียน /ลบ ได้ถึง 10,000 ครัง สำหรับหน่วยความจำแบบ Flash และ 100,000 สำหรับหน่วยความจำแบบ EEPROM
กำหนดการ Boot Code Section ในตำแหน่งต่างๆ และ Lock Bits ได้ (ทำ boot loadder)
Programming Lock for Software Security ป้องกันข้อมูล
Timer/Counters ขนาด 8-bit 2 ตัว และมี Separate Prescaler โหมด Compare อีก 1 ตัว
One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture
มี PWM 3 ช่อง
มีการติดต่อแบบ Master/Slave SPI Serial Interface
ใช้งาน RC Oscillator ภายในไอซี และภายนอกไอซีได้
ทำงานที่แรงดัน 2.7 - 5.5V for ATmega8A
ทำงานที่ความถี่ 0 - 16 MHz for ATmega8A

คุณสมบัติที่ยังเหลือเปิดอ่านจาก Datasheet ดูเพิ่มเติมได้ที่ Atmel
แหล่งที่มา www.en.wikipedia.org/wiki/Atmel_AVR