Lesson 10 : เล่นกับกล้อง CMOS OV7670

ในบทเรียนนี้จะแนะนำวิธีใช้ Module CMOS OV7670 นะครับ ซึ่งเอาไปประยุกต์ใช้ได้มากมาย หวังว่าจะมีประโยชน์กับทุกๆ คนครับ

ระดับความยาก :  

สิ่งที่ต้องทราบก่อนเริ่มเรียน

สิ่งที่จะได้จากบทเรียนนี้

อุปกรณ์

ลำดับชิ้นส่วนจำนวน
1Board Arduino UNO1 ชิ้น
2Bread Board1 ชิ้น
3สาย Jump ผู้ – เมีย20 เส้น
4โมดูลกล้อง CMOS คุณภาพสูง ความละเอียด 640*480 pixcel พร้อมระบบอัตโนมัติในการปรับแสง1 ตัว
5ตัวต้านทาน 10k โอม2 ตัว
6ตัวต้านทาน 4.7k โอม2 ตัว
7สาย Jump แบบผู้ – ผู้10 เส้น

ให้ต่ออุปกรณ์ดังรูปต่อไปนี้

Coding กันเลย
1. เปิดโปรแกรม Arduino และ New File ขึ้นมาดังภาพที่ 1

ภาพที่ 1 แสดงการสร้างไฟล์ใหม่

2. พิมพ์ code โดยให้ download code here จากนั้นกดปุ่มบันทึกและตั้งชื่อตามที่ต้องการ

ภาพที่ 2 แสดงการบันทึก

3. สั่ง Compile code โดยใช้คลิกที่ปุ่ม Verify ตามภาพที่ 3

ภาพที่ 3 แสดงการ Verify และ Compile Sourcecode

4. สั่ง Deploy code ไปที่ Board Arduino ตามภาพที่ 4

ภาพที่ 4 แสดงการ Upload Program ไปที่ Board Arduino

5. ขั้นตอนนี้จะเป็นการสั่ง run Java Code โดยให้ Download class ตาม Link นี้ครับ
download จากนั้นแตกไฟล์วางไว้ใน Path ที่ต้องการ ดังภาพที่ 5


ภาพที่ 5 แสดงการวาง class สำหรับ บันทึกภาพจากกล้อง

6. Run Class ImageBWWriter โดยให้เสียบสาย USB ต่อกับ Board Arduino และ Run Arduino ให้เรียบร้อยก่อนนะครับ วิธีการ Run Class ให้พิมพ์คำสั่งนี้ ที่ Command Prompt
“java ImageBWWriter COM5 1000000 320 240” ดังภาพที่ 6
โดย Parameter ที่ต้องส่งเข้าไปมี 4 ตัวประกอบด้วย
– COM5 หมายถือชื่อ Port ที่ Arduino ติดต่ออยู่
– 1000000 หมายถึงความถี่ของ Baudrate
– 320 หมายถึงความกว้างของภาพที่ส่งเข้ามาจาก Arduino
– 240 หมายถึงความยาวของภาพที่ส่งเข้ามาจาก Arduino

ภาพที่ 6 แสดงการรัน Class Java เพื่อรอรับค่าจาก Serial Port

ไฟล์ภาพที่บันทึกจะเป็นนามสุกล PGM ซึ่งเป็นไฟล์ที่มีพื้นฐานง่าย ๆ เก็บรูปขาวดำ เป็นลักษณะจุดต่อจุด รูปแบบไฟล์ประมาณนี้ครับ
– 4 บรรทัดบนสุดเป็น Header ของไฟล์
– ตัวเลขแต่ละช่องจะเป็น ค่า GrayScale ของจุด Pixcel นั้น ๆ
– ดังนั้นถ้ารูปภาพของเรามีขนาด 320*240 Pixcel ก็จะต้องมีตัวเลขจำนวน 76,800 เลข เพื่อแสดงรูปให้สมบูรณ์ทุกจุด Pixcel
– ผมเลือกใช้ File นามสกุลนี้ เพราะสามารถเอาไปประยุกต์ใช้งาน Image Processing ได้ง่ายกว่า ซึ่งผมจะทำเป็น Tutorial ต่อไปครับ
– ศึกษาเพิ่มเติมเกี่ยวกับ PGM File ที่นี่ครับ Click

7. ดูผลลัพธ์ที่ Folder C:/Output จะเห็นไฟล์รูปภาพถูกสร้างไว้ดังภาพที่ 7 ครับ

ภาพที่ 7 แสดง Output ของไฟล์ภาพจากกล้อง OV7670


ภาพที่ 8 ตัวอย่างการถ่ายภาพจาก OV7670

หมายเหตุ 2 หากเรียก Java ไฟล์ จาก Command Prompt แล้ว มี Error แจ้งว่าหา Method Main ไม่พบ
“Error: Could not find or load main class ImageBWWriter.class”

ให้เรียกโดยใช้คำสั่งตามรูปนี้นะครับ
Java -classpath “ที่อยู่ของไฟล์ jssc.jar” “package ของ class ImageBWWriter”

โดยการวางไฟล์ลองวางตาม Path นี้ครับ

!!!สำเร็จแล้ว!!!

Share ผลงาน
เมื่อน้อง ๆ ทำสำเร็จแล้วอย่าลืมแชร์ให้เพื่อนๆ ดูได้ที่ Facebook MrMakerThailand
และหากน้อง ๆ ทำไม่ได้ ให้ติดต่อมาได้ตลอดเวลาที่ Inbox นะครับ