فهرست مطالب:
تصویری: ساعت چهار حرفی با واژه ساز Akafugu و عبارات الهام بخش: 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
این نسخه من از ساعت چهار حرفی کلمه است ، ایده ای که در دهه 1970 ایجاد شد. ساعت مجموعه ای از کلمات چهار حرفی را نشان می دهد که از الگوریتم تولید کننده کلمات تصادفی یا از پایگاه داده ای از کلمات چهار حرفی مرتبط تولید شده است.
این نسخه از نمایشگرهای LED 14 بخش مدرن تر و میکروکنترلر Atmega 328p برای نمایش کلمات و زمان استفاده می کند. دو حالت تولید کلمه پشتیبانی می شود. اولین مورد از یک الگوریتم برای ایجاد گروه های کلمه ای چهار حرفی استفاده می کند که احتمالاً کلمات واقعی هستند ، شبیه به اصل. هر کلمه متوالی با کلمه قبلی بی ارتباط است. حالت دوم از پایگاه داده واژه های رابطه ای از "اصطلاح نامه ادغام ادینبورگ" استفاده می کند ، سند ارتباط کلمات بر اساس پاسخ افراد به درخواست اولین کلمه ای که پس از ارائه یک کلمه بذری به ذهن می رسد ، و سپس با کلمه پاسخ روند را ادامه می دهد. پایگاه داده با ایجاد کلمه چهار حرفی توسط شرکت Akafugu سازگار شد ، که یک فایل داده 57 کیلوبایتی ایجاد کرد که در پردازشگاه Atmega در یک EEPROM خارجی ذخیره می شود. نتیجه این است که ساعت از زمان یونیکس به عنوان یک دانه تصادفی استفاده می کند و یک رشته از کلمات چهار حرفی مرتبط را بر اساس پاسخ های انسان تولید می کند ، نه برخی الگوریتم ها.
توجه: پایگاه داده کلمات آکافوگو حاوی برخی واژه های واضح جنسی و به طور بالقوه توهین آمیز است. اگر این موضوع شما را ناراحت می کند ، لطفاً حالت کلمه تصادفی را روشن کنید. این ممکن است برخی از کلمات توهین آمیز را ایجاد کند ، اما حداقل جریان کلمات توهین آمیز مرتبط را نمایش نمی دهد!
"اصطلاحنامه انجمنی ادینبورگ" بر اساس پاسخ افرادی که در اوایل دهه 60 در انگلستان زندگی می کردند ، تدوین شد. واژه روابط قطعاً منعکس کننده این تعصب است! به عنوان مثال ، کلمه "BEST" اغلب با "PETE" دنبال می شود. هیچ ارتباط مشخصی وجود ندارد ، مگر اینکه کسی بداند که پیت بست درامر اصلی گروه بیتلز در اوایل دهه 60 بوده است! تعصبات دیگر نسبت به فرهنگ دهه 60 در انگلستان فراوان است. به نظر من تماشای آن بسیار جالب است!
این دستگاه همچنین دارای یک ماژول ساعت واقعی آدرس دهی I2C با پشتیبان گیری باتری قابل شارژ است. ساعت 5 کلمه از یکی از دو الگوریتم قابل انتخاب را نمایش می دهد ، سپس زمان ، تاریخ ، روز هفته و سال را نمایش می دهد. ساعت و حالت های عملکرد با استفاده از سه کلید فشاری تنظیم می شوند. حالت های عملکرد در EEPROM غیر فرار ذخیره می شوند و در صورت بازنشانی یا قطع برق زنده می مانند. RTC پس از قطع برق حدود یک سال به کار خود ادامه می دهد ، با دقت فوق العاده جبران شده دما. زمان صحیح به طور خودکار با بازگرداندن قدرت نمایش داده می شود.
یک ویژگی اضافه شده 107 نقل قول در مورد زمان است که به طور تصادفی هر 10 دقیقه نمایش داده می شود. این نقل قول ها از چهار به راست به چپ حرکت می کنند و باعث تشویق و الهام مکرر می شوند! ذخیره سازی عبارات در EEPROM خارجی با پایگاه داده کلمه Akafugu است. پایگاه داده تنها 57 کیلوبایت از 64 کیلوبایت موجود در دستگاه را می گیرد و فضا را برای 107 عبارت باقی می گذارد. یک عبارت "brag" همیشه اولین موردی است که هنگام روشن شدن ساعت در فاصله 10 دقیقه بعدی نمایش داده می شود.
این واحد از نمایشگرهای مشترک 14 قسمتی کاتد (2 کاتد برای هر رقم) استفاده می کند که توسط یک روال معمولی سرویس وقفه زمان سنج چند برابر شده و در نتیجه صفحه نمایش چهار کاراکتری در 100 هرتز تجدید می شود. هر زمان که ISR اجرا شود ، نیم نویسه قبلی را خاموش می کند ، 7 قسمت از 14 قسمت را برای یکی از چهار کاراکتر بازیابی می کند ، پین های مربوطه را روشن می کند و کاتد مربوطه را محکم می کند. نمایشگرها کمی غیرمعمول هستند ، اما منبع مازاد زیادی داشتم که می خواستم از آن استفاده کنم. کاتد دوگانه مشترک تعداد پین های مورد نیاز در هر رقم را از 15 به 9 کاهش می دهد. فقط تعداد کافی پین در Atmega 328p وجود دارد که امکان حرکت مستقیم صفحه نمایش بدون ثبت تغییر را فراهم می کند.
TO-DO: کد را تغییر دهید تا از ماژول LED الفبایی عددی 4 کاراکتری Adafruit استفاده کنید
مرحله 1: تاریخچه
ساعت اصلی FLW با لوله های مازاد نئون الفبایی عددی Burroughs B7971 ساخته شده است که از تابلوهای نمایش تیکتر سهام خارج شده خارج شده اند. اینها شبیه لوله های عددی نیکسی آن زمان هستند ، اما از یک صفحه نمایش 14 قسمتی برای تشکیل همه کاراکترهای ASCII استفاده کردند. ساعت از منطق گسسته استفاده می کرد و حروف را از یک جدول انتخاب می کرد تا چهار ترکیب تصادفی را تشکیل دهد که وزن آنها احتمالاً کلمات واقعی را تولید می کرد.
با الگوریتم در مدل اصلی 1972 ، فقط حروف خاصی در هر موقعیت ظاهر می شود. تجزیه و تحلیل جدول چند صد کلمه چهار حرفی انجام شد و فرکانس حروف در هر یک از چهار موقعیت شمارش شد. از ده حرف متداول هر موقعیت استفاده شد ، به جز در موقعیت دوم که فقط شامل هشت حرف بود.
برای هر موقعیت ، یک شمارنده ساده BCD (0-9) (یک IC 74LS90) آزادانه اجرا می شود و شمارش بسته به سرعت تنظیم می شود و هر چند ثانیه تا یک بار در دقیقه شمارش می شود. سپس عکس فوری شمارنده روی ماتریس رمزگشایی دیود (با استفاده از حدود 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 استفاده کنید. برای جزئیات بیشتر به گوگل مراجعه کنید.
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 را غیرفعال می کند تا کد بلافاصله از بردار کد اصلی شروع شود. فیوزها نیز برای یک نوسان ساز خارجی 16 مگاهرتز تنظیم شده اند. پس از سوزاندن ، تا زمانی که کریستال و خازن ها مانند شکل زیر متصل نشوند ، نمی توانید تراشه را دوباره برنامه ریزی کنید ، زیرا نوسان ساز داخلی پیش فرض با این تنظیمات فیوز غیرفعال می شود.
کتابخانه DS3231 Arduino باید برای دسترسی به روالهای ساعت RTC نصب شود. لازم است پشتیبانی از زمان Unix را در کتابخانه با اظهار نظر در مورد خط "#define CONFIG_UNIXTIME" در فایل DS3231 RTC Library config.h فعال کنید. زمان یونیکس به عنوان دانه ای برای مولد اعداد تصادفی مورد استفاده قرار می گیرد تا توالی کلمات و عبارت ها هر بار که ساعت روشن می شود تکرار نشوند.
ماژول ساعت DS3231 RTC خود یک نوع رایج است که در ebay فروخته می شود. ماژول در بالا نشان داده شده است. به دنبال نوع باتری پشتیبان قابل شارژ باشید.
علاوه بر یک میکروکنترلر برنامه ریزی شده ، همچنین لازم است یک Microchip 24LC512 سریال EEPROM با پایگاه داده کلمات و لیست عبارات آکافوگو تهیه و برنامه ریزی شود. این کار با استفاده از یک مدار ساده ساخته شده با 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 کلمه متوالی روشن یا خاموش کنید
توصیه شده:
شبیه ساز بازی DIY RACING -- شبیه ساز F1: 5 مرحله
شبیه ساز مسابقه DIY || شبیه ساز F1: سلام به همه به کانال من خوش آمدید ، امروز قصد دارم به شما نشان دهم که چگونه یک & quot؛ شبیه ساز مسابقه بازی & quot؛ با کمک Arduino UNO. این یک وبلاگ ساخت نیست ، فقط مروری و آزمایش شبیه ساز است. ساخت کامل وبلاگ به زودی
ساعت روزانه الهام گرفته از جفرسون: قرنطینه نسخه: 5 مرحله
ساعت روزانه الهام گرفته از جفرسون: نسخه قرنطینه: در زمان انتشار ، من سی و سه روز در قرنطینه مربوط به COVID-19 گیر کرده ام. من دارم از زمان عادی بدون چسبندگی شروع می کنم - هر روز بسیار شبیه به روز گذشته است ، و تأثیر کمی روی حافظه من می گذارد. به طور خلاصه ، من نمی توانم
ساعت زنگ دار با صدای بلند با الهام از بمب تایم با فقط 5 جزء: 3 مرحله
ساعت زنگ دار با صدای بلند با الهام از بمب Time Time با 5 جزء: من این ساعت زنگ دار با قابلیت ساخت Time Bomb را ایجاد کردم که تضمین می شود شما را صبح ها بیدار کند. من از مواد ساده ای استفاده می کردم که در خانه من وجود داشت. همه اقلام مورد استفاده به راحتی در دسترس و ارزان هستند. این بمب ساعتی باعث ایجاد زنگ خطر شد
Ornithopter و موسیقی الهام بخش آردوینو: 7 مرحله
Ornithopter و موسیقی الهام بخش آردوینو: - چگونه می توان یک Ornithopter ساخت - چگونه می توانیم بازی کنیم Fix you and We Are the Champion در آردوینو
ساعت واژه DIY: 10 مرحله (همراه با تصاویر)
DIY Word Clock: امروز ، من به شما نحوه ساخت یک ساعت Word را نشان خواهم داد. در اصل یک ساعت است که زمان را با استفاده از کلمات نمایش می دهد. همچنین نحوه استفاده از Shift Register و RTC با استفاده از میکروکنترلر را به شما نشان خواهم داد. در صورت تمام شدن پین ها ، Shift Register می تواند بسیار مفید باشد