สารบัญ:

นาฬิกาคำสี่ตัวอักษรพร้อมตัวสร้างคำ Akafugu และวลีที่สร้างแรงบันดาลใจ: 3 ขั้นตอน
นาฬิกาคำสี่ตัวอักษรพร้อมตัวสร้างคำ Akafugu และวลีที่สร้างแรงบันดาลใจ: 3 ขั้นตอน

วีดีโอ: นาฬิกาคำสี่ตัวอักษรพร้อมตัวสร้างคำ Akafugu และวลีที่สร้างแรงบันดาลใจ: 3 ขั้นตอน

วีดีโอ: นาฬิกาคำสี่ตัวอักษรพร้อมตัวสร้างคำ Akafugu และวลีที่สร้างแรงบันดาลใจ: 3 ขั้นตอน
วีดีโอ: หากคุณถูกจู่โจมอย่างกะทันหันขณะนอนหลับในตอนเช้า ... ฉันยืนยันกับบุคคลนั้นและยิง 2024, พฤศจิกายน
Anonim
Image
Image
นาฬิกาคำสี่ตัวอักษรพร้อมตัวสร้างคำ Akafugu และวลีที่สร้างแรงบันดาลใจ
นาฬิกาคำสี่ตัวอักษรพร้อมตัวสร้างคำ Akafugu และวลีที่สร้างแรงบันดาลใจ
นาฬิกาคำสี่ตัวอักษรพร้อมตัวสร้างคำ Akafugu และวลีที่สร้างแรงบันดาลใจ
นาฬิกาคำสี่ตัวอักษรพร้อมตัวสร้างคำ Akafugu และวลีที่สร้างแรงบันดาลใจ

นี่คือนาฬิกา Four Letter Word Clock รุ่นของฉัน ซึ่งเป็นแนวคิดที่ถือกำเนิดขึ้นในปี 1970 นาฬิกาแสดงชุดคำสี่ตัวอักษรที่สร้างขึ้นจากอัลกอริธึมตัวสร้างคำแบบสุ่มหรือจากฐานข้อมูลของคำสี่ตัวอักษรที่เกี่ยวข้อง

เวอร์ชันนี้ใช้จอแสดงผล LED 14 ส่วนที่ทันสมัยกว่าและไมโครคอนโทรลเลอร์ Atmega 328p เพื่อแสดงคำและเวลา รองรับโหมดการสร้างคำสองโหมด วิธีแรกใช้อัลกอริทึมเพื่อสร้างกลุ่มคำสี่ตัวอักษรที่น่าจะเป็นคำจริง คล้ายกับต้นฉบับ คำที่ต่อเนื่องกันแต่ละคำไม่เกี่ยวข้องกับคำก่อนหน้า โหมดที่สองใช้ฐานข้อมูลคำเชิงสัมพันธ์จาก "Edinburgh Associative Thesaurus" ซึ่งเป็นเอกสารเกี่ยวกับความสัมพันธ์ของคำโดยอิงจากการตอบสนองของผู้คนในการถามคำแรกที่เข้ามาในความคิดหลังจากให้คำศัพท์เริ่มต้น จากนั้นจึงดำเนินการตามขั้นตอนด้วยคำตอบกลับ ฐานข้อมูลได้รับการดัดแปลงให้เข้ากับการสร้างคำสี่ตัวอักษรโดย Akafugu Corporation ผู้สร้างไฟล์ข้อมูล 57 Kbyte ที่จัดเก็บไว้ใน EEPROM ภายนอกสำหรับการประมวลผลโดย Atmega ผลที่ได้คือนาฬิกาใช้เวลา Unix เป็นเมล็ดสุ่มและสร้างสตริงของคำสี่ตัวอักษรที่เกี่ยวข้องตามการตอบสนองของมนุษย์ ไม่ใช่อัลกอริธึมบางอย่าง

หมายเหตุ: ฐานข้อมูลคำ Akafugu มีคำที่แสดงออกทางเพศอย่างโจ่งแจ้งและอาจไม่เหมาะสม หากสิ่งนี้ทำให้คุณไม่สบายใจ โปรดเปิดโหมดคำศัพท์แบบสุ่ม สิ่งนี้อาจสร้างคำที่ไม่เหมาะสม แต่อย่างน้อยก็จะไม่แสดงกระแสของคำที่ไม่เหมาะสมที่เกี่ยวข้อง!

"อรรถาภิธาน Edinburgh Associative Thesaurus" รวบรวมโดยอาศัยคำตอบจากผู้คนที่อาศัยอยู่ในอังกฤษในช่วงต้นทศวรรษ 60 ความสัมพันธ์ของคำสะท้อนถึงอคติอย่างแน่นอน! ตัวอย่างเช่น คำว่า "BEST" มักตามด้วย "PETE" ไม่มีการเชื่อมต่อที่ชัดเจนเว้นแต่จะมีใครรู้ว่า Pete Best เป็นมือกลองดั้งเดิมของ Beatles ในช่วงต้นยุค 60! อคติอื่น ๆ ต่อวัฒนธรรมของสหราชอาณาจักรในยุค 60 มีอยู่มากมาย ฉันคิดว่ามันน่าสนใจมากที่จะดู!

อุปกรณ์ยังมีโมดูลนาฬิกาเรียลไทม์แบบระบุตำแหน่ง I2C พร้อมแบตเตอรี่สำรองแบบชาร์จไฟได้ นาฬิกาแสดง 5 คำจากหนึ่งในสองอัลกอริธึมที่เลือกได้ จากนั้นจะแสดงเวลา วันที่ วันในสัปดาห์และปี นาฬิกาและโหมดการทำงานถูกตั้งค่าโดยใช้สวิตช์ปุ่มกดสามปุ่ม โหมดการทำงานจะถูกเก็บไว้ใน EEPROM แบบไม่ลบเลือนและรอดจากการรีเซ็ตหรือไฟฟ้าขัดข้อง RTC ยังคงทำงานต่อไปเป็นเวลาประมาณหนึ่งปีหลังจากที่ไฟฟ้าถูกถอดออก โดยมีความแม่นยำในการชดเชยอุณหภูมิอย่างสูง เวลาที่ถูกต้องจะแสดงขึ้นโดยอัตโนมัติเมื่อเปิดเครื่อง

คุณลักษณะเพิ่มเติมคือ 107 ใบเสนอราคาเกี่ยวกับเวลาที่จะแสดงแบบสุ่มทุกๆ 10 นาที คำพูดเหล่านี้เลื่อนจากขวาไปซ้ายผ่านอักขระทั้งสี่ตัว ให้กำลังใจและแรงบันดาลใจบ่อยครั้ง! การจัดเก็บวลีอยู่ใน EEPROM ภายนอกด้วยฐานข้อมูลคำ Akafugu databse ใช้เพียง 57 Kbytes จาก 64 Kbytes ที่มีอยู่ในอุปกรณ์ ทำให้เหลือที่ว่างสำหรับ 107 วลี วลี "โม้" จะแสดงเป็นประโยคแรกเสมอเมื่อเปิดนาฬิกาครั้งแรกในช่วงเวลา 10 นาทีถัดไป

หน่วยนี้ใช้จอแสดงผล 14 ส่วนทั่วไป (2 แคโทดสำหรับแต่ละหลัก) ที่มัลติเพล็กซ์โดยรูทีนบริการขัดจังหวะตัวจับเวลาซึ่งส่งผลให้จอแสดงผลสี่อักขระได้รับการรีเฟรชที่ 100 Hz เมื่อใดก็ตามที่ ISR ทำงาน มันจะปิดครึ่งอักขระก่อนหน้า ดึง 7 จาก 14 ส่วนสำหรับหนึ่งในสี่อักขระ เปิดพินของเซ็กเมนต์ที่สอดคล้องกัน และกราวด์แคโทดที่สอดคล้องกัน จอแสดงผลค่อนข้างแปลก แต่ฉันมีอุปทานส่วนเกินจำนวนมากที่ฉันต้องการใช้ แคโทดทั่วไปแบบคู่ลดจำนวนพินที่ต้องการต่อหลักจาก 15 เป็น 9 มีพินเพียงพอบน Atmega 328p ที่จะอนุญาตให้ขับตรงของจอแสดงผลโดยไม่ต้องลงทะเบียนกะ

สิ่งที่ต้องทำ: แก้ไขโค้ดเพื่อใช้โมดูล LED ตัวอักษรและตัวเลข 4 ตัวของ Adafruit

ขั้นตอนที่ 1: ประวัติศาสตร์

ประวัติศาสตร์
ประวัติศาสตร์
ประวัติศาสตร์
ประวัติศาสตร์
ประวัติศาสตร์
ประวัติศาสตร์
ประวัติศาสตร์
ประวัติศาสตร์

นาฬิกา FLW ดั้งเดิมถูกสร้างขึ้นด้วยหลอดนีออนส่วนเกินพร้อมตัวเลขและตัวอักษร Burroughs B7971 ขนาดใหญ่ ซึ่งเก็บมาจากบอร์ดแสดงสัญลักษณ์หุ้นที่เลิกใช้งานแล้ว สิ่งเหล่านี้คล้ายกับหลอดนิกซีที่เป็นตัวเลขในยุคนั้น แต่ใช้การแสดงผล 14 ส่วนเพื่อสร้างอักขระ ASCII ทั้งหมด นาฬิกาใช้ตรรกะที่ไม่ต่อเนื่อง โดยเลือกตัวอักษรจากตารางเพื่อสร้างชุดตัวอักษรสี่ตัวแบบสุ่มซึ่งมีน้ำหนักเพื่อให้สร้างคำจริงได้

ด้วยอัลกอริธึม ในรุ่นดั้งเดิมปี 1972 มีเพียงตัวอักษรบางตัวเท่านั้นที่ปรากฏในแต่ละตำแหน่ง ทำการวิเคราะห์คำที่มีตัวอักษรสี่ตัวหลายร้อยคำโดยใช้ตารางด้วยมือและนับความถี่ของตัวอักษรในแต่ละตำแหน่งทั้งสี่ ใช้ตัวอักษรที่ใช้บ่อยที่สุดสิบตัวของแต่ละตำแหน่ง ยกเว้นในตำแหน่งที่สองซึ่งมีตัวอักษรเพียงแปดตัว

สำหรับแต่ละตำแหน่ง ตัวนับ BCD (0-9) แบบธรรมดา (74LS90 IC) จะทำงานอย่างอิสระ และการนับจะถูกจับและค้างไว้ทุกๆ สองสามวินาทีถึงหนึ่งครั้งต่อนาที ขึ้นอยู่กับการตั้งค่าความเร็ว จากนั้นจึงนำสแน็ปช็อตตัวนับไปใช้กับเมทริกซ์ถอดรหัสไดโอด (ใช้ไดโอดประมาณ 150 ตัว) เพื่อสร้างอักขระ

เนื่องจากแต่ละตำแหน่งเลือกตัวอักษรที่พบบ่อยที่สุดเพียงสิบ (หรือแปดตัว) โดยไม่คำนึงถึงการผสมตัวอักษร จึงอาจมีคำที่ไม่ใช่คำจำนวนมากปรากฏขึ้น เช่น FRLR, LREE, LLLL เป็นต้น

โปรดทราบว่าตำแหน่งที่สองมีตัวอักษรเพียงแปดตัว เนื่องจากตัวอักษรที่เก้าและสิบในกลุ่มตัวอย่างมีความถี่ต่ำตามสัดส่วน ในขณะที่ตัวแรกและตัวที่สองมีความถี่สูงมาก จึงเพิ่มเป็นสองเท่า ดังนั้น 10 x 8 x 10 x 10 = 8000 พีชคณิต ตัวอักษรที่ถูกตั้งโปรแกรมไว้ในโมเดลปี 1973 ตัวแรกจะแสดงอยู่ในภาพใดภาพหนึ่งด้านบน

ขั้นตอนที่ 2: รหัสและแผนผัง

รหัสและแผนผัง
รหัสและแผนผัง
รหัสและแผนผัง
รหัสและแผนผัง
รหัสและแผนผัง
รหัสและแผนผัง
รหัสและแผนผัง
รหัสและแผนผัง

แนบแผนผังแล้ว

นาฬิกาสามารถสร้างขึ้นโดยใช้ Arduino ที่ใช้ Atmega 328p

สำหรับใช้กับ Atmega 328p แบบสแตนด์อโลน ดังที่แสดงในแผนผัง ต้องใช้โปรแกรมเมอร์ ISP เพื่อตั้งโปรแกรมไมโครคอนโทรลเลอร์ผ่าน Arduino IDE หลังจากตั้งโปรแกรม ฟิวส์ควรตั้งค่าโดยใช้คำสั่ง avrdude ต่อไปนี้ (ต้องติดตั้ง WinAVR) แทนที่พอร์ต com และประเภทโปรแกรมเมอร์ วิธีที่ง่ายที่สุดคือการใช้ Arduino เป็นโปรแกรมเมอร์ ISP Google สำหรับรายละเอียด

avrdude -c arduino -P com13 -b 19200 -p atmega328p -U lfuse:w:0xFF:m -U hfuse:w:0xDF:m -U efuse:w:0x05:m

การตั้งค่าเหล่านี้ปิดใช้งานเวกเตอร์การรีเซ็ต bootloader ดังนั้นโค้ดจะเริ่มจากเวกเตอร์โค้ดหลักทันที ฟิวส์ยังถูกตั้งค่าไว้สำหรับออสซิลเลเตอร์ภายนอก 16MHz เมื่อเผาไหม้แล้ว คุณจะไม่สามารถตั้งโปรแกรมชิปได้อีกจนกว่าจะเชื่อมต่อคริสตัลและตัวเก็บประจุตามที่แสดงในแผนผัง เนื่องจากออสซิลเลเตอร์ภายในเริ่มต้นถูกปิดใช้งานด้วยการตั้งค่าฟิวส์เหล่านี้

ต้องติดตั้งไลบรารี DS3231 Arduino เพื่อให้สามารถเข้าถึงรูทีนนาฬิกา RTC จำเป็นต้องเปิดใช้งานการสนับสนุนเวลา Unix ในไลบรารีโดยยกเลิกการใส่เครื่องหมายบรรทัด "#define CONFIG_UNIXTIME" ในไฟล์ config.h ไลบรารี DS3231 RTC เวลา Unix ถูกใช้เป็นเมล็ดพันธุ์สำหรับตัวสร้างตัวเลขสุ่มเพื่อไม่ให้ลำดับคำและวลีซ้ำกันทุกครั้งที่มีการขับเคลื่อนนาฬิกา

โมดูลนาฬิกา DS3231 RTC นั้นเป็นรุ่นทั่วไปที่ขายบนอีเบย์ โมดูลแสดงไว้ด้านบน มองหาประเภทที่มีแบตเตอรี่สำรองแบบชาร์จไฟได้

นอกจากไมโครคอนโทรลเลอร์ที่ตั้งโปรแกรมไว้แล้ว ยังจำเป็นต้องจัดหาและตั้งโปรแกรม EEPROM อนุกรมของ Microchip 24LC512 ด้วยฐานข้อมูลคำและรายการวลีของ Akafugu ทำได้โดยใช้วงจรง่ายๆ ที่สร้างด้วย Arduino และการ์ด SD ที่ฟอร์แมตเป็น FAT32 พร้อมไฟล์ output2.dat สเก็ตช์อ่านข้อมูลจากการ์ด SD และเขียนลงใน EEPROM สามารถดูรายละเอียดได้จากสองลิงค์ต่อไปนี้ อย่าลืมใช้ภาพร่างการเขียนโปรแกรมและไฟล์ข้อมูลในคำแนะนำนี้ เนื่องจากลิงก์ที่ Akafugu ไม่มีฐานข้อมูลวลี ทำตามขั้นตอนในลิงค์

ภาพรวมฐานข้อมูล Akafugu FLW

คำแนะนำในการเบิร์นไฟล์ข้อมูลไปยัง EEPROM

ขั้นตอนที่ 3: ตั้งค่านาฬิกาและควบคุม

ปุ่มผสมต่อไปนี้ใช้สำหรับการตั้งค่านาฬิกา:

ตั้งค่าชั่วโมง: กดปุ่ม 1 ค้างไว้ระหว่างการทำงานปกติ

ตั้งค่านาที: กดปุ่ม 2 ค้างไว้ระหว่างการทำงานปกติ วินาทีจะถูกรีเซ็ตเป็น "00" โดยอัตโนมัติ

วินาทีรีเซ็ตเป็นศูนย์: กดปุ่ม 3 ค้างไว้ระหว่างการทำงานปกติ ปล่อยเพื่อซิงโครไนซ์กับการเริ่มต้นนาทีใหม่

ตั้งเดือน: กดปุ่ม 1 และ 2 พร้อมกันระหว่างการทำงานปกติ

ตั้งวันที่: กดปุ่ม 1 และ 3 พร้อมกันระหว่างการทำงานปกติ

ตั้งปี: กดปุ่ม 2 และ 3 พร้อมกันระหว่างการทำงานปกติ

ตั้งค่าวันของสัปดาห์: กดปุ่ม 1, 2 และ 3 ค้างไว้พร้อมกันระหว่างการทำงานปกติ

เมื่อเปิดเครื่องครั้งแรก โหมดการทำงานจะแสดงอย่างรวดเร็วก่อนเริ่มสร้างคำ:

"EE" หมายถึง EEPROM ภายนอก I2C ที่มีฐานข้อมูลคำ Akafugu และรายการวลีได้รับการตรวจพบ

"NOEE" หมายความว่าตรวจไม่พบ EEPROM หน่วยจะเปลี่ยนกลับเป็นการสร้างคำแบบสุ่มและไม่มีการแสดงวลี

"CK" หมายถึง เวลาและวันที่จะแสดงหลังจากแสดง 5 คำต่อเนื่องกัน

"NOCK" หมายถึงเวลา/วันที่ถูกปิด กระแสคำที่สม่ำเสมอจะแสดงอย่างต่อเนื่อง ขัดจังหวะทุก 10 นาทีด้วยวลี

"RND" หมายถึงใช้โหมดการสร้างคำแบบสุ่ม

"REL" หมายถึงโหมดการสร้างฐานข้อมูลคำ "Akafugu" เชิงสัมพันธ์ที่ใช้

หากต้องการเปลี่ยนและบันทึกโหมด ให้ถอดปลั๊กนาฬิกาแล้วเสียบกลับเข้าไปใหม่โดยกดปุ่มใดปุ่มหนึ่งที่ระบุ แล้วปล่อยปุ่ม โหมดใหม่ถูกจัดเก็บและแสดง:

ปุ่ม 1: สลับและบันทึกโหมดการสร้างคำแบบสุ่มหรือเชิงสัมพันธ์

ปุ่ม 2: สลับการแสดงวันที่/เวลาหลังจากเปิดหรือปิดคำที่ต่อเนื่องกัน 5 คำ

แนะนำ: