Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore 6014631005

6014631005

Published by Nongh _XI, 2020-09-10 04:21:53

Description: 6014631005

Keywords: 1

Search

Read the Text Version

45 จากภาพที่ 3.10 โค้ดตัวอยา่ งข้างต้น อธิบายขนั้ ตอนได้ดังนี้ ข้ันตอนท่ี 1 บรรทัดท่ี 1 เปน็ การกำหนดขาสญั ญาณทใี่ ชใ้ นการเช่อื มต่อ โดยใช้คำสั่ง #define Sensor 2 (โดย Sensor คอื ชอ่ื ตวั แปร และ 2 คือ ช่องสัญญาณท่ีจะใชง้ าน) ขั้นตอนที่ 2 บรรทัดที่ 3 ถึง 4 เป็นการกำหนดขาสัญญาณที่ใช้ในการรับข้อมูล โดย ใช้คำสั่ง pinMode (Sensor, ,INPUT); (โดย Sensor คือ ช่องรับส่งสัญญาณและ INPUT คือ กำหนดการรับข้อมูล) และ เป็นการเรียกใช้มอนิเตอร์ของโปรแกรม Arduino IDE โดยใช้คำส่ัง Serial.begin(9600); ขั้นตอนที่ 3 บรรทัดที่ 7 ถึง 10 เป็นการประกาศตัวแปร l แล้วให้อ่านค่าระยะทาง จากเซนเซอร์ โดยใช้คำส่ัง int I = digitalRead (Sensor) ; (โดย Sensor คอื ขาทใ่ี ช้ในการรับข้อมูล) แลว้ แสดงคำวา่ “obstacle detected = ” บนจอมอนิเตอรข์ องโปรแกรม Arduino IDE โดยใชค้ ำสงั่ Serial.print (“obstacle detected = ”); และแสดงคา่ ทีอ่ ยู่ในตวั แปร I โดยใช้คำส่ัง Serial.print (l) ; แล้วหน่วงการทำงานเป็นระยะเวลา 1 วินาที โดยใช้คำสั่ง Delay (1000) ; (โดย 1000 จะเท่ากับ 1 วินาที) 3.1.5 วงจรรวม การรวมวงจรท้งั หมดเข้าดว้ ยกนั ผูว้ ิจยั ไดน้ ำบอรด์ ชิว Rams 1.4 มาใชเ้ พอื่ ความ สะดวกในการใช้งาน โดยจะมีการเชอ่ื มต่อดงั นี้ ภาพท่ี 3.11 แสดงการเชื่อมต่ออปุ กรณต์ ่าง ๆ เข้ากับบอร์ด Rams 1.4 จากภาพท่ี 3.11 แสดงการเช่ือมต่ออุปกรณ์ต่าง ๆ เข้ากบั บอร์ด Rams 1.4 โดยมี การต่อวงจรต่าง ๆ เขา้ ดว้ ยกันดังนี้ เริ่มจากการนำบอร์ด Rams 1.4 ประกบกับบอร์ด Arduino Mage แล้วนำอุปกรณ์ ส่วนอืน่ ๆ มาตดิ ตงั้ บนบอร์ด Rams 1.4 โดยเริ่มจาก การตอ่ ปั๊มสญุ ญากาศเข้ากบั Rams 1.4 โดยต่อ เข้ากับ ช่องสัญญาณที่ D10 และ GND ของ D10 แล้วการต่อจอ LCD เข้ากับ Rams 1.4 นั้นจะต่อ เข้ากับช่องสัญญาณ AUX ด้านขวาทั้งหมดหรือจุดที่ผู้วิจัยได้ทำสีเหลืองไว้ จากภาพที่ 3.11 แล้วต่อ

46 ด้วยการตอ่ เซนเซอรว์ ัดระยะทาง เข้ากับ Rams 1.4 จะตอ่ เข้ากบั Servos ของบอร์ดต่อมา การต่อส เต็ปเปอร์มอเตอร์นั้นจะเริ่มจากการนำไดร์เวอร์ A4988 มาติดตั้งบนบอร์ด Rams 1.4 ตามภาพที่ 3.11 แล้วจึงจึงสายของสเต็ปเปอร์มอเตอร์แต่ละตัวมาต่อเข้ากับ โซนสัญญาณ X, Y, Z และ E0 โดย (X จะเป็นสเตป็ เปอร์มอเตอร์ตัวที่ 1 Y จะเป็นสเต็ปเปอร์มอเตอร์ตวั ท่ี 2 Z จะเป็นสเต็ปเปอร์มอเตอร์ ตัวที่ 3 E0 จะเปน็ สเต็ปเปอร์มอเตอรต์ ัวท่ี 4) 3.3 สูตรที่ใช้ในการคำนวณ สูตรในการคำนวณหามุมองศาในแต่ละแกนนั้นมสี ตู รดังนี้ θ1 = tan−1 y (3.1) (x) d2 − l22 − l23 (3.2) θ3 = cos−1 (−2 ∗ l2 ∗ l3 ) (3.3) (3.4) θ2 = (180O − θ3 − ∝2) + (180O − ∝1) (3.5) θ4 = 180O − ∝2 − ∝1 (3.6) (3.7) เมอื่ d = √z2 + (r − l4)2 (3.8) r = √x2 + y2 z α1 = cos−1 (d) α2 = cos−1 (l22−−2 l32 − d2 ∗ l3 ∗ d) โดยที่ x คือ ระยะทางของตำแหนง่ ส่วนปลายแขนกลในแนวแกน x y คือ ระยะทางของตำแหน่งสว่ นปลายแขนกลในแนวแกน y l1 คอื ความยาวของกา้ นต่อท่ี 1 l2 คอื ความยาวของกา้ นต่อท่ี 2 l3 คอื ความยาวของกา้ นต่อท่ี 3 θ1 คอื มุมการเคล่ือนท่ีของก้านตอ่ ที่ 1 อ้างอิงกบั แกน x θ2 คือ มุมการเคลื่อนท่ีของกา้ นต่อที่ 2 อ้างอิงกบั แนวระนาบ x − y θ3 คอื มมุ การเคล่ือนท่ีของก้านตอ่ ท่ี 3 อา้ งอิงกับกา้ นต่อที่ 2 θ4 คือ มุมการเคล่ือนท่ีของก้านตอ่ ที่ 4 อ้างอิงกับกา้ นต่อที่ 3

47 ภาพที่ 3.12 แผนภาพแขนกล 4 แกน 4 กา้ นต่อ ตัวอย่างการคำนวณ จากภาพที่ 3.12 นั้นต้องใช้ความยาวก้านต่อที่ 2 (l2) ซึ่งก็คือ 120 มิลลิเมตร ความยาวก้านต่อที่ 3 (l3) ซึ่งก็คือ 120 มิลลิเมตร ความยาวก้านต่อที่ 4 (l4) ซึ่งก็คือ 100 มิลลิเมตร ตัวอย่างการคำนวณ กำหนด x = 130, y = 160 ในการคำนวณนั้นในแกน y ต้องทำการ บวกค่าเพิ่มอีก 55 มิลลิเมตร เนื่องจากเป็นระยะห่างของจุด กึ่งกลางของมือจับแขนกล กับจุด (0,0) ของสนามทดสอบ จงึ ทำใหค้ า่ y ท่ีใช้ในการคำนวณจะเป็น 215 mm ขั้นท่ี 1 หาคา่ θ1 θ1 = tan−1 215 (3.1) (130) θ1 = 58.8407o ขน้ั ท่ี 2 หาคา่ r r = √1302 + 2152 (3.6) r = 25√101 ขน้ั ท่ี 3 หาค่า d d = √02 + (25√101 − 100)2 (3.5) (3.7) d = 151.2469 (3.8) ขั้นท่ี 4 หาค่า α1 α1 = cos−1 0 (151.2469) α1 = 90o ขั้นที่ 5 หาค่า α2 α2 = cos−1 151.24692 − 1202 − 1202 ( −2 ∗ 120 ∗ 120 ) α2 = 50.9355o

48 ขน้ั ที่ 6 หาคา่ θ3 θ3 = cos−1 151.24692 − 1202 − 1202 (3.2) ( −2 ∗ 120 ∗ 120 ) θ3 = 78.1291o ขน้ั ท่ี 7 หาคา่ θ2 θ2 = (180O − 78.1291o − 50.9355o) + (90o − 90o) (3.3) (90o − 90o) θ2 = 50.9354O โดยในส่วนของ θ2 นั้นจะมีการเปลี่ยนแปลง เนื่องจากมุม 0 องศาของ θ2 ในสมการ จลนศาสตรจ์ ะเปน็ การขนานกับแกน x , y แตแ่ ขนกลในโครงงานนนี้ ้ันมมุ 0 องศา จะขนานกับแกน z จึงต้องทำการนำ 90 ลบกับ θ2 ท่ไี ด้คำนวณออกมา เพอ่ื ใหอ้ อกมาเปน็ มุม θ2 ท่ีใช้โครงงานน้ี θ2 = 90O − 50.9354O (3.4) θ2 = 39.0646O ขน้ั ที่ 8 หาคา่ θ4 θ4 = 180O − 50.9355o − 90o θ4 = 39.0645O 3.4 การออกแบบและสรา้ งหุ่นยนตแ์ ขน โครงสร้างของหุ่นยนต์แขนกลอัตโนมัตินี้จะถูกออกแบบให้มีพื้นที่การทำงานที่ครอบคลุม รอบตัวของหุ่นยนต์แขนกลอัตโนมัติมากที่สุด ซึ่งจะมีภาพแบบที่คล้ายกับหุ่นยนต์แบบข้อต่อ (Articulayed Arm Robot) โดยหุ่นยนต์แขนกลอัตโนมัตินี้ประกอบด้วยก้านต่อทั้งหมด 4 ก้านต่อ และข้อต่อแบบหมุนทั้งหมด 4 ข้อต่อ และในส่วนของมือจับจะติดอยู่กับปลายของแขนกล โดยจะมี โครงสรา้ งกา้ นตอ่ และจดุ หมุน ดงั ภาพที่ 3.13 ภาพที่ 3.13 โครงสรา้ งโดยรวมของแขนกล จากภาพท่ี 3.13 แสดงโครงสร้างโดยรวมของหุน่ ยนต์แขนกล โดยที่

49 1) A คือ ทอ่ นของแขนกลที่ 1 2) A1 คอื จดุ หมุนที่ 1 จะหมนุ ในแนวแกน Z จากภาพท่ี 3.13 3) B คือ ทอ่ นของแขนกลท่ี 2 4) B1 คอื จุดหมุนท่ี 2 จะหมุนในแนวแกน X จากภาพท่ี 3.13 5) C คอื ท่อนของแขนกลที่ 3 6) C1 คือ จุดหมุนท่ี 3 จะหมนุ ในแนวแกน X จากภาพท่ี 3.13 7) D คอื ทอ่ นของแขนกลท่ี 4 8) D1 คือ จดุ หมนุ ท่ี 4 จะหมุนในแนวแกน X จากภาพท่ี 3.13 ภาพที่ 3.14 ฐานของแขนกล จากภาพท่ี 3.14 แสดงฐานของแขนกล โดยท่ีอปุ กรณท์ ้งั หมดจะถูกติดตั้งบนฐาน โดยท่ลี ูกศร สฟี ้าจะเป็นตำแหน่งของแขนกล และลกู ศรสแี ดงจะเปน็ ตำแหน่งในการเกบ็ วงจรตา่ ง ๆ ภาพที่ 3.15 ฐานที่ใชห้ มุน

50 จากภาพท่ี 3.15 แสดงฐานที่ใช้หมนุ แขนกลในแนวแกน Z และแกน Y จากภาพและตำแหนง่ การติดต้ังสเต็ปปิงมอเตอร์ และตำแหนง่ การติดตังจะอยู่ที่ B1 จากภาพท่ี 3.12 ภาพที่ 3.16 ชิ้นส่วนท่ีติดกับตัวสเตป็ เปอรม์ อเตอร์ จากภาพท่ี 3.16 แสดงชิน้ สว่ นท่ีใชต้ ดิ ตัง้ สเต็ปปงิ มอเตอรเ์ พ่ือหมนุ แขนในท่อนต่อไป โดย ตำแหน่งการติดต้งั จะอยทู่ ่ีปลายของทอ่ นแขนน้ัน ๆ ภาพท่ี 3.17 ช้นิ สว่ นทต่ี ดิ กับแกนของสเต็ปเปอร์มอเตอร์

51 จากภาพที่ 3.17 แสดงชิ้นส่วนที่ติดกับแกนของสเต็ปเปอร์มอเตอร์โดยจะใช้ปลอกยึดแกน สเต็ปมอเตอรใ์ นการติดชนิ้ สว่ นน้ีเข้ากับสเตป็ ปิงมอเตอร์ เพือ่ หมนุ ทอ่ นของแขนกลในแนวแกน x จาก ภาพที่ 3.17 และตำแหน่งการติดตั้งจะอยู่ที่ส่วนต้นของท่อนแขนนั้น ๆ ซึ่งต่อกับปลายของท่อนแขน ก่อนหนา้ ภาพท่ี 3.18 ชน้ิ สว่ นของมือจับวัตถุ จากภาพที่ 3.18 แสดงชิ้นส่วนที่ใช้ติด ตัวกำเนิดความดันสุญญากาศ และเซนเซอร์วัด ระยะทาง โดยตำแหนง่ การติดต้ังจะอยทู่ ่ีปลายสุดของแขนกล ภาพที่ 3.19 ปลอกยึดแกนสเตป็ ปิงมอเตอร์ (ท่ีมา:หา้ งหนุ้ ส่วนจำกัด โซนเมกเกอร์ (2563))

52 จากภาพที่ 3.19 แสดงปลอกยึดแกนสเต็ปปงิ มอเตอร์ที่จะใชใ้ นการติดชิ้นส่วนต่าง ๆ เข้ากับ แกนสเต็ปปงิ มอเตอร์ ภาพท่ี 3.20 แท่งคารบ์ อน (ทม่ี า:หา้ งหนุ้ สว่ นจำกัด โซนเมกเกอร์ (2563)) จากภาพที่ 3.20 แสดงแท่งคาร์บอนที่เอาไว้สำหรับการกำหนดความยาวของแขนในแต่ละ ทอ่ น ภาพที่ 3.21 ฐานหมนุ (ทีม่ า:ลาซาด้า (2563)) จากภาพที่ 3.21 แสดงฐานหมุนที่ใช้ในการหมุนฐานของแขนกลเพื่อความมั่นคงในการหมุน ตำแหนง่ การติดต้งั จะอยู่ระหว่างฐานหมนุ แขนกลกับฐานท่ใี ชห้ มุนแขนกล

53 โดยชนิ้ ส่วนภาพท่ี 3.14 – 3.18 จะใช้ 3D Printer ในการสร้างขึน้ มาแลว้ นำมาประกอบกบั ชน้ิ สว่ นอนื่ ๆ เพอ่ื ให้ไดแ้ ขนกล แลว้ เมอ่ื นำช้ินส่วนทง้ั หมดท่ีไดม้ าประกอบกนั กันจะได้แขนกลดังภาพ ที่ 3.22 ถงึ 3.25 ภาพท่ี 3.22 ภาพแขนกลด้านหนา้ ซ้าย ภาพที่ 3.23 ภาพแขนกลด้านบน

54 ภาพที่ 3.24 ภาพแขนกลด้านหลังขวา ภาพท่ี 3.25 ภาพแขนกลดา้ นขวา 3.5 ขั้นตอนการทดสอบ ในงานวจิ ัยนีผ้ ้วู ิจยั ได้แบง่ การทดสอบเปน็ 3 ส่วน โดยการทดสอบท้งั หมดจะทดสอบบน กระดานทดสอบดังภาพท่ี 3.26

55 ภาพท่ี 3.26 กระดานทดสอบหุ่นยนตแ์ ขนกล โดยแขนกลจะถกู วางทีต่ ำแหนง่ X0, Y0 ดงั ภาพท่ี 3.25 3.4.1 การทดสอบความแมน่ ยำความคลาดเคลื่อนจากพิกัดที่ไดร้ ับ การทดสอบความคลาดเคลื่อนนน้ั จะใชส้ ตู ร การหาเปอรเ์ ซ็นต์ความคลาดเคล่ือน ดงั น้ี เปอร์เซ็นตค์ วามคลาดเคล่อื น = |������−������| × 100 (3.9) ������ โดย E คือ คา่ ตำแหน่งท่วี าง S คือ คา่ ตำแหนง่ ที่กำหนด ตัวอยา่ งการทดสอบ ในการทดสอบหนุ่ ยนตแ์ ขนกลจะมีการเปลยี่ นมือจบั จากมอื จบั ที่เปน็ การหยิบวัตถเุ ป็นปากกา เพ่ือความสะดวกในการทดสอบ ในการทดสอบจะกำหนดพิกัด (-10, 30) และ (10, 30) จำนวน 10 คร้งั แล้วนำผลที่ได้มาหาค่าเฉลยี่ โดยนำผลจากการหาความ คลาดเคลือ่ นในแตล่ ะคร้ังมาหาเปอรเ์ ซ็นต์ความคลาดเคล่ือน

ตารางที่ 3.3 ตัวอย่างการหาคา่ ความคลาดเคล่อื นท่ีพิกดั (10, 30) 56 ตำแหน่งทีก่ ำหนด ตำแหน่งที่ได้ ความคลาดเคลื่อน (เปอรเ์ ซน็ ต์) จำนวนคร้งั (เซนติเมตร) (เซนตเิ มตร) XY XYXY 00 00 1 10 30 10 30 10 0 00 2 10 30 10 30 00 20 7 3 10 30 9 30 00 0 10 4 10 30 10 30 20 3 00 5 10 30 10 29 52 6 10 30 8 28 7 10 30 10 30 8 10 30 10 27 9 10 30 8 29 10 10 30 10 30 ความคลาดเคล่ือน ตารางที่ 3.4 ตวั อย่างการหาคา่ ความคลาดเคลอื่ นที่พิกดั (-10, 30)

57 จากตารางที่ 3.3 - 3.4 เป็นค่าตัวเลขท่สี มมติขน้ึ มา ซ่ึงในการทดสอบจรงิ อาจมี เปลย่ี นหนว่ ยในการทดสอบเพ่ือความเหมาะสม 3.4.2 การทดสอบความสามารถในการหยิบวัตถุภาพทรงต่าง ในการทดสอบนจี้ ะกำหนดให้หนุ่ ยนต์แขนกลน้หี ยบิ วตั ถุในภาพทรงต่าง ๆ ที่มี นำ้ หนกั ไม่เกิน 500 กรัม ข้ึนใหม้ ีความสงู ในระดบั หนึ่งแล้วค้างไว้เปน็ ระยะเวลา 5 วนิ าทีแล้วนำกลบั ลงมาวางที่เดมิ ถา้ หุ่นยนตแ์ ขนกลน้ีทำได้จะนับ 1 ตัวอย่างการทดสอบ กำหนดใหท้ ดลองหยบิ วตั ถสุ ีเ่ หล่ียมขนาด 5 X 5 X 5 เซนติเมตร จำนวน 10 ครง้ั โดยนำผลของการทดสอบในแตล่ ะครัง้ มารวมกนั เพือ่ หาคา่ เฉลี่ย ตารางท่ี 3.5 ตัวอย่างการหาเปอร์เซน็ ต์การหยิบวตั ถุท่มี ีภาพทรงสีเ่ หลี่ยม จำนวนคร้ัง ภาพทรง ผลการทดสอบ 1 ส่เี หลย่ี มขนาด 5 X 5 X 5 เซนตเิ มตร 1 2 สี่เหล่ียมขนาด 5 X 5 X 5 เซนติเมตร 1 3 สี่เหลี่ยมขนาด 5 X 5 X 5 เซนตเิ มตร 1 4 สเ่ี หลี่ยมขนาด 5 X 5 X 5 เซนติเมตร 0 5 สีเ่ หล่ยี มขนาด 5 X 5 X 5 เซนติเมตร 1 6 สเ่ี หล่ยี มขนาด 5 X 5 X 5 เซนติเมตร 1 7 สเ่ี หลี่ยมขนาด 5 X 5 X 5 เซนตเิ มตร 0 8 ส่ีเหล่ยี มขนาด 5 X 5 X 5 เซนตเิ มตร 1 9 สี่เหลี่ยมขนาด 5 X 5 X 5 เซนตเิ มตร 1 10 สี่เหลยี่ มขนาด 5 X 5 X 5 เซนติเมตร 1 รวม 8 คา่ เฉลี่ย 80 % จากตารางที่ 3.5 เป็นค่าตวั เลขท่ีสมมตุ ิขึน้ มา ซึ่งในการทดสอบจริงอาจมีเปล่ียน หน่วยในการทดสอบเพื่อความเหมาะสม 3.4.3 การทดสอบความสามารถในการหยิบวัตถุทมี่ นี ้ำหนักตา่ ง ๆ ในการทดสอบน้จี ะกำหนดให้หยบิ วตั ถุส่ีเหล่ียมท่ีมนี ้ำหนกั แตกต่างกนั โดยจะเริ่มที่ 500 750 และ 1000 กรัม โดยถ้าสามารถหยิบวตั ถุและคา้ งไว้ 5 วินาทีแลว้ นำกลบั มาวางทเ่ี ดิมได้จะ นบั 1

58 ตัวอย่างการทดสอบ จะทดสอบการหยบิ วัตถทุ ่นี ำ้ หนัก 500 กรัม จำนวน 10 คร้ัง โดยนำผลของการทดสอบในแตล่ ะครั้งมารวมกันเพ่อื หาค่าเฉลี่ย ตารางท่ี 3.7 ตวั อย่างการหาเปอร์เซ็นตก์ ารหยบิ จับวัตถทุ ี่มีน้ำหนกั 500 กรัม จำนวนคร้งั นำ้ หนัก ผลการทดสอบ 1 500 1 2 500 1 3 500 1 4 500 1 5 500 1 6 500 1 7 500 0 8 500 1 9 500 1 10 500 1 รวม 9 คา่ เฉลย่ี 90 % จากตารางที่ 3.7 เปน็ คา่ ตัวเลขทีส่ มมุติข้ึนมา ซง่ึ ในการทดสอบจรงิ อาจมีเปลยี่ น หนว่ ยในการทดสอบเพ่ือความเหมาะสม

59 บรรณานกุ รม ชานนท์ ลอยลม, สิทธิพงษ์ รอดมาลัย, วีรวุฒิ มะสิงห์. (2560). ชุดจาลองแขนกลอุตสหากรรม. [อ อ น ไ ล น์ ]. ส ื บ ค ้ น เ ม ื ่ อ 2 5 ก ุ ม ภ า พ ั น ธ ์ 2 5 6 3 , เ ข ้ า ถ ึ ง ข ้ อ ม ู ล ไ ด ้ จ า ก : http://digital_collect.lib.buu.ac.th/projact/b00254231.pdf นิวแอนด์ไฮด์. (2560). อุปกรณ์สาหรับงานสุญญากาศ. [ออนไลน์]. สืบค้นเมื่อ 25 กุมภาพันธ์ 2563, เข้าถึงข้อมูลได้จาก : https://www.pneu-hyd.co.th/บทความ-นิวเมติกส์-ไฮดรอ ลิก/412-vacuum-equipment_อปุ กรณ์สาหรบั งานสุญญากาศ.html#pageent มุฑิตา สงฆ์จันทร์. (2558). การควบคุมหุ่นยนต์แขนกลโดยใช้วิธีการเรียนรู้แบบซ้าชนิดค่า พารามิเตอร์เหมาะสมที่สุด. [ออนไลน์]. สืบค้นเมื่อ 25 กุมภาพันธ์ 2563, เข้าถึงข้อมูลได้ จาก : http://web.eng.nu.ac.th/eng2012/enmis/doc/project/fullpaper/mutita56- complete.pdf วิทยาลัยสารพัดช่างนครศรีมา. (2563). สเต็ปเปอร์มอเตอร์. [ออนไลน์]. สืบค้นเมื่อ 25 กุมภาพันธ์ 2 5 6 3 , เ ข ้ า ถ ึ ง ข ้ อ ม ู ล ไ ด ้ จ า ก : http://www.nmptc.ac.th/home/wp- content/uploads/2016/08/U12.pdf ศุภโชค มานิกพันธุ์. (2553). การจาลองการทางานแขนกลอุตสาหกรรมแบบ 6 ข้อต่อโดยใช้วิธี โครงข่ายประสาทเทียม. [ออนไลน์]. สืบค้นเมื่อ 25 กุมภาพันธ์ 2563, เข้าถึงข้อมูลได้จาก : http://www.repository.rmutt.ac.th/bitstream/handle/123456789/2924/RMUTT- 151714.pdf?sequence=1


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook