GrimmsBox: สร้างอุปกรณ์เล่าเรื่องของคุณเอง: 5 ขั้นตอน (พร้อมรูปภาพ)
GrimmsBox: สร้างอุปกรณ์เล่าเรื่องของคุณเอง: 5 ขั้นตอน (พร้อมรูปภาพ)
Anonim
GrimmsBox: สร้างอุปกรณ์เล่าเรื่องของคุณเอง
GrimmsBox: สร้างอุปกรณ์เล่าเรื่องของคุณเอง

คำแนะนำนี้จะแสดงวิธีสร้างกล่องเล่าเรื่องของคุณเอง รู้สึกอิสระที่จะเลือกการผจญภัยของคุณเอง

ที่เรียกว่า "GrimmsBox" เป็นโครงการของนักศึกษาจาก Hochschule der Medien Stuttgart ประเทศเยอรมนี เราใช้เครื่องพิมพ์ใบเสร็จทั่วไปเพื่อพิมพ์ส่วนแรกของเรื่องราว ในตอนท้ายของส่วนการตัดสินใจจะต้องทำ การใช้ปุ่มต่างๆ คุณสามารถเลือกได้ว่าจะให้เรื่องราวดำเนินไปอย่างไร เราใช้ Raspberry Pi เพื่อรันซอฟต์แวร์

สองกล่องจะถูกใช้งานในไม่ช้านี้ ห้องสมุดสาธารณะใน Mannheim กำลังจัดเวิร์กช็อปกับเด็กๆ เด็ก ๆ สามารถสร้างเรื่องราวของตนเองและพวกเขาสามารถสัมผัสเรื่องราวของพวกเขาด้วยความช่วยเหลือจาก GrimmsBox เป้าหมายหลักของเวิร์กช็อปดังกล่าวคือการส่งเสริมความสามารถในการอ่านและเขียน กล่องการเล่าเรื่องจะถูกนำไปที่กิจกรรมเพื่อให้เด็กจากชั้น 3 ถึง 6 ได้รับการแนะนำให้รู้จักกับประสบการณ์การอ่านที่สมจริง

ขั้นตอนที่ 1: วิธีสร้างเคสสำหรับ GrimmsBox

วิธีสร้างเคสสำหรับ GrimmsBox
วิธีสร้างเคสสำหรับ GrimmsBox

วัสดุที่จำเป็น:

  • แผ่นไม้อัด 1x 6 มม. (1200x600x6 มม.)
  • แผ่นไม้อัด 1x4 มม. (1200x600x4 มม.)
  • กาวไม้
  • อุปกรณ์ที่จำเป็น: เครื่องตัดเลเซอร์, คอมพิวเตอร์

ไฟล์ที่ใช้โดย GrimmsBox สามารถดาวน์โหลดได้ฟรี ไฟล์เหล่านี้เป็นไฟล์ svg และ dxf ของส่วนประกอบแต่ละรายการของ GrimmsBox ด้านหนึ่งเป็นโครงสร้างพื้นฐานที่ Raspberry Pi หาที่ของมัน จากนั้นเป็นหนังสือที่มีบานพับแบบโค้งงอและชั้นวางหนังสือที่ออกแบบเอง

แผ่นไม้อัดขนาด 6 มม. ใช้สำหรับโครงสร้างพื้นฐานและที่วางหนังสือ หนังสือถูกตัดออกจากแผ่นไม้อัด 4 มม. แผ่นหนาจะหนาเกินกว่าจะทำหนังสือได้ บานพับดัดใช้ได้กับแผ่นไม้อัด 3-4 มม. เท่านั้น มิฉะนั้นจะแตก

ไฟล์ dxf เป็นตัวเลือกที่เหมาะสมสำหรับผู้ที่ไม่ต้องการเปลี่ยนแปลงอะไรอีกต่อไป พร้อมที่จะใช้กับเครื่องตัดเลเซอร์

แต่สำหรับผู้ที่ยังต้องการให้กล่องสัมผัสของตัวเองสามารถใช้ไฟล์ SVG ในกล่อง สิ่งเหล่านี้สามารถเปลี่ยนแปลงได้ตามต้องการ ในการดำเนินการนี้ จะต้องเปิดไฟล์ในโปรแกรม (เช่น Inkscape) ด้วยโปรแกรมเหล่านี้ คุณสามารถแก้ไขส่วนประกอบแต่ละส่วนได้ หากคุณได้เปลี่ยนแปลงบางสิ่ง (เช่น ขนาดของรูสำหรับปุ่มหรือแบบดึงรอบ) คุณต้องบันทึกไฟล์ SVG เป็นไฟล์ dxf

ต้องเปิดไฟล์ dxf ที่เครื่องตัดเลเซอร์ ทันทีที่ไฟล์แสดงบนพีซี จะต้องเลือกว่าต้องการตัดบรรทัดใดและควรแกะสลักบรรทัดใด ตัวอักษรข้างกล่องสลักอยู่บนกล่องของกริมม์ และตัวหนังสือบนหนังสือก็ถูกตัดออกเล็กน้อย คุณสามารถใช้อย่างใดอย่างหนึ่งทั้งนี้ขึ้นอยู่กับสิ่งที่คุณชอบดีกว่า เส้นด้านนอกจะต้องถูกตัดออกทั้งหมด อย่างไรก็ตาม การใช้เครื่องตัดเลเซอร์อาจขึ้นอยู่กับรุ่นของเครื่องตัดเลเซอร์และอาจแตกต่างออกไป

ขั้นตอนที่ 2: วิธีประกอบปุ่มสำหรับ GrimmsBox

วิธีประกอบปุ่มสำหรับ GrimmsBox
วิธีประกอบปุ่มสำหรับ GrimmsBox
วิธีประกอบปุ่มสำหรับ GrimmsBox
วิธีประกอบปุ่มสำหรับ GrimmsBox
วิธีประกอบปุ่มสำหรับ GrimmsBox
วิธีประกอบปุ่มสำหรับ GrimmsBox
วิธีประกอบปุ่มสำหรับ GrimmsBox
วิธีประกอบปุ่มสำหรับ GrimmsBox

วัสดุที่จำเป็น:

  • 6 ปกติเปิดปุ่มกดชั่วขณะเช่น ปุ่มสำหรับเล่นเกมอาเขต
  • สายจัมเปอร์ 8 เส้นที่มีปลายตัวเมียอย่างน้อยหนึ่งเส้น ของเรายาวประมาณ 40 ซม.
  • ถักเปียบ้าง
  • ท่อหดความร้อนกล่องที่ใช้สำหรับโครงการของคุณ ในกรณีของเราคือฝาครอบด้านบนที่ตัดด้วยเลเซอร์และฝาครอบสองด้านที่มีปุ่มพิเศษ
  • บัดกรีและหัวแร้ง
  • มัลติมิเตอร์
  • เครื่องตัดลวด
  • เครื่องปอกสายไฟ
  • ไฟแช็กหรือปืนลมร้อน
  1. ในโค้ดของเรา เราใช้ตัวต้านทานภายใน ดังนั้นเราต้องทำสองสิ่งเท่านั้น: ขั้นแรก เชื่อมต่อสายจัมเปอร์ตัวเมียกับแต่ละปุ่ม ซึ่งจะนำไปสู่พิน GPIO ตามลำดับ และวินาที เชื่อมต่อปุ่มต่างๆ เข้าด้วยกัน ซึ่งจะถูกนำ ต่อกราวด์ด้วยสายจัมเปอร์ตัวเมียอีกอัน เราเชื่อมต่อปุ่มปิดเครื่องและปุ่มโปรแกรมรีสตาร์ทเข้าด้วยกัน และใช้หมุดกราวด์เพียงอันเดียว ปุ่มสี่ปุ่มที่จะใช้โดยเอ็นจิ้นการเลือกการผจญภัยของคุณเองนั้นเชื่อมต่อกันและใช้หมุดกราวด์ร่วมกัน
  2. หากปุ่มของคุณมีพินมากกว่าสองพิน ให้ใช้มัลติมิเตอร์เพื่อค้นหาว่าอันใดเหมาะสำหรับเชื่อมต่อพิน GPIO และกราวด์ ด้วยฟังก์ชันเสียง คุณจะได้ยินเสียงก็ต่อเมื่อคุณแตะหมุดสองตัวและปุ่มนั้นกำลังถูกกดอยู่ คุณสามารถทำการทดสอบความต่อเนื่อง คู่มือวิธีการใช้งานได้ที่ ifixit:
  3. ใช้ปุ่มเดียวแล้วใส่ลงในส่วนกล่อง ใช้สายจัมเปอร์หนึ่งเส้นแล้วตัดปลายด้านหนึ่ง ซึ่งจะทำให้คุณมีสายจัมเปอร์ที่มีปลายตัวเมียหนึ่งเส้น ใช้คีมปอกสายไฟเพื่อตัดส่วนที่แยกออกมาประมาณ 5 มิลลิเมตร บิดลวดที่หลวมเล็กน้อยเพื่อไม่ให้ลวดเส้นเดียวหลุดออกมา ใช้ดีบุกเล็กน้อยเพื่อเคลือบสายไฟให้สวยงาม หากคุณยังใหม่ต่อการบัดกรี มีหนังสือการ์ตูนสั้นเรื่องเยี่ยมที่สอนวิธีบัดกรีให้คุณ เรียกว่าบัดกรีได้ง่าย และ PDF มีให้บริการหลายภาษาที่ https://mightyohm.com/blog/2011/04/soldering-is-e… วัดและตัดท่อหดความร้อน ซึ่งคุณจะใช้เพื่อแยก ส่วนที่จะประสานปุ่มและสายจัมเปอร์เข้าด้วยกัน ดึงท่อหดความร้อนเหนือสายจัมเปอร์ ประสานสายจัมเปอร์เข้ากับหมุดตัวใดตัวหนึ่งบนปุ่ม
  4. ทำซ้ำขั้นตอนสุดท้ายสำหรับปุ่มทั้งหมด ตรวจสอบให้แน่ใจเสมอว่าได้ดึงท่อหดด้วยความร้อนเหนือสายจัมเปอร์ก่อนทำการบัดกรี เนื่องจากท่ออาจไม่พอดีกับขั้วต่อ
  5. ตอนนี้คุณจะเชื่อมต่อปุ่มปิดเครื่องและปุ่มรีสตาร์ท เราใช้ลวดทองแดงเคลือบ แต่เนื่องจากมันค่อนข้างยุ่ง ฉันขอแนะนำให้ใช้เปียแบบธรรมดา ตัดเปียบางเซนติเมตร เช่นเคย ให้รื้อออกโดยใช้เครื่องปอกสายไฟ แต่คราวนี้ใช้ปลายทั้งสองข้าง จากนั้นประสานปลายด้านหนึ่งเข้ากับหมุดของปุ่มปิดเครื่องหรือปุ่มรีสตาร์ท อีกครั้งให้ตัดท่อหดความร้อนเล็กน้อยแล้วดึงไว้เหนือเปีย
  6. ถัดไป คุณจะเชื่อมต่อสายถักเปียกับหมุดอิสระของอีกปุ่มหนึ่ง แต่คุณจะต่อสายจัมเปอร์อีกเส้นที่นี่ ซึ่งจะนำไปสู่กราวด์ เตรียมสายจัมเปอร์แบบเดียวกับที่ทำกับสายอื่นๆ รวมถึงท่อหดด้วยความร้อน ตอนนี้งอเปียเพื่อให้คุณสามารถประสานเข้ากับพินอิสระที่มาจากปุ่มที่หันไปทางปลายอิสระ จากนั้นประสานสายจัมเปอร์เข้ากับพินด้วย การบัดกรีสายถักเปียที่มาจากด้านหนึ่งและสายจัมเปอร์จากอีกด้านหนึ่งทำให้มั่นใจได้ว่าคุณสามารถดึงท่อหดด้วยความร้อนเหนือส่วนที่บัดกรีได้
  7. เชื่อมต่อปุ่มสี่ปุ่มที่ใช้สำหรับเอ็นจิ้นเกมด้วยการสร้างสะพานเล็กๆ ต้องแน่ใจว่าได้ดึงท่อหดด้วยความร้อนเหนือสายถักเปียก่อนทำการบัดกรี (และต้องแน่ใจว่าปุ่มของคุณอยู่ในตำแหน่งที่ถูกต้องก่อนที่จะเชื่อมต่อกัน) เมื่อเชื่อมต่อปุ่มสุดท้าย คุณควรเชื่อมต่อสายถักเปียจากด้านล่างและต่อสายจัมเปอร์ด้วย เช่นเดียวกับอีกสองปุ่มที่เหลือ
  8. การใช้ฟังก์ชันเสียงของมัลติมิเตอร์ทำให้คุณสามารถตรวจสอบว่าทุกอย่างเชื่อมต่อดีหรือไม่ สุดท้าย คุณควรตรวจสอบว่าท่อหดความร้อนทั้งหมดอยู่ในจุดที่ถูกต้องหรือไม่ จากนั้นคุณสามารถใช้ไฟแช็กหรือปืนลมร้อนเพื่อลดขนาดได้ ตอนนี้คุณประกอบปุ่มเสร็จแล้ว!

ขั้นตอนที่ 3: การตั้งค่าซอฟต์แวร์

การตั้งค่าซอฟต์แวร์
การตั้งค่าซอฟต์แวร์

คุณจะต้องการ:

  • Raspberry Pi ที่ติดตั้ง Raspbian (คุณควรจะใช้การแจกแจงแบบอื่นได้เช่นกัน แต่ต้องปรับคำสั่งบางอย่าง) – เราใช้แพ็คเกจที่ประกอบด้วย Raspberry Pi 3 รุ่น B+ พร้อมการ์ด SD ที่ติดตั้งไว้ล่วงหน้า แหล่งจ่ายไฟ และ เคสรุ่นอื่นก็น่าจะใช้ได้เช่นกัน
  • เครื่องพิมพ์ใบเสร็จ – โปรดทราบว่าคุณต้องเชื่อมต่อเครื่องพิมพ์กับ Raspberry Pi ดังนั้นการเชื่อมต่อผ่าน USB อาจง่ายที่สุด
  • ปุ่มของคุณ
  1. เชื่อมต่อ Raspberry Pi ของคุณกับหน้าจอ เมาส์ และคีย์บอร์ด คุณจะต้องเชื่อมต่อกับเครื่องพิมพ์และปุ่มต่างๆ ในที่สุด ต้องเชื่อมต่อปุ่มต่างๆ กับพิน GPIO เฉพาะ หากคุณต้องการใช้พินที่แตกต่างจากที่เราทำ คุณสามารถเปลี่ยนสิ่งนั้นได้ในโค้ด ในตอนนี้ รายการนี้จะบอกคุณว่าปุ่มใดจำเป็นต้องเชื่อมต่อกับพินใด ฉันจะใช้การนับ BCM ซึ่งใช้ในรหัสด้วย มีแผนภูมิที่ https://www.raspberrypi.org/documentation/usage/g… แสดงว่าพินใดมีหมายเลขใด

    • ปุ่มปิดเครื่อง – 17• ปุ่มรีสตาร์ท – 27 • ปุ่มแรกที่ใช้สำหรับตัวเลือกในเรื่อง/การผจญภัย – 5 • ปุ่มที่สอง – 6 • ปุ่มที่สาม – 13 • ปุ่มที่สี่ – 19 • สายจัมเปอร์สองเส้นที่เชื่อมต่อกับหมุดที่เชื่อมต่อทั้งหมด ปุ่มต้องลงไปที่พื้น – ในแผนภูมิที่มีจุดสีดำ

    เริ่ม Raspberry Pi โดยเสียบปลั๊กไฟ เชื่อมต่อ Raspberry Pi กับอินเทอร์เน็ตโดยใช้สาย LAN หรือเครือข่ายไร้สาย

  2. สิ่งแรกที่ต้องทำเมื่อติดตั้งซอฟต์แวร์ที่จำเป็นบน raspberry pi คือการอัปเดตซอฟต์แวร์ที่ติดตั้งไว้แล้ว เราจะทำสิ่งนี้โดยใช้เทอร์มินัล หากคุณใช้เทอร์มินัลเป็นครั้งแรก เอกสารประกอบของ Raspberry Pi (https://www.raspberrypi.org/documentation/usage/terminal/) จะช่วยให้คุณเคลื่อนไหวและทำความรู้จักกับสิ่งแวดล้อมได้ เปิดเทอร์มินัลแล้วพิมพ์ sudo apt update แล้วกด Enter การดำเนินการนี้จะอัปเดตรายการแพ็คเกจและเวอร์ชันที่พร้อมใช้งาน หลังจากนั้นพิมพ์ sudo apt upgrade การดำเนินการนี้จะติดตั้งเวอร์ชันใหม่กว่าของแพ็กเกจที่ติดตั้งไว้แล้ว
  3. การติดตั้งไดรเวอร์เครื่องพิมพ์เป็นขั้นตอนต่อไป การจัดการเครื่องพิมพ์ใน Linux สามารถทำได้โดยใช้ CUPS คุณอาจต้องติดตั้งบน Raspberry Pi ของคุณก่อน ในเทอร์มินัล พิมพ์ sudo apt install cups ขั้นตอนต่อไปคือการรับไดรเวอร์เครื่องพิมพ์ บางทีคุณอาจโชคดีและรวมอยู่ในที่เก็บข้อมูลอย่างเป็นทางการ ในเทอร์มินัล ใช้ apt search [ชื่อเครื่องพิมพ์หรือชื่อผู้ผลิต] เพื่อค้นหา เครื่องพิมพ์ส่วนใหญ่อาจไม่รวมอยู่ในที่เก็บ ดังนั้นคุณต้องรับจากที่อื่น อาจมีซีดีติดอยู่ที่เครื่องพิมพ์ ในเว็บไซต์ของผู้ผลิต ควรมีให้ดาวน์โหลดไดรเวอร์ล่าสุด ผู้ผลิตบางรายมีเว็บไซต์ที่แตกต่างกันสำหรับภูมิภาคต่างๆ ทั่วโลก และน่าเศร้าที่ทุกเว็บไซต์มีข้อมูลไม่เหมือนกัน หากคุณมีเครื่องพิมพ์ Star ดูเหมือนว่า starasia.com จะเป็นเว็บไซต์ที่มีไดรเวอร์ดาวน์โหลดใหม่ล่าสุด โปรดตรวจสอบว่าคุณดาวน์โหลดเครื่องพิมพ์สำหรับ Linux เราใช้ไดรเวอร์ CUPS ไม่ใช่ไดรเวอร์ JavaPOS
  4. ถัดไป คุณต้องติดตั้งไดรเวอร์ โปรดปฏิบัติตามคำแนะนำของผู้ผลิต อาจมีคู่มือซอฟต์แวร์สำหรับ Linux ซึ่งมีประโยชน์ โปรดปฏิบัติตามคำแนะนำสำหรับ Debian หรือ Ubuntu - มีลีนุกซ์รุ่นต่างๆ มากมายและไม่ใช่ทั้งหมดเหมือนกัน ดังนั้นโปรดตรวจสอบก่อนว่าคุณมีคำแนะนำที่ถูกต้องหรือไม่ ในคู่มือของเรา คำแนะนำเริ่มต้นโดยไม่ระบุว่ามีไว้สำหรับระบบที่ใช้ Red Hat และในหน้าถัดไปที่เราได้เรียนรู้ว่าคำแนะนำสำหรับระบบที่ใช้ Debian นั้นแตกต่างกัน คู่มือซอฟต์แวร์ควรระบุด้วยว่าต้องติดตั้งแพ็คเกจใด ตัวอย่างเช่น เราต้องติดตั้ง “libcups2-dev” คุณอาจต้อง sudo บางคำสั่ง เพื่อช่วยคุณไม่ให้ทำผิดซ้ำอีก: หากคุณต้องการคอมไพล์ไดรเวอร์จากซอร์สโค้ดโดยใช้ make - make install จะต้อง sudoed จากข้อความแสดงข้อผิดพลาดเราไม่สามารถทราบได้ว่ามีอะไรผิดพลาด
  5. หากไม่มีอยู่ในคู่มือการติดตั้ง คุณจะต้องตั้งค่าเครื่องพิมพ์เป็น CUPS โดยไปที่ localhost:631 ในเบราว์เซอร์ คลิกที่ "การดูแลระบบ" จากนั้นคลิก "เพิ่มเครื่องพิมพ์" เพื่อตั้งค่าเครื่องพิมพ์ นอกจากนี้ยังมีส่วนช่วยเหลือ คุณต้องตรวจสอบสิทธิ์ในฐานะผู้ใช้ โปรดดูรายละเอียดที่ https://help.ubuntu.com/lts/serverguide/cups.html… (ส่วน “เว็บอินเทอร์เฟซ”) เลือก ppd และขนาดกระดาษที่เหมาะสม คุณควรกำหนดให้เป็นเครื่องพิมพ์เริ่มต้น เนื่องจากซอฟต์แวร์จะพิมพ์ไปยังเครื่องพิมพ์เริ่มต้น โดยไปที่หน้าของเครื่องพิมพ์และจากเมนู "การดูแลระบบ" เลือก "ตั้งเป็นค่าเริ่มต้นของเซิร์ฟเวอร์" จากเมนู "การบำรุงรักษา" คุณสามารถเลือก "พิมพ์หน้าทดสอบ" เพื่อตรวจสอบว่าทุกอย่างได้รับการตั้งค่าอย่างถูกต้องหรือไม่
  6. แพ็คเกจอื่นที่คุณต้องการคือ python3-yaml เนื่องจากเรื่องราวจะถูกบันทึกในไฟล์ yaml และจำเป็นต้องใช้แพ็คเกจเพื่อให้โค้ด python สามารถตีความได้ ใช้ sudo apt install python3-yaml เพื่อติดตั้ง
  7. ในที่สุดเราจะเริ่มต้นด้วยการติดตั้งซอฟต์แวร์ที่พิมพ์เรื่องราวจริง ๆ และฟังอินพุตบนพิน GPIO ที่เชื่อมต่อกับปุ่มต่างๆ เปิดเทอร์มินัลแล้วไปที่โฮมไดเร็กทอรี หากคุณยังไม่มีอยู่ในนั้น (สามารถทำได้โดยพิมพ์ cd (สำหรับไดเร็กทอรีเปลี่ยน)) เนื่องจากโค้ดของเราอยู่บน GitHub คุณจึงคัดลอกไปที่ Raspberry Pi ได้โดยใช้ git clone https://github.com/fio-na/GrimmsKiste-1.git ซึ่งจะสร้างพื้นที่เก็บข้อมูลในเครื่องบน Raspberry Pi ของโค้ดของเรา หากคุณได้รับข้อความแสดงข้อผิดพลาดเนื่องจากไม่ได้ติดตั้ง git คุณสามารถติดตั้งได้โดยพิมพ์ sudo apt install git
  8. โค้ดมีองค์ประกอบบางอย่างที่คุณอาจต้องแก้ไข ก่อนอื่น เรื่องราวจะถูกบันทึกในไฟล์ yaml ซึ่งอยู่ในที่เก็บ git ด้วย หากเส้นทางไปยังโฟลเดอร์ของคุณไม่ใช่ “/home/pi/GrimmsKiste-1” คุณจะต้องเปลี่ยนเส้นทางเหล่านี้เพื่อใช้เรื่องราว ประการที่สอง เราพิมพ์โดยใช้กระบวนการย่อยและส่งคำสั่งเทอร์มินัล ซึ่งรวมถึงตัวเลือกบางตัวที่ใช้โดยไดรเวอร์เครื่องพิมพ์ของเรา ซึ่งช่วยให้เรากำหนดได้ว่ากระดาษจะถูกตัดหลังจากพิมพ์หรือไม่ สิ่งเหล่านี้อาจไม่ได้ผลสำหรับคุณ (เว้นแต่คุณจะใช้เครื่องพิมพ์ Star TSP ด้วย) คุณจะสังเกตเห็นว่าจะมีการพิมพ์จำนวนบรรทัดเพียงจุดเดียว เราต้องการสิ่งนี้ เพราะไม่เช่นนั้น บางส่วนของเรื่องราวจะไม่สามารถอ่านได้เพราะกระดาษยังติดอยู่ในเครื่องพิมพ์ และสุดท้ายในฟังก์ชัน format_text เราใช้ textwrap เพื่อรับส่วนข้อความที่มีความยาวไม่เกิน 28 อักขระ เพราะนั่นคือจำนวนที่พอดีในหนึ่งบรรทัดบนกระดาษ 80 มม. ของเรา โปรดปรับสิ่งเหล่านี้ให้เหมาะสมกับการตั้งค่าของคุณ
  9. ไฟล์บางไฟล์จำเป็นต้องทำให้ปฏิบัติการได้ ในการดำเนินการนี้ ให้ไปที่โฟลเดอร์ที่มีรหัสที่คุณเพิ่งดาวน์โหลด นี่ควรเป็น cd ~/GrimmsKiste-1 หากคุณทำตาม ในการอนุญาตไฟล์ Linux จะถูกจัดการโดย chmod chmod a+x Engin.py และ chmod a+x shutdown-pi-and-restart-program.py ทำให้ทั้งสองไฟล์สามารถเรียกใช้งานได้สำหรับผู้ใช้ทุกคน
  10. ตอนนี้ เราสามารถทดสอบว่าเครื่องยนต์สามารถทำงานได้และทำงานอย่างถูกต้องหรือไม่ และตั้งค่าเครื่องพิมพ์และปุ่มอย่างถูกต้องหรือไม่ พิมพ์./Engin.py เพื่อดำเนินการดังกล่าว
  11. หากทุกอย่างทำงานได้ดี ขั้นตอนต่อไปคือการตั้งค่าบริการ systemd สองรายการ สำหรับข้อมูลเพิ่มเติม หน้า archlinux wiki (https://wiki.archlinux.org/index.php/Systemd) อาจช่วยได้หรือ man page ของ systemd.service (https://www.freedesktop.org/software/systemd/ man/systemd.service.html) บริการ systemd แรกจะตรวจสอบทุก ๆ สองวินาที หาก Engin.py กำลังทำงานอยู่ และถ้าไม่ใช่บริการจะเริ่มขึ้น ดังนั้นจึงเริ่มโปรแกรมเมื่อบูท Raspberry Pi เปิดไฟล์ในโฟลเดอร์ systemd: sudo nano /etc/systemd/system/grimmskiste-restart.service พิมพ์ดังต่อไปนี้:
  12. [หน่วย]

    Description=รีสตาร์ท Grimms Kiste ทุก ๆ สองวินาทีถ้ามันล้มเหลว [Service] ExecStart=/home/pi/GrimmsKiste-1/Engin.py Restart=always RestartSec=2 [Install] WantedBy=multi-user.target

  13. คุณต้องแก้ไขพาธที่ ExecStart หาก Engin.py ของคุณอยู่ที่อื่น เช่น หากชื่อผู้ใช้ของคุณแตกต่างกัน หากต้องการบันทึกไฟล์ใน nano คุณต้องกด ctrl + x จากนั้นพิมพ์ y (ใช่) แล้วกด Enter
  14. บริการอื่นจะเริ่มต้นสคริปต์ shutdown-pi-and-restart-program.py ซึ่งฟังจากปุ่มปิดและรีสตาร์ท ปุ่มรีสตาร์ทจะอ่าน ID กระบวนการของ Engin.py จากไฟล์และฆ่ามัน และเนื่องจากบริการ systemd อื่น Engin.py จะรีสตาร์ทหลังจากผ่านไปสองวินาที ปุ่มปิดเครื่องเพียงแค่ส่งคำสั่งไปยัง Raspberry Pi ที่จะปิดเครื่องทันที เปิดไฟล์อื่นโดยใช้ sudo nano /etc/systemd/system/grimmskiste.service และพิมพ์ดังต่อไปนี้:
  15. [หน่วย]

    Description=ควบคุมปุ่มฮาร์ดแวร์สองปุ่มเพื่อปิด raspberry pi หรือเพื่อฆ่าโปรแกรมที่ทำงานอยู่ Grimms Kiste [Service] ExecStart=/home/pi/GrimmsKiste-1/shutdown-pi-and-restart-program.py [Install] WantedBy= multi-user.target

  16. อีกครั้ง คุณจะต้องแก้ไขพาธที่ ExecStart หากเส้นทางนั้นแตกต่างกับ Pi ของคุณ และอีกครั้ง คุณสามารถบันทึกไฟล์ใน nano โดยใช้ ctrl + x จากนั้นพิมพ์ y แล้วกด Enter
  17. ตอนนี้คุณมีไฟล์หน่วยสำหรับบริการ systemd แล้ว แต่ยังไม่ได้ใช้งาน เมื่อใดก็ตามที่คุณเปลี่ยนไฟล์หน่วย ให้พิมพ์ sudo systemctl daemon-reload ทำทันที จากนั้นเริ่มบริการทั้งสองโดยใช้ sudo systemctl start grimmskiste.service และ sudo systemctl start grimmskiste-restart.service สิ่งนี้จะเริ่มต้นบริการสำหรับตอนนี้ ใช้ sudo systemctl status grimmskiste.service และ sudo systemctl status grimmskiste-restart.service เพื่อตรวจสอบว่าเปิดใช้งานอยู่หรือไม่ ในผลลัพธ์ ควรมีบรรทัดที่มี "active (กำลังทำงาน)" ซึ่งอาจอยู่ในบรรทัดที่สาม - หากไม่ใช่ แสดงว่ามีบางอย่างผิดพลาด Journalctl อาจช่วยให้ข้อมูลการดีบักเพิ่มเติมได้
  18. การใช้ systemctl start จะเริ่มบริการเฉพาะในตอนนี้ แต่ถ้าคุณต้องการให้เริ่มทำงานทุกครั้งที่บูท Raspberry Pi คุณต้องเปิดใช้งาน ทำได้โดย sudo systemctl enable grimmskiste.service และ sudo systemctl enable grimmskiste-restart.service
  19. ตอนนี้คุณควรทดสอบปุ่มทั้งหมดว่าทุกปุ่มทำงานอย่างถูกต้องหรือไม่ ทดสอบปุ่มปิดเครื่องด้วยและตรวจสอบว่าทุกอย่างยังทำงานอย่างถูกต้องหลังจากรีบูตหรือไม่ ถ้าใช่ คุณไม่จำเป็นต้องมีหน้าจอ แป้นพิมพ์ ฯลฯ และโปรแกรมของคุณควรทำงานทุกครั้งที่คุณเสียบ Raspberry Pi เข้ากับซ็อกเก็ต

ขั้นตอนที่ 4: บทนำสู่ YAML:

ข้อมูลเบื้องต้นเกี่ยวกับ YAML
ข้อมูลเบื้องต้นเกี่ยวกับ YAML
ข้อมูลเบื้องต้นเกี่ยวกับ YAML
ข้อมูลเบื้องต้นเกี่ยวกับ YAML
ข้อมูลเบื้องต้นเกี่ยวกับ YAML
ข้อมูลเบื้องต้นเกี่ยวกับ YAML
ข้อมูลเบื้องต้นเกี่ยวกับ YAML
ข้อมูลเบื้องต้นเกี่ยวกับ YAML

สำคัญ: ต้องไม่เปลี่ยนชื่อฟิลด์ที่เป็นสีม่วง ชื่อของแต่ละรายการเป็นข้อยกเว้น แต่ละเรื่องจะมีไฟล์ YAML ของตัวเองพร้อมตัวเลือกทั้งหมด โครงสร้างเหมือนกับไฟล์ start.yaml

โคลอน: หากคุณต้องการใช้โคลอนในข้อความ คุณต้องสร้าง > หลังข้อความ จากนั้นข้อความจะลดลงหนึ่งบรรทัดและเยื้องด้วยบรรทัดว่างสองบรรทัด

แท็บ: อย่าใช้แท็บ และโปรดตรวจสอบให้แน่ใจว่าไม่มีแท็บที่ส่วนท้ายของข้อความ ซึ่งจะทำให้ parser ไม่สามารถอ่านไฟล์ได้

_default_question: คำถามที่ป้อนที่นี่จะถูกใช้หากไม่มีการป้อนฟิลด์ที่มี "คำถาม" ในประวัติ

_prompt: ฟิลด์นี้จะถูกพิมพ์ออกมาเมื่อผู้อ่านต้องทำรายการ

ทั้งสองฟิลด์อาจมีได้เพียงครั้งเดียวในไฟล์ start.yaml และไม่สามารถใช้ในไฟล์อื่นได้

start: start คือชื่อของรายการแรกของหน้าเริ่มต้น ต้องไม่ซ้ำชื่อในรายการอื่นทั้งหมด ในเทมเพลต ฟิลด์นี้เรียกว่า "ชื่อของเรื่องราว" และต้องเปลี่ยนสำหรับแต่ละเรื่อง

ข้อความ: ช่องนี้มีเรื่องราวและต้องอยู่ในบรรทัดเดียว คำถาม: ใช้เมื่อต้องการใช้คำถามอื่นที่ไม่ใช่ _default_question หากไม่ได้ใช้ฟิลด์นั้นจะต้องถูกลบ (ไม่จำเป็น)

การดำเนินการ: รายการ "การดำเนินการ" มีตัวเลือกการเลือก สามารถป้อนตัวเลือกได้สูงสุด 4 ตัวเลือกที่นี่ ป้ายกำกับ: พิมพ์ฉลากเป็นตัวเลือกการเลือก

ถัดไป: นี่คือชื่อของตัวเลือกการเลือกถัดไปที่จะเรียก

สิ้นสุด: รายการที่มีเพียงข้อความเท่านั้นที่ทำเครื่องหมายจุดสิ้นสุดของเรื่องราว การดำเนินการของฟิลด์ ป้ายกำกับ และรายการถัดไปจะต้องถูกลบออก

เพิ่มเรื่องราวเพิ่มเติม:

ตามที่อธิบายไว้ข้างต้น เรื่องราวใหม่แต่ละเรื่องจะมีไฟล์.yaml ของตัวเอง ในการดำเนินการนี้ ให้เปิดโฟลเดอร์ "Grimms Box" และคัดลอกไฟล์ template.yaml คุณยังค้นหาได้ใน GitHub repo ของเรา (https://github.com/fio-na/GrimmsKiste-1) เปลี่ยนชื่อไฟล์เป็น ชื่อเรื่องและเปิดมัน ในไฟล์ใหม่ คุณเพิ่มผู้ผลิตและวันที่และเปลี่ยนฟิลด์ "ชื่อของเรื่องราว" เป็นชื่อเรื่อง (ดูรูปที่ 4: ชื่อของเรื่องราวที่นี่คือ HP1). จากนั้นกรอกข้อความ คำถาม ป้ายกำกับ และถัดไป เมื่อคุณทำเสร็จแล้ว ให้คัดลอกโครงสร้างข้อมูล (ดังแสดงในรูปที่ 4) และวางลงด้านล่างของรายการถัดไป ชื่อเรื่องจะเปลี่ยนเป็นคีย์เดียวที่ใช้ใน "ถัดไป" ในส่วนแรก (ดังแสดงในรูปที่ 4 จากนั้น HP1 จะเป็น HP2 หรือ gang2 ขึ้นอยู่กับตัวเลือกที่จะแก้ไขก่อน) จากนั้นกรอกข้อความ คำถาม ป้ายกำกับ และถัดไปอีกครั้ง ทำเช่นนี้กับตัวเลือก/การดำเนินการทั้งหมดจนกว่าเรื่องราวทั้งหมดจะอยู่ในไฟล์ รายการสุดท้ายต้องมีเพียงข้อความเท่านั้น ฟิลด์อื่น ๆ ทั้งหมดในรายการสุดท้ายจะต้องถูกลบ หลังจากนั้นจะต้องบันทึกไฟล์

ขั้นตอนโดยย่อ:

  1. เปิดโฟลเดอร์กล่องกริมส์
  2. คัดลอก Vorlage.yaml และเปลี่ยนชื่อเป็นชื่อเรื่องของเรื่องราว
  3. เปิดไฟล์ใหม่นี้
  4. คัดลอกโครงสร้างข้อมูล (รูปที่ 4)
  5. เปลี่ยนชื่อจากประวัติเป็นชื่อการเลือก
  6. ป้อนข้อความของเรื่องราวในช่องข้อความ
  7. ใส่ฉลากที่เหมาะสม
  8. ป้อนชื่อของตัวเลือกการเลือกถัดไปในถัดไป
  9. ทำซ้ำขั้นตอนที่ 4 ถึง 9 จนกว่าเรื่องราวจะเสร็จสิ้น
  10. สิ้นสุดทั้งหมด: รายการสุดท้ายมีเพียงข้อความเท่านั้น
  11. บันทึกไฟล์.

เพิ่มเรื่องราวใหม่ของคุณในหน้าเริ่มต้น:

start.yaml เป็นหน้าเริ่มต้นสำหรับกล่องของกริมม์ อย่างไรก็ตาม ไฟล์นี้ต้องสามารถเข้าถึงเรื่องราวใหม่ได้ก่อน ดังนั้นจึงต้องเพิ่มเรื่องใหม่ลงในไฟล์นี้ก่อน

ต่อการกระทำ คุณสามารถสร้างป้ายกำกับได้ 4 ป้ายเท่านั้น ถัดไป เนื่องจากกล่องของ Grimm มีเพียง 4 ปุ่มให้เลือก ดังนั้น หากในตัวอย่างไฟล์ start.yaml มีป้ายกำกับ 4 รายการและฟิลด์ถัดไปแล้ว ป้ายกำกับที่ 4 จะต้องตั้งชื่อว่า "เรื่องราวเพิ่มเติม" หรือ "เพิ่มเติม" และโครงสร้างข้อมูลที่สอง (ที่นี่:S2 พร้อมข้อความ คำถาม, การดำเนินการ, ป้ายกำกับ, ถัดไป) ต้องต่อท้ายและเปลี่ยนชื่อ จากนั้นคุณเพิ่มเรื่องใหม่ด้วยป้ายกำกับและถัดไปและตั้งชื่อให้เหมาะสม สุดท้ายก็ต้องรอด

ขั้นตอนโดยย่อ:

ใน start.yaml:

  1. เปิด start.yaml
  2. กรอกข้อมูลในช่องให้ถูกต้อง
  3. ต้องคัดลอกและวางการดำเนินการของฟิลด์ ป้ายกำกับ และรายการถัดไป
  4. บันทึก.

รักษาไฟล์หลัก “Engin.py”:

สุดท้ายต้องเพิ่มเรื่องลงในไฟล์หลัก "Engin.py" สำหรับสิ่งนี้จะต้องป้อนเส้นทางไฟล์ของไฟล์ YAML ใหม่เท่านั้นในรายการไฟล์ เส้นทางนั้นอยู่ในเครื่องหมายคำพูดและแยกจากที่อื่นโดย เครื่องหมายจุลภาค

ขั้นตอนโดยย่อ:

  1. เปิด Engine.py
  2. คัดลอกเส้นทางไฟล์ของไฟล์ YAML
  3. คัดลอกพาธไปยังรายการไฟล์
  4. แยกเส้นทางด้วยเครื่องหมายจุลภาค

ขั้นตอนที่ 5: คำแนะนำสำหรับการใช้งาน

คำแนะนำสำหรับการใช้งาน
คำแนะนำสำหรับการใช้งาน

ในการเริ่มต้น Grimm's Box ให้เชื่อมต่อเครื่องพิมพ์กับ Raspberry Pi (มีรูเล็ก ๆ สำหรับสายเคเบิล) เสียบเครื่องพิมพ์และ Raspberry Pi เข้ากับซ็อกเก็ตแล้วเปิดเครื่องพิมพ์ Raspberry Pi เริ่มทำงานด้วยตัวเองเมื่อเสียบปลั๊ก รอให้บูตเครื่อง ซอฟต์แวร์ควรจะเริ่มทำงานด้วยตัวเอง

มีปุ่มสำหรับปิด Raspberry Pi และปุ่มสำหรับรีสตาร์ทซอฟต์แวร์สตอรี่ ในกรณีที่มีคนออกไปโดยที่เรื่องราวไม่จบ ต้องผลักทั้งคู่อย่างน้อย 3 วินาที เพื่อให้แน่ใจว่าจะไม่ถูกผลักโดยไม่ได้ตั้งใจ แต่คุณสามารถเปลี่ยนเวลาได้ในไฟล์ shutdown-pi-and-restart-program.py โปรดใช้ปุ่มปิดเครื่อง การถอดปลั๊กออกไม่เป็นผลดีสำหรับ Raspberry Pi ด้วยการตั้งค่าปัจจุบัน คุณไม่สามารถดูได้ว่า Raspberry Pi เปิดหรือปิดอยู่ ดังนั้นคุณต้องตรวจสอบว่ายังคงตอบสนองต่อปุ่มอื่นๆ อยู่หรือไม่ หากคุณต้องการให้แน่ใจ

การเริ่มโปรแกรมใหม่ต้องใช้เวลา เนื่องจากคุณต้องกดปุ่มอย่างน้อย 3 วินาที และกระบวนการในเบื้องหลังจะตรวจสอบทุก 2 วินาทีว่าโปรแกรมกำลังทำงานอยู่หรือไม่ ดังนั้นกระบวนการทั้งหมดจนกว่าจะพิมพ์ใหม่อีกครั้งอาจใช้เวลา 6 วินาที แค่ให้เวลาสักนิด ปุ่มรีสตาร์ทยังสามารถใช้ได้ หากเกิดปัญหาขึ้น บางทีการรีสตาร์ทอาจแก้ไขได้ หากไม่เป็นเช่นนั้น การเชื่อมต่อ Raspberry Pi กับหน้าจอ ฯลฯ และการเรียกใช้โปรแกรมจากเทอร์มินัลอาจสร้างข้อความแสดงข้อผิดพลาดที่คุณสามารถค้นหาบนอินเทอร์เน็ตได้ ต้องกดปุ่มที่ใช้สำหรับเรื่องราวอย่างน้อย 0.1 วินาที แต่หายากมากที่บางคนจะกดปุ่มน้อยกว่านั้น

หากเรื่องราวจบลง กระดาษจะถูกตัดและโปรแกรมจะเริ่มต้นใหม่โดยอัตโนมัติ แต่เพื่อให้ผู้อ่านมีเวลาอ่านตอนจบบ้าง ต้องรอ 3.5 วินาทีบวกกับอีก 2 วินาทีเพื่อสังเกตว่าโปรแกรมไม่ได้ทำงานและเริ่มต้นใหม่ 3.5 วินาทีสามารถแก้ไขได้ในไฟล์ Engin.py

ปุ่มที่กดน้อยกว่า 1.7 วินาทีหลังจากการกดครั้งสุดท้ายจะไม่ได้รับการยอมรับ เราใช้สิ่งนี้เพราะ Raspberry Pi เร็วกว่าเครื่องพิมพ์มาก และการกดปุ่มสองปุ่มจะส่งผลให้มีการเลือกการดำเนินการก่อนที่ผู้อ่านจะเห็นตัวเลือก