หากคุณประสบปัญหาในการเทอาหารเม็ดไว้เยอะๆ ก่อนออกไปทำงาน แต่เจ้าเหมียวก็กินแค่นิดเดียว พออาหารหมดกลิ่นหอม มันก็ไม่ยอมกินอีกเลย ต้องเททิ้งแล้วตักให้ใหม่ ทำให้สิ้นเปลืองค่าอาหารและยังทำให้เจ้าเหมียวเสียสุขภาพจากการไม่ยอมกินอาหารเก่าของมัน
เราขอเสนอ CatFeeder สิ่งประดิษฐ์ที่จะช่วยคุณเทอาหารทีละนิดจนกว่าเจ้าเหมียวจะอิ่มแล้วเดินไปที่อื่น เครื่องก็จะหยุดทำงานและยังสามารถเทอาหารได้อีก เมื่อเจ้าเหมียวเดินกลับมาที่ชามอาหารของมันอีกครั้ง
อย่างที่ได้เกริ่นไปแล้วในตอนต้นว่า นี่เป็นปัญหาของคนเลี้ยงแมวจริงๆ เพราะจากประสบการณ์ของผมที่ต้องออกจากบ้านแต่เช้าและเทอาหารเอาไว้เผื่อให้กินถึงตอนเย็น ปรากฏว่า แต่ละวันอาหารยุบไปนิดเดียวเท่านั้น บังคับให้กินยังไงก็ไม่ยอม สุดท้ายต้องเทให้ใหม่ถึงจะยอมกิน บางคน ก็บอกว่ามันยุ่งยากขนาดนี้ก็อย่าไปเลี้ยงมันเสียเลยดีกว่า แต่อย่าลืมนะครับว่าหากคุณไม่มีเจ้าเหมียวอยู่ที่บ้าน พวกหนูที่คอยกินเศษอาหารในครัว ของคุณจะร่าเริงขนาดไหน แม้จะปิดทุกช่องทางจนมั่นใจแล้วว่าหนูไม่สามารถเข้ามาได้ก็ตาม จากประสบการณ์อีกเช่นกัน หนูมันกัดฝ้าเพดานจนขาดทะลุแล้วกระโดดลงมาในบ้านหน้าตาเฉยเลย ดังนั้นคนรักแมวอย่างกระผมจึงไม่ลังเลที่จะหาเจ้าเหมียวมาอยู่ในบ้าน อย่างน้อยพวกหนูมันก็ยังเกรงใจและไม่เคยกัดฝ้าเพดานบ้านผมอีกเลย จบบริบูรณ์
อ๊ะ…จบแค่เรื่องเล่าประสบการณ์ครับ แต่ภาระกิจการทำโครงงานเอาใจเจ้าเหมียวยังต้องดำเนินต่อไป ใช้เวลาเพียง 1 วัน ก็แล้วเสร็จ โดยเฉพาะคนที่ไม่เก่งอิเล็กทรอนิกส์และการเขียนโปรแกรมก็สร้างตามได้ไม่ยาก เพราะใช้อุปกรณ์ร่วมเพียงไม่กี่ตัวเท่านั้น เอาล่ะเรามาลองสร้างกันแบบทีละขั้นตอนกันเลย
โปรดทราบ! เนื่องจากทางผู้ผลิตโมดูล POP-168 กำลังจะหยุดผลิตแล้วครับ ทำให้ไม่มีสายสำหรับดาวน์โหลดจำหน่ายแล้ว
ดังนั้นผู้เขียนจึงขอแนะนำให้ใช้แผงวงจร i-Duino UNO R3B แทน ข้อดีก็คือหากคุณใช้ i-Duino UNO R3B คุณก็ตัดขั้นตอนการสร้างแผงวงจรออกไปได้เลย
โดยสามารถสั่งซื้อได้จากลิงก์ด้านล่างนี้
ง่ายสุดๆ กับการควบคุมด้วยบอร์ด micro:bit
อีกหนึ่งทางเลือกสำหรับน้องๆ ที่ไม่เคยเขียนโปรแกรม สามารถสร้างระบบควบคุมเครื่องให้อาหารแมวอัตโนมัติด้วยบอร์ด micro:bit (ไมโครบิต) อ่านบทความต่อไปนี้ได้เลยจ้า
สร้างแผงวงจรเชื่อมต่อ
(1) เริ่มจากหาซื้อแผ่นวงจรพิมพ์เอนกประสงค์ ในที่นี้ผมเลือกใช้แบบ uPCB01C ดังรูปที่ 3 เพราะแบบนี้ มีจุดสำหรับบัดกรีแจ็กแบบ RJ-11 ซึ่งสำหรับดาวน์โหลดโปรแกรมให้กับโมดูล POP-168 ที่ใช้เป็นตัวควบคุมหลัก และยังมีจุดติดตั้งสวิตช์เลื่อน 3 ขา และแจ็กอะแดปเตอร์ตัวเมียด้วย โดยแผ่นวงจรพิมพ์สามารถสั่งซื้อได้ที่ www.inex.co.th เป็นแผ่นงวจรพิมพ์แบบสองหน้าเพลตทรูโฮลสกรีนสวยงาม
หมายเหตุ : แผ่นวงจรพิมพ์ที่เห็นในภาพประกอบด้านล่างเป็นแบบที่ทำขึ้นเองนะครับ ของจริงที่มีจำหน่ายจะสวยกว่านี้
(2) ติดตั้งอุปกรณ์ลงแผ่นวงจรพิมพ์เอนกประสงค์ สังเกตที่จุดติดตั้งโมดูล POP-168 ให้ติดตั้งคอนเน็กเตอร์ IDC 12 ขา ตัวเมีย เพื่อทำเป็นซ็อกเก็ต สำหรับนำโมดูล POP-168 มาติดตั้ง อุปกรณ์ส่วนใหญ่จะเป็นส่วนภาคจ่ายไฟ จากนั้นใช้สายไฟเชื่อมแต่ละจุดเข้าด้วยกันดังรูป ขั้นตอนนี้ไม่ต้องรีบให้ตรวจดูความเรียบร้อยให้ดี เสร็จแล้วจะได้แผงวงจรควบคุมดังรูป
(3) เตรียมอุปกรณ์ที่เกี่ยวข้องสำหรับติดตั้งเข้ากับกล่องที่เรากำลังจะสร้างในขั้นตอนต่อไปดังรูป ได้แก่ โมดูลวัดระยะทาง GP2D120 , แผงวงจรสวิตช์ ZX-01 , ZX-LED , เซอร์โวมอเตอร์แบบมาตรฐาน, โมดูล POP-168 (สินค้าเลิกผลิตแล้ว) และแผงวงจรเชื่อมต่อที่เราพึ่งสร้างเสร็จ
โปรดทราบ! เนื่องจากทางผู้ผลิตโมดูล POP-168 กำลังจะหยุดผลิตแล้วครับ ทำให้ไม่มีสายสำหรับดาวน์โหลดจำหน่ายแล้ว
ดังนั้นผู้เขียนจึงขอแนะนำให้ใช้แผงวงจร i-Duino UNO R3B แทน ข้อดีก็คือหากคุณใช้ i-Duino UNO R3B คุณก็ตัดขั้นตอนการสร้างแผงวงจรออกไปได้เลย
โดยสามารถสั่งซื้อได้จากลิงก์ด้านล่างนี้
สร้างกลไกให้อาหารแมว
ความจริงแล้วไอเดียนี้มาจาก www.instructables.com แต่เป็นการให้แมวตบลูกบอลเพื่อเปิดปากขวดน้ำพลาสติกให้อาหารหล่นลงมา แต่พอลองทำใช้เองบ้างก็ปรากฏว่า เจ้าเหมียวของผมมันตบทิ้งตบขว้างสนุกไปเลย จึงต้องมาต่อยอดเอาอีกนิดหน่อย โดยมีขั้นตอนดังต่อไปนี้ครับ
ส่วนบรรจุและกลไกปล่อยอาหาร
เตรียมอุปกรณ์หลักดังรูปที่ 5 ได้แก่กระป๋องพลาสติกที่มีฝาปิดมิดชิดขนาดเส้นผ่านศูนย์กลางด้านใน 8.5 ซม., ขวดน้ำพลาสติก, ลูกบอลพลาสติกหรือลูกปิงปอง, ตะขอเกลียวตัว L ขนาดเล็ก, หนังยาง ต่อไปเริ่มลงมือประดิษฐ์กันได้เลย
(1) เริ่มจากนำขวดน้ำมาตัดบริเวณปากขวดเป็นเหมือนกรวยดังรูป จากนั้นเจาะรูก้นกระป๋องพลาสติกขนาดเท่ากับปากขวดน้ำพลาสติกดังรูป ขั้นตอนนี้ต้องค่อยๆ เจาะโดยใช้สว่านดอกเล็กเจาะไล่ไปเรื่อยจนครบรอบวงแล้วค่อยมาไล่เซาะอีกรอบ นำกรวยขวดน้ำใส่ลงไปในกระป๋องพลาสติกให้ปากขวดน้ำโผล่ออกมาด้านนอกแล้วปิดฝาขวดเพื่อยึดขวดน้ำให้ติดกับกระป๋องดังรูป แล้วคว้านรูฝาขวดน้ำจะได้ช่องสำหรับปล่อยอาหาร
(2) ยึดตะขอเกลียวเข้ากับฝาของกระป๋องพลาสติกและลูกบอล ใช้คีมบีบพับตะขอเข้ามาดังรูปที่ 7.1 จากนั้นนำหนังยางมาคล้องกับตะขอของลูกบอลแล้วสอดหนังยางเข้าทางปากขวดดังรูปที่ 7.2 แล้วดึงไปคล้องกับตะขอของฝาปิดกระป๋องดังรูปที่ 7.3 เป็นอันเสร็จขั้นตอนของส่วนบรรจุอาหารและกลไกปล่อยอาหาร
ส่วนโครงสร้างเครื่องให้อาหาร
(1) ตัดแผ่นพลาสวูด หนา 5 มม. ให้ได้ขนาดและจำนวนตามรูปต่อไปนี้
(2) เริ่มประกอบแผ่นพลาสวูด SideA และ Back เข้าด้วยกันดังรูปที่ 9.1 นำกระบอกสำหรับใส่ช้อน (หาซื้อได้จากห้างสรรพสินค้าทั่วไป) ยึดกับแผ่นพลาสวูดด้วยสกรูเกลียวปล่อยขนาดเล็กสำหรับรองรับส่วนบรรจุและกลไกปล่อยอาหารดังรูปที่ 9.2 จากนั้นประกอบแผ่น SideB , Bottom และ F3 เข้าด้วยกัน ก็จะได้โครงสร้างหลักที่แน่นหนา
(3) ทำบานหน้าต่างเปิดปิดสำหรับซ่อมบำรุงโดยนำแผ่น F1 มาติดบานพับขนาดเล็กเข้ากับแผ่น SideB จำนวน 2 ตัว ดังรูปที่ 10.1 และติดตั้งบานพับในแนวราบดังรูปที่ 10.3 จากนั้นนำแม่เหล็กถาวรยึดกับแผ่น SideA ด้านในสำหรับดูดบานพันที่ติดไว้ในแนวราบดังรูปที่ 10.4 เพื่อทำหน้าที่เป็นตัวล็อกบานหน้าต่าง
(4) เจาะแผ่น F2 เป็นช่องเพื่อติดตั้งโมดูลวัดระยะทางที่เราจะใช้เป็นตัวตรวจจับแมวดังรูปที่ 11.2 จากนั้นติดตั้งเข้ากับโครงสร้างด้วยกาวร้อน
(5) ตัดพลาสวูดเป็นก้านเล็กๆ แล้วยึดกับก้านของเซอร์โวมอเตอร์ดังรูปที่ 12.1 จากนั้นนำส่วนบรรจุอาหารและกลไกใส่ลงไปในกระบอกเก็บช้อนจะเห็นลูกบอลพลาสติกยื่นลงมาด้านล่าง ให้หาตำแหน่งที่ก้านพลาสวูดสามารถตีโดนลูกบอลได้ จากนั้นติดตั้งเซอร์โวมอเตอร์ในตำแหน่งดังกล่าวด้วยปืนกาวดังรูปที่ 12.2
(6) ติดตั้งแผงวงจรเชื่อมต่อเข้ากับด้านในบานหน้าต่าง เจาะรูด้านบนของบานหน้าต่างเพื่อติดตั้งแผงวงจร ZX-LED เพื่อใช้เป็นไฟแสดงสถานะเมื่อเซอร์โวมอเตอร์ทำงานดังรูปที่ 13.1 และสุดท้ายติดตั้งแผงวงจร ZX-SWITCH ไว้ด้านขวามือนอกตัวเครื่องสำหรับเป็นสวิตช์กดเทอาหารด้วยตัวเอง อ้อ! เกือบลืมแผ่น Tray ให้นำไปติดตั้งไว้ใต้ลูกบอลด้วยปืนยิงกาวทำมุมเอียงลงมาเพื่อใช้เป็นถาดบังคับให้อาหารไหลลงมาในถ้วยน้องเหมียวพอดีของผมใช้วงเวียนคัตเตอร์ตัดให้โค้งรับกับถ้วยดังรูปที่ 13.3 และ 13.4
สำหรับส่วนโครงสร้างก็มีเพียงเท่านี้ ต่อไปมาดูส่วนของการพัฒนาโปรแกรมกันบ้าง
การพัฒนาโปรแกรมควบคุม
สำหรับซอฟต์แวร์ที่ใช้ในการพัฒนาโปรแกรมนี้ ผมใช้ Arduino เวอร์ชั่น 0022 ดาวน์โหลดได้จาก www.arduino.cc/en/Main/Software มีให้เลือกใช้ทั้ง Windows, MAC และ Linux
เมื่อติดตั้งซอฟต์แวร์เรียบร้อยแล้ว ให้เรียกโปรแกรมขึ้นมาแล้วเลือกประเภทของบอร์ดที่ต้องการใช้ ให้คลิกที่ Tools > Board > Arduino Mini ดังรูปที่ 14 และหากเครื่องคอมพิวเตอร์ที่ใช้ไม่มีพอร์ตอนุกรมจะต้องใช้ตัวแปลงพอร์ต หากใช้ UCON-232 ของ INEX จะมีไดรเวอร์มาให้ในชุด แต่ในที่นี้ผมใช้ UCON-4 ที่มีหัวเป็นขั้วต่อพอร์ต USB และปลายเป็นปลั๊ก
โมดูล่าร์ 4 ขาที่เคยแนะนำการสร้างใน TPE ฉบับที่ 10 โดยต้องดาวน์โหลดไดรเวอร์ที่ http://www.parallax.com/tabid/530/Default.aspx มาติดตั้ง
เมื่อติดตั้งไดรเวอร์และเสียบ UCON-4 เข้ากับจุดต่อ USB ของเครื่องคอมพิวเตอร์แล้ว ให้เลือกพอร์ตให้ถูกต้อง หากเป็นเครื่อง MAC ให้ไปที่ Tools > Serial Port > /dev/tty.usbserial-A600eR3w ดังรูปที่ 15 หากเครื่องที่ใช้เป็น Windows ก็ทำเหมือนกันแต่จะเป็นการเลือกพอร์ต com แทน
เมื่อตั้งค่าต่างๆ เรียบร้อยแล้วให้นำโมดูล POP-168 ติดตั้งบนแผงวงจรเชื่อมต่อให้ถูกต้อง จากนั้นนำปลายสายอีกด้านต่อเข้ากับแจ็ก RJ-11 ที่ติดตั้งบนแผงวงจรเชื่อมต่อ จากนั้น ดาวน์โหลดโค้ดโปรแกรม catfeeder.pde
หลังจากดาวน์โหลดมาแล้วให้เรียกเปิดด้วยซอฟต์แวร์ Arduino แล้วทำการคอมไพล์โดยการกดปุ่ม เสร็จแล้วเสียบอะแดปเตอร์ไฟตรง 7.5V เพื่อจ่ายไฟเลี้ยงเข้าระบบ จะเห็น LED สีเขียวบนโมดูล POP-168 สว่างขึ้น เมื่อทุกอย่างพร้อม ให้ทำการกดสวิตช์กดติดปล่อยดับบนโมดูล POP-168 ค้างไว้ ตามด้วยการกดสวิตช์ RESET บนแผงวงจรเชื่อมต่อหนึ่งครั้งแล้วปล่อย ตามด้วยการปล่อยมือจากสวิตช์กดติดปล่อยดับบนโมดูล POP-168 จะเห็น LED สีน้ำเงินสว่างขึ้น แสดงว่าโมดูล POP-168 พร้อมรับโปรแกรมแล้ว ให้กดปุ่ม Upload ที่หน้าจอ เพื่ออัปโหลดโปรแกรมลงโมดูล POP-168
การทำงานของโปรแกรม
หลังจากอัปโหลดโปรแกรมเสร็จแล้ว ให้กดสวิตช์ RESET บนบอร์ดควบคุม โปรแกรมจะเริ่มทำงาน โดยรูปที่ 16 เป็นโฟลวชาร์ตแสดงการทำงานของโปรแกรมโดยจะเริ่มตรวจสอบเงื่อนไขหลัก 2 เงื่อนไขได้แก่
1. ตรวจสอบค่าจาก GP2D120 (เซนเซอร์วัดระยะทาง) ที่เราได้กำหนดไว้ในโปรแกรมคือ 270 หากเทียบเป็นระยะทางก็ได้ประมาณ 8 ซม. เมื่อรับค่าได้มากกว่าหมายความว่า มีวัตถุเข้ามาในระยะทำการ ให้เซอร์โวมอเตอร์หมุนไป-กลับเพื่อตีลูกบอลเปิดช่องให้อาหารหล่นลงมา แล้วหยุดหน่วงเวลา 25 วินาที เพื่อรอให้แมวกินอาหารเสร็จ เมื่อครบเวลาที่กำหนดแล้ว โปรแกรมจะกลับไปเริ่มตรวจสอบใหม่
2. ตรวจสอบการกดสวิตช์ที่แผงวงจร ZX-SWITCH ค่าที่ได้เป็น 0 หรือไม่ หากเป็น 0 จะสั่งให้เซอร์โวมอเตอร์หมุนเพื่อตีลูกบอลแล้วค้างไว้ จนกว่าจะปล่อยสวิตช์หรือมีค่าเป็น 1 เซอร์โวมอเตอร์จึงหมุนกลับ
อย่างไรก็ตาม แม้ GP2D120 (เซนเซอร์วัดระยะทาง) จะตรวจสอบพบวัตถุกีดขวางและเข้าสู่คำสั่งหน่วงเวลา 25 วินาที แต่หากขณะนั้นมีการกด ZX-SWITCH เกิดขึ้น โปรแกรมจะกระโดดไปสู่เงื่อนไขที่ 2 โดยไม่สนใจการหน่วงเวลานั้น แต่ยังคงนับเวลาของการหน่วงอย่างต่อเนื่อง และเมื่อปล่อย ZX-SWITCH หากยังอยู่ในช่วงของการหน่วงเวลาก็จะกลับมาหน่วงเวลาต่อ
การปรับแต่ง
จากการทดสอบพบว่า อาหารที่หล่นลงมาไม่สม่ำเสมอแต่มากสุดอยู่ที่ประมาณ 10 เม็ด และน้อยสุดคือไม่ออกมาเลยเนื่องจากรูปทรงของอาหารแมวเป็นรูปดาวทำให้บางจังหวะเกิดการติดขัด อาจต้องรอรอบการหมุนของเซอร์โวมอเตอร์วนมาอีกรอบ นั่นหมายความว่าแมวต้องมาดมที่ถ้วยอาหารอีกครั้งดังนั้นจึงไม่ควรหน่วงเวลานานเกิน 30 วินาที
การนำไปใช้งาน
เปิดฝาส่วนบรรจุอาหารแล้วใส่อาหารลงไปตามต้องการ เปิดสวิตช์ค้างเอาไว้เพื่อความสะดวกในการใช้งาน จากนั้นเสียบอะแดปเตอร์ไฟตรง 7.5V รอแมวมาดมถ้วยใส่อาหาร GP2D120 จะพบสิ่งกีดขวางนั่นก็คือเจ้าเหมียว ระบบทำการจ่ายอาหารให้ ส่วน ZX-SWITCH มีไว้สำหรับทดสอบหรือกดปล่อยอาหารด้วยตนเอง
หวังว่าคงไม่ยุ่งยากเกินไปนะครับสำหรับคนรักแมวทั้งหลาย งานนี้อาจต้องฝึกเจ้าเหมียวนิดหน่อยให้มันเกิดความเคยชินกับเสียงฟืดฟาดของเซอร์โวมอเตอร์ แต่เจ้าเหมียวของผมแทบไม่ต้องฝึก มันไม่สนใจอะไรทั้งนั้น เพราะฉันจะกินซะอย่าง
*******************************************************************
รายการอุปกรณ์
*******************************************************************
ตัวเก็บประจุ
C1 – 0.1μF 67V โพลีเอสเตอร์
C2, C4, C5 – 470μF 25V อิเล็กทรอไลต์ 3 ตัว
C3 – 10μF 16V
อุปกรณ์สารกึ่งตัวนำ
IC1 – LM2940-5.0
BD1 – ไดโอดบริดจ์ตัวถังกลมขนาด 1A 50V
อุปกรณ์ขั้วต่อและสวิตช์
K1 – แจ็กอะแดปเตอร์ตัวเมียแบบลงแผ่นวงจรพิมพ์
K2 – แจ็กโมดูล่าร์ RJ-11 แบบลงแผ่นวงจรพิมพ์
S1 – สวิตช์เลื่อน 3 ขา ลงแผ่นวงจรพิมพ์
S2 – สวิตช์กดติดปล่อยดับแบบลงแผ่นวงจรพิมพ์
J1 ถึง J3 – ขั้วต่อ JST 3 ขา สำหรับติดตั้งแผงวงจรต่างๆ 3 ตัว
คอนเน็กเตอร์ IDC 3 ขา ตัวผู้ ใช้เป็นขั้วต่อเซอร์โวมอเตอร์
คอนเน็กเตอร์ IDC 12 ขาตัวเมียแถวเดี่ยว สำหรับติดตั้งโมดูล POP-168 จำนวน 2 ตัว
อื่นๆ
โมดูล GP2Y0A41 , แผงวงจรสวิตช์ ZX-01 , ZX-LED , เซอร์โวมอเตอร์มาตรฐาน, สายต่อวงจร, UCON-4 ตัวแปลงพอร์ต USB เป็นพอร์ตอนุกรม
อุปกรณ์โครงสร้างและวัสดุการประดิษฐ์
กระป๋องพลาสติกเส้นผ่านศูนย์กลางภายใน 8.5 ซ.ม., กระบอกเก็บช้อน, ขวดน้ำดื่มพลาสติก, ลูกบอลพลาสติกหรือลูกปิงปอง, ตะขอเกลียวตัว L ขนาดเล็ก 2 ตัว, แม่เหล็กถาวรขนาดเล็ก, บานพับขนาดเล็ก, แผ่นพลาสวูดขนาด A4 จำนวน 5 แผ่น, กาวร้อน, ปืนยิงกาวพร้อมกาวแท่ง
เรื่องที่คุณอาจสนใจ