หุ่นยนต์ Karel เป็นสิ่งที่ถูกคิดขึ้นมาเพื่อช่วยในการสอนแนวคิดในการเขียนโปรแกรมเบื้องต้น เพื่อตัดปัญหาความยุ่งยากและซับซ้อนเกี่ยวกับโครงสร้างของภาษาในการโปรแกรมซึ่งถูกคิดขึ้นในปี 1970 โดยนักศึกษาของมหาวิทยาลัย Stanford ชื่อ Rich Pattis โดยใช้แนวคิดพื้นฐานจากโครงการ Lego ของ MIT ที่รูปทรงพื้นฐานมาต่อกันเพื่อสร้างเป็นวัตถุหรือโครงสร้างที่ใหญ่กว่า Rich จึงเสนอให้กําหนดหุ่นยนต์ที่มีคําสั่งง่ายๆไม่กี่คําสั่งในการฝึกหัดเขียนโปรแกรม เพื่อควบคุมทํางานในสิ่งแวดล้อมที่กําหนดและตั้งชื่อว่า Karel ตามชื่อ Karel Capek ที่เป็นคนคิดศัพท์คําว่า robot ในภาษาอังกฤษ
คาเรล (Karel) ค่อนข้างประสบความสำเร็จ และถูกนำมาใช้ในหลักสูตรวิทยาศาสตร์คอมพิวเตอร์เบื้องต้นทั่วโลกและได้รับการสอนให้กับนักเรียนหลายล้านคน อย่างไรก็ตามผู้เรียนก็จะได้เรียนรู้พื้นฐานการเขียนในรูปแบบของภาษาไพทรอน และนอกจากนั้นก็จะได้เรียนรู้หลัการแนวคิดของการเขียนโปรแกรมเชิงวัตถุไปในตัว แต่จะแตกต่างกันเพียงความซับซ้อนในการเขียนโปรแกรมควบคุมหุ่นยนต์ Karel โปรแกรมส่วนใหญ่เป็นคําสั่งที่อยู่ในรูปแบบฟังก์ชั่น (function) ที่เข้าใจง่ายและทําให้จดจําได้ง่าย ผู้เรียนจึงสามารถเรียนรู้ได้เร็ว และ่ ได้แนวคิดในการวิเคราะห์เพื่อแก้ปัญหาการเคลื่อนไหวของหุ่นยนต์และเทคนิคต่างๆเพื่อให้หุ่นยนต์ผ่านอุปสรรคนั้นๆ โดยใช้พื้นฐานที่เป็นองค์ประกอบสําคัญที่สุดที่ใช้อยู่ในทุกภาษาซึ่งการเรียนรู้พื้นฐานการเขียนโปรแกรมในช่วงแรก ดังนั้นจึงเหมาะสําหรับผู้เริ่มต้นหัดเขียนโปรแกรมเป็นย่างยิ่งเพื่อที่จะใช้ทําความเข้าใจในการเขียนโปรแกรมพื้นฐานเข้าใจโครงสร้างภาษาพื้นฐานและการลําดับแนวคิดเพื่อแก้ปัญหาก่อนที่จะเริ่มพัฒนาโปรแกรมต่อไปในอนาคต
โลกของ Karel เป็นบริเวณที่ถูกกําหนดขึ้นเพื่อให้หุ่นยนต์ Karel อยู่ ซึ่งมีลักษณะเป็นถนนที่ Karel สามารถเคลื่อนที่ไปได้ทั้งในแนวตั้ง แนวนอน แนวเหนือ-ใต้ และ แนวตะวันออก-ตะวันตก ดังแสดงในรูปด้านล่าง โดยจุดกากบาทเป็นจุดตัดระหว่างถนนสองเส้น เช่นรูปในเส้นที่หนึ่งหุ่นยนต์ Karel อยู่ที่หัวมุมถนนหนึ่งตัดกับหนึ่ง เป็นต้น และจากรูปเราจะเห็นวัตถุสี่เหลี่ยมข้าวหลามตัดวางอยู่ตรงหน้าของหุ่นยนต์ Karel วัตถุตัวนี้จะเรียกว่า beeper ซึ่งเป็นเสมือนเหรียญพลาสติกหรือก้อนหินที่มีคุณสมบัติว่าจะเกิดเสียงเมื่อ Karel ไปยืนทับมันอยู่โดยเหรียญหรือก้อนหินต้องวางอยู่บนจุดตัดระหว่างถนน นอกจากนั้นในโลกของหุ่นยนต์ Karel ยังมีกําแพงซึ่งมีลักษณะเป็นเส้นทึบลากตามแนวถนนและจะถูกใช้เป็นการกําหนดขอบเขตของโลกหรือสนามในการเคลื่อนที่ของหุ่นยนต์ Karel ซึ่งหุ่นยนต์(Karel) จะไม่สามารถเดินฝ่ากําแพงนี้ไปได้
หุ่นยนต์ Karel เป็นหุ่นยนต์ที่ถูกกําหนดให้สามารถทํางานพื้นฐาน ซึ่งชุดคําสั่งพื้นฐานที่ใช้ควบคุมสั่งงานหุ่นยนต์ Karel จะมี 4 คําสั่ง ซึ่งผู้เรียนสามารถทดลองใช้คำสั่งปุ่มคำสั่งด้านล่าง เพื่อให้ตรงกับเป้าหมายด้านล่างได้ :
ชุดคําสั่งพื้นฐานมีดังต่อไปนี้:
คำสั่งพื้นฐาน | คำอธิบาย |
---|---|
move() |
เดินหน้า เมื่อใช้คําสั่งนี้ Karel จะเดินหน้าไปหนึ่งบล็อกหรือหนึ่งหัวมุมถนนโดยที่จะต้องไม่มีกําแพงขวางอยู่ |
turn_left() |
หันซ้าย เมื่อใช้คำสั่งนี้ Karel จะหมุนตัวหุ่นไป 90 องศา ทางซ้ายมือเพื่อเปลี่ยนทิศการเคลื่อนที่ |
pick_beeper() |
หยิบเหรียญ เมื่อสั่งงาน Karel จะหยิบเหรียญตรงมุมถนนที่ Karel ยืนอยู่มาเก็บไว้ โดยสามารถเก็บไว้ในตัวหุ่นได้ไม่จํากัดจํานวน |
put_beeper() |
วางเหรียญ เมื่อสั่งงาน Karel จะทําการนําเหรียญที่เก็บไว้ในตัว Karel วางลงที่หัวมุมถนนตรงที่ Karel ยืนอยู่ซึ่งในตัว Karel จะต้องมีเหรียญเก็บอยู่ในตัวเท่านั้น |
การทําตามคําสั่งที่ผู้เขียนกําหนดและข้อจํากัดต่างๆของหุ่นยนต์ Karel เองเป็นสิ่งสําคัญเพื่อไม่ให้หุ่นยนต์ Karel ทําผิดกฎที่ได้ตั้งไว้เช่น การเดินฝ่ากําแพงหรือหยิบเหรียญ/ก้อนหินในตําแหน่งที่ไม่มีเหรียญ/ก้อนหินอยู่จริง ตัวโปรแกรมก็จะแสดงหน้าต่างข้อความแจ้งข้อผิดพลาดที่เกิดขึ้นให้เห็นในช่องคําสั่งของโปรแกรม ดังนั้นผู้เขียนโปรแกรมจะต้องวางแผนการเคลื่อนที่ของหุ่นยนต์อย่างละเอียดรอบคอบเพราะในโลกของการใช้งานจริงถ้าวิศวกรผู้พัฒนาโปรแกรมควบคุมหุ่นยนต์ไม่ได้วางแผนหรือป้องกันการเดินหรือการเคลื่อนไหวที่ผิดพลาดของหุ่นยนต์ก็จะทําให้เกิดความเสียหายและอันตรายต่อสิ่งของที่อยู่รอบตัวหุ่นยนต์ได้