สารบัญ:
- ขั้นตอนที่ 1: รู้เกี่ยวกับการแข่งขัน
- ขั้นตอนที่ 2: ฉันรู้เกี่ยวกับสิ่งต่าง ๆ ที่ไหน
- ขั้นตอนที่ 3: มาเริ่มกันเลย
- ขั้นตอนที่ 4: มันทำงานอย่างไร ?
- ขั้นตอนที่ 5: ให้เรารหัส …………
- ขั้นตอนที่ 6: ชั้นเรียน
- ขั้นตอนที่ 7: ฟังก์ชั่น
- ขั้นตอนที่ 8: กรณีสามารถแก้ไขโดย…………
- ขั้นตอนที่ 9: ค้นหาคำหลักในอินพุตของผู้ใช้
- ขั้นตอนที่ 10: สรุป
วีดีโอ: ผู้ช่วยที่เปิดใช้งานด้วยเสียง - สูงสุด: 10 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
เฮ้ในคำแนะนำนี้ฉันจะพูดถึงวิธีสร้างแชทบ็อต MAX (ชื่อตัวเอง !!!)
ด้วยการใช้งานบางอย่าง คุณสามารถทำให้แชทบอทควบคุมด้วยเสียง หรือด้วยการใช้ซอฟต์แวร์ต่างๆ คุณสามารถทำให้เป็นผู้ช่วยเสียงได้ ฉันจะไม่พูดถึงเรื่องนี้เพราะทุกคนสามารถดำเนินการนี้ได้อย่างง่ายดายอย่างแท้จริง
ดังนั้นทุกคนโปรดสนับสนุนฉันด้วย…….
คำสั่งแรกของฉัน !!!!!!!
รู้สึกประหม่ากับสิ่งที่กำลังจะเกิดขึ้น ……………..
ขั้นตอนที่ 1: รู้เกี่ยวกับการแข่งขัน
สวัสดีวิศวกรและนักออกแบบ……..
ตัวฉันเองที่เป็นนักศึกษาวิทยาการคอมพิวเตอร์ชอบเล่นเกมและมีแรงบันดาลใจในการใช้คอมพิวเตอร์เสมอ พูดสั้นๆ ว่าฉันชอบที่จะรู้ว่าสิ่งเหล่านี้ทำงานอย่างไร ดังนั้นฉันจึงค้นหาไปเรื่อยๆ (แต่ฉันก็เคยใช้ Yahoo เหมือนกันนะ!!!) !!!) เพื่อค้นหาและเรียนรู้สิ่งต่างๆ
วันหนึ่งฉันมาที่หน้าจอของคำสั่งสอน มันทำให้ฉันขบขันผ่านโครงการต่าง ๆ ที่มีความคิดที่หลากหลายในด้านต่าง ๆ จากนั้นจากวันนั้นฉันก็ติดตามมัน หน้าการประกวดทำให้ฉันขบขันทั้งเรื่องรางวัลและโครงการที่ผู้คนต่างส่งเข้ามา โลก.
VOICE ACTIVATED CHALLENGE เป็นแพลตฟอร์มแรกของฉันเกี่ยวกับการเขียน Instructable
ของรางวัลทำให้ฉันขบขันมาก (ใช่ !!! มากเกินไป……..)
นอกจากนี้ ฉันต้องการแบ่งปันความรู้ของฉันในด้านคอมพิวเตอร์และเป็นเทคโนโลยีกับผู้อื่นเกี่ยวกับการทำงานของสิ่งต่าง ๆ จริง ๆ
ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างผู้ช่วยที่เปิดใช้งานด้วยเสียงของคุณเอง
เนื่องจากเป็น Instructable แรกของฉัน อาจมีข้อผิดพลาดมากมาย (แม้ว่าฉันคิดว่าสิ่งเหล่านี้ได้รับการแก้ไขแล้ว) ดังนั้นให้อภัยสำหรับสิ่งนั้น
ดังนั้น….
เรามาเริ่มการเดินทางกันเลย………
ขั้นตอนที่ 2: ฉันรู้เกี่ยวกับสิ่งต่าง ๆ ที่ไหน
นี่จะเป็นคำถามสำคัญที่ฉันคิดว่าจิตใจของคุณส่วนใหญ่อาจต้องผ่าน…………
ฉันมีความหลงใหลในปัญญาประดิษฐ์[AI] จากการเรียนมาก จากนั้นฉันก็ค้นหาแหล่งข้อมูลมากมายเพื่อศึกษาและพัฒนาแบบจำลองด้วยตัวเอง
ตอนแรกมันยากมาก (สภาพจริง) เพราะฉันเข้าใจว่ามันเป็นเรื่องที่กว้างใหญ่มากซึ่งไม่ง่ายเลยที่จะจัดการ
หนังสือที่ค้นหารวมถึง:
- ปัญญาประดิษฐ์ แนวทางสมัยใหม่
- Artificial. Intelligence.in.the.21st. Century.2nd. Edition
- การเรียนรู้อย่างลึกซึ้ง
เหล่านี้เป็นหนังสือที่ดีมาก (ใช่แน่นอน) แต่มันไม่ง่ายเลยที่จะเข้าใจสิ่งที่เขียนไว้ จากนั้นฉันก็เก็บไว้ที่ด้านข้างและค้นหาแหล่งข้อมูลที่ทำให้ความคิดสั้น ๆ เกี่ยวกับสิ่งที่ มันเป็นตัวแทนและวิธีเข้าถึงมันจริงๆ
จากนั้นฉันก็พบความสนใจในเรื่องนี้ ตลอดช่วงพักร้อนหลังเลิกเรียน ฉันเริ่มเรียนรู้เรื่องนี้อย่างลึกซึ้งยิ่งขึ้น
ตอนนั้นฉันยังได้เรียนรู้ภาษาการเขียนโปรแกรมต่างๆ (C++, C, Python, Java ….) ซึ่งน่าสนใจมาก
เมื่ออ่านเพิ่มเติมในหัวข้อนี้ ฉันเข้าใจสิ่งสำคัญอย่างหนึ่ง………………..
ภาษาโปรแกรมเป็นพื้นฐานสำหรับกระบวนการเรียนรู้เครื่องจักรทุกกระบวนการ
Machine Learning เป็นกระบวนการของการนำ AI มาประยุกต์ใช้
ด้วยความเข้าใจที่ดีเกี่ยวกับภาษาโปรแกรมและสิ่งต่าง ๆ ที่สามารถทำได้ขึ้นอยู่กับโปรแกรมเมอร์ที่จะทำให้คอมพิวเตอร์ทำอะไรให้เรา
ดังนั้นฉันจึงตัดสินใจสร้างพื้นฐานที่ดีเกี่ยวกับภาษาที่ทำให้ฉันเข้าใจแนวคิดที่ให้ไว้ในหนังสือที่ฉันได้กล่าวไปแล้ว
คุณเองก็ทำได้…….
มีเว็บไซต์มากมายในเว็บเพื่อสอนภาษาโปรแกรมอย่างอิสระ
เพื่อให้คุณสามารถท่องอินเทอร์เน็ตเพื่อทำความเข้าใจเพิ่มเติมได้หากต้องการ………
ขั้นตอนที่ 3: มาเริ่มกันเลย
ฉันก่อนที่จะเริ่มเขียน Instructable ฉันคิดว่าจะเขียนบางสิ่งที่เข้าใจได้โดย:
- ผู้ที่มีประสบการณ์เกี่ยวกับการเข้ารหัส
- คนที่ไม่มีพื้นฐานการเข้ารหัสใด ๆ
ดังนั้นฉันคิดว่าฉันได้ทำสิ่งนั้นโดยไม่มีข้อผิดพลาด (หวังว่า)
ดังนั้นฉันจึงตัดสินใจสร้างแชทบอทที่สามารถพูดคุยกับผู้ใช้และตอบสนองตามที่เราพูดคุยได้
โปรแกรม(ชุดคำสั่ง) คิดเองไม่ได้ มีฐานข้อมูล (สถานที่จัดเก็บข้อมูล) ข้อเท็จจริงและกฎเกณฑ์ ซึ่งค้นหาในขณะที่พูดคุยเพื่อให้การตอบสนองที่ดีที่สุดเท่าที่จะเป็นไปได้ซึ่งเชื่อมโยงกับผู้ใช้
มันทำงานโดยกระบวนการจับคู่โดยขึ้นอยู่กับสิ่งต่าง ๆ ที่ป้อน เฉพาะในกรณีที่ไม่ค่อยพบทั้งประโยคจะถูกจับคู่กับประโยคที่สมบูรณ์
ขั้นตอนที่ 4: มันทำงานอย่างไร ?
ขั้นตอนที่ 1:
MAX ค้นหาว่าผู้ใช้ได้ป้อนข้อมูลที่เป็นโมฆะหรือไม่ หากผู้ใช้ระบุอินพุตในลักษณะดังกล่าว จะใช้ข้อเท็จจริงจากฐานข้อมูลแบบสแตติกเพื่อตอบกลับ
โอ้ขอโทษ …….
ลืมบอกไปว่า
ฐานข้อมูลแบบคงที่: ตำแหน่งที่เก็บการตอบสนองในตัว ตอบสนองเช่น:
1. เมื่อ MAX ไม่เข้าใจสิ่งที่ผู้ใช้กำลังพูดถึง
2. เมื่อผู้ใช้ทำซ้ำตัวเอง
3. สำหรับคำทักทาย
4. เมื่อผู้ใช้ไม่พิมพ์อะไรเลยและกด Enter ต่อไป
คำสำคัญ: คำที่มีความหมายพิเศษ
ขั้นตอนที่ 2:
มีการตอบสนองในตัวบางอย่างที่ MAX สามารถจดจำได้ง่ายและรวดเร็ว พบประโยคดังกล่าวหลังจากระบุข้อมูลที่ผู้ใช้ป้อนและจดจำคีย์เวิร์ดที่เกี่ยวข้อง
ขั้นตอนที่ 3:
หากไม่พบประโยคที่สร้างขึ้นแม้หลังจากการแตกแฟรกเมนต์ของประโยคที่กำหนด MAX จะค้นหาคำหลักเฉพาะเพื่อกำหนดบริบท หากไม่พบบริบท เป้าหมายต่อไปก็คือการทำให้ผู้ใช้พูดถึงหัวข้อนั้นอย่างจงใจมากขึ้นในลักษณะเฉพาะ
ขั้นตอนที่ 4:
จาก Static Database ที่เราได้พูดคุยกันไปแล้ว มันก็จะรับคำตอบที่ขึ้นกับว่าผู้ใช้ได้พูดถึงอะไร
ขั้นตอนที่ 5:
ฉันไม่จำเป็นต้องเปลี่ยนคำที่จะทำเอง (เช่น Conversion ของฉันเป็นของคุณ ฯลฯ ….)
ขั้นตอนที่ 5: ให้เรารหัส …………
ฉันใช้ Turbo C IDE 3.0 เนื่องจากนี่คือ IDE [Integrated Developmental Environment]
ก่อนการเข้ารหัส ให้เราดูโครงสร้างของไฟล์ข้อมูลตัวอย่าง
MAX รู้จักคำหลักบางคำ
หากพบคำหลักเหล่านี้ในข้อมูลที่ป้อนโดยผู้ใช้ การตอบสนองที่เกี่ยวข้องจะถูกเลือกจากไฟล์ข้อมูลและจะถูกเลือกและแสดงบนหน้าจอ
คีย์เวิร์ดถูกแยกในไฟล์ข้อมูลจากการตอบสนองโดยโทเค็น @KWD@
โทเค็นเป็นส่วนที่เล็กที่สุดของทุกแง่มุมของการเขียนโปรแกรม
โทเค็นนี้หมายถึงบรรทัดถัดไปคือคีย์เวิร์ด ไม่ใช่การตอบกลับ
@KWD@ สวัสดีครับ
สวัสดี คุณเป็นอย่างไรบ้าง
สวัสดีที่รัก !
ฉันสบายดี
งานของคุณเป็นอย่างไร?
คุณอายุเท่าไหร่?
ฉันจะทำ
คุณจะทำเช่นนั้น ฉันก็เชื่อเหมือนกัน…
คุณจะสามารถทำเช่นนั้นได้หรือไม่ ?
คุณจะเชื่อใจฉันไหม
ใช่
คุณแน่ใจไหม ?
คุณจะมั่นใจได้อย่างไร?
ไม่
คุณดูเหมือนจะมองโลกในแง่ร้ายมาก
ไม่เคยปฏิเสธ…
ไม่เคยพูดไม่เคย
ไม่เคยหยาบคาย
ไม่เคยหยิ่ง !!!!
อย่าพูดว่าฉันทำไม่ได้
อย่ามองโลกในแง่ดี
คอมพิวเตอร์
ฉันรู้วิธีทำงานบนคอมพิวเตอร์
คุณกำลังใช้คอมพิวเตอร์อยู่ในขณะนี้ ขวา ?
ตัวอย่างเช่น 'สวัสดี' จากพจนานุกรมด้านบน MAX จะตอบกลับอย่างใดอย่างหนึ่งต่อไปนี้:
สวัสดี คุณเป็นอย่างไรบ้างที่รัก !
ฉันสบายดี
งานของคุณเป็นอย่างไร?
คุณอายุเท่าไหร่?
ขั้นตอนที่ 6: ชั้นเรียน
เมื่อสิ่งนี้ชัดเจน ให้เรากำหนดโครงสร้างข้อมูลที่เราจะใช้
เราสร้างสองคลาส:
progstr - ใช้เพื่อเก็บข้อมูลที่เกี่ยวข้องกับอินพุตของผู้ใช้
resp - ใช้เพื่อเก็บข้อมูลเกี่ยวกับการตอบสนองต่างๆ
คลาส progstr{
สาธารณะ:
ถ่านผู้ใช้[MAX_USER_INPUT];
คีย์เวิร์ดอักขระ[30];
คีย์เวิร์ด int;
int keyno;
int nullip;
// ตัวสร้าง
progstr() { คีย์โน=-1; nullip=0; คีย์พบ=0;
}
}ไอพี;
ชั้นเรียน
{
int tot_resp;
int last_resp;
ถ่านตอบกลับ[MAX_RESP_NO][MAX_RESP_LEN];
คำอักขระ[MAX_KWD_LEN];
สาธารณะ:
// ตัวสร้าง
ตอบกลับ ()
{
tot_resp=0;
last_resp=-1;
}
รับจำนวนเต็ม ()
{
ส่งคืน last_resp;
}
เป็นโมฆะ addword(ถ่าน str[MAX_KWD_LEN])
{
strcpy(คำ, str);
}
ถ่าน * getword()
{
กลับคำ;
}
ที่อยู่เป็นโมฆะ (ถ่าน str[MAX_RESP_LEN])
{
strcpy(ตอบกลับ[++last_resp], str);
}
//กำหนดภายหลัง
เป็นโมฆะ display_resp (จำนวน int);
เป็นโมฆะ quit_display_resp (จำนวน int);
};
มองไปที่ชั้นหนึ่ง, userip อาร์เรย์อักขระใช้เพื่อเก็บประโยคที่ผู้ใช้ให้มา
คีย์เวิร์ดอาร์เรย์อื่นใช้เพื่อจัดเก็บคีย์เวิร์ด (หากมี) อยู่ในอินพุตนั้น หากพบคีย์เวิร์ด เราจะสร้างคีย์เวิร์ด int ไปที่ 1 รายการอื่น โดยยังคงเป็น 0 เนื่องจากคีย์เวิร์ดเริ่มต้นเป็น 0 ใน Constructor
keyno เก็บหมายเลขคีย์ที่สอดคล้องกันของคีย์เวิร์ดที่เกี่ยวข้อง
nullip บ่งชี้ว่าผู้ใช้ได้ให้อินพุต Null หรือไม่ เช่น เขาเพียงแค่กด Enter โดยไม่ต้องทำอย่างอื่น
มาต่อกันที่ชั้นสองกันเถอะ
สมาชิกข้อมูลตัวแรก tot_resp ระบุจำนวนการตอบสนองทั้งหมดสำหรับคำหลักที่กำหนด
จริง ๆ แล้วการตอบกลับจะถูกเก็บไว้ในการตอบกลับ[MAX_RESP_NO][MAX_RESP_LEN] และคำหลักที่เกี่ยวข้องจะถูกเก็บไว้ในคำอาร์เรย์
ตัวสร้าง: ใช้เพื่อเริ่มต้นจำนวนการตอบกลับทั้งหมดเป็น 0 เหตุใด Last_resp จึงเริ่มต้นเป็น -1 จะชัดเจนเมื่อคุณดูฟังก์ชัน add_resp
int getcount():
ฟังก์ชันนี้ใช้เพื่อนับจำนวนการตอบกลับสำหรับคีย์เวิร์ดที่กำหนด
เป็นโมฆะ addword (ถ่าน str[MAX_KWD_LEN]):
ใช้เพื่อเพิ่มคำสำคัญ
ถ่าน * getword():
ใช้เพื่อส่งคืนคีย์เวิร์ดสำหรับอ็อบเจ็กต์เฉพาะของ class resp
ที่อยู่เป็นโมฆะ (…):
ใช้เพื่อเพิ่มการตอบสนองที่สอดคล้องกับคำหลักที่กำหนด
เป็นโมฆะ display_resp (int):
ใช้เพื่อแสดงการตอบสนองต่อผู้ใช้ที่สอดคล้องกับหมายเลขดัชนีที่กำหนดสำหรับการตอบกลับ (อันที่จริงมันทำได้มากกว่านั้น!)
เป็นโมฆะ quit_display_resp (int):
ความแตกต่างระหว่างฟังก์ชันนี้และฟังก์ชันด้านบนคือใช้เมื่อผู้ใช้เลิกใช้งาน ดังนั้นจึงไม่ส่งคืนพรอมต์ให้กับผู้ใช้
ขั้นตอนที่ 7: ฟังก์ชั่น
เป็นโมฆะ initialize_global()
{
strcpy(wordin[0], "ARE");
strcpy(wordout[0], "AM");
strcpy(wordin[1], "AM");
strcpy(wordout[1], "เป็น");
strcpy(wordin[2], "เคย");
strcpy(คำพูด[2], "เคย");
strcpy(คำใน[3], "เคย");
strcpy(คำพูด[3], "เคย");
strcpy(คำใน[4], "คุณ");
strcpy(คำพูด[4], "ฉัน");
strcpy(wordin[5], " ฉัน ");
strcpy(คำพูด[5], "คุณ");
strcpy(wordin[6], "ของคุณ");
strcpy(คำพูด[6], "ของฉัน");
strcpy(คำใน[7], "ของฉัน");
strcpy(คำพูด[7], "ของคุณ");
strcpy(wordin[8], "ฉัน");
strcpy(คำพูด[8], "คุณ");
strcpy(wordin[9], "คุณ");
strcpy(คำพูด[9], "ฉัน");
strcpy(wordin[10], "ฉัน");
strcpy(คำพูด[10], "คุณ");
strcpy(wordin[11], "คุณ");
strcpy(คำพูด[11], "ฉัน");
strcpy(คำใน [12], "ฉัน");
strcpy(คำพูด[12], "คุณ");
strcpy(wordin[13], "คุณ");
strcpy(คำพูด[13], "ฉัน");
}
ให้เราเขียนฟังก์ชันเพื่อแสดงการตอบสนองต่อผู้ใช้ คำสั่งแรก if ในลูป for ถูกใช้เพื่อสร้างข้อผิดพลาดในการพิมพ์โดยเจตนาเพื่อให้ดูเหมือนมนุษย์มากขึ้นเช่น;-) มีการสุ่มเลือกอักขระหนึ่งตัวสำหรับข้อผิดพลาดในการพิมพ์ กรณีพิเศษเช่น New Line และ Backspace จะพิจารณาแยกกัน (คิดว่าทำไม?). ตอนนี้ฉันแนะนำสิ่งใหม่ อักขระพิเศษ - *. Char * แทนข้อความทั้งหมดที่พบหลังคีย์เวิร์ดที่ระบุ และก่อนเครื่องหมายวรรคตอนอย่างใดอย่างหนึ่งต่อไปนี้
ตัวอย่างเช่น พิจารณาอินพุตของผู้ใช้
AMIT > พรุ่งนี้ฉันจะไปอินดอร์ได้ไหม
MAX > ถ้าพรุ่งนี้คุณไม่ไปอินดอร์ล่ะ ?
ส่วนที่ขีดเส้นใต้จะไม่ถูกเก็บไว้ในพจนานุกรม แต่จะนำมาจากข้อมูลที่ผู้ใช้ป้อน ในไฟล์ MAX. Dat เราเก็บข้อมูลนี้เป็น
ให้ฉัน
เกิดอะไรขึ้นถ้าคุณไม่ทำ *
Star (*) ขอให้โปรแกรมคัดลอกสิ่งที่พิมพ์หลังจากคำหลัก (ที่นี่ CAN I) ในการป้อนข้อมูลของผู้ใช้ตามที่เป็นอยู่ ฉันหวังว่าตอนนี้ฟังก์ชันของ * เป็นคำหลักพิเศษจะชัดเจน ดังนั้น ให้เราพิจารณากรณีที่ซับซ้อนกว่านี้
AMIT > ฉันสามารถไปช้อปปิ้งได้หรือไม่?
MAX > เกิดอะไรขึ้นถ้าคุณไม่ไปช้อปปิ้ง ?
เราต้องทำการเปลี่ยนแปลงบางอย่างด้วย เมื่อเรานึกถึงการเปลี่ยนแปลง ประโยคจะถูกแบ่งออกเป็น 3 ส่วนต่อไปนี้:
- ข้อความก่อนย้ายคำ (ที่นี่ไปช้อปปิ้งกับ)
- คีย์เวิร์ด Transposed (ที่นี่ ของคุณ แทนที่ MY)
- ข้อความหลังการโยกย้ายคำสำคัญ (ฉันอยู่นี่ ?)
ขั้นตอนที่ 8: กรณีสามารถแก้ไขโดย…………
ขั้นตอนที่ 9: ค้นหาคำหลักในอินพุตของผู้ใช้
MAX_KEY ระบุจำนวนคำหลักในไฟล์ DAT
เราเพียงแค่ค้นหาว่ามีคำสำคัญอยู่ใน User's Input หรือไม่
ขั้นตอนที่ 10: สรุป
แค่นั้น ………
คุณทำได้!!!!!!!!
ฉันคิดว่าทุกคนเข้าใจสิ่งต่าง ๆ อย่างชัดเจน……
หากใครมีข้อสงสัยประการใด สามารถสอบถามได้ครับ
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง