Съдържание:

Позиционен многофункционален куб часовник: 5 стъпки (със снимки)
Позиционен многофункционален куб часовник: 5 стъпки (със снимки)

Видео: Позиционен многофункционален куб часовник: 5 стъпки (със снимки)

Видео: Позиционен многофункционален куб часовник: 5 стъпки (със снимки)
Видео: "Дачный ответ" от 08.04.2018, "Кухня-гостиная в твидовом костюме" 2024, Ноември
Anonim
Image
Image
Позиционен многофункционален куб часовник
Позиционен многофункционален куб часовник
Позиционен многофункционален куб часовник
Позиционен многофункционален куб часовник

Проекти на Fusion 360 »

Това е часовник, базиран на Arduino, с OLED дисплей, който функционира като часовник с датата, като таймер за дрямка и като нощна лампа. Различните „функции“се управляват от акселерометър и се избират чрез завъртане на кубния часовник.

Исках нов часовник за нощно шкафче, но не исках да харча пари за луксозен часовник, който имаше много функции, които не бих използвал. Освен това събирах компоненти и сензори, които току -що лежаха наоколо, затова реших да ги използвам, за да си направя часовник!

Имах няколко цели за този проект:

  1. Показва това време с опция за изключване
  2. Включете функция за нощна светлина
  3. Включете 15 -минутен таймер за дрямка с аларма
  4. Възможност за показване на датата

Консумативи

  • Arduino Pro Mini 5V
  • ADXL335 3-осен акселерометър
  • DS3231 AT24C32 IIC прецизност Часовник в реално време
  • Мини високоговорител
  • OLED дисплей SSD1306 IIC 0.96in
  • 5V DC захранване
  • LED x 2
  • Резистори 220ohm x 2
  • Вал с постоянен ток DC
  • Тел
  • Инструменти

    • Резачки/стрипери за тел
    • Поялник/спойка
    • 3D принтер (по избор)
    • FTDI програмист за интерфейс между Pro mini и Arduino IDE

Стъпка 1: Прототип и тестване на веригата

Прототип и тестване на веригата
Прототип и тестване на веригата
Прототип и тестване на веригата
Прототип и тестване на веригата
Прототип и тестване на веригата
Прототип и тестване на веригата

Свържете компонентите към Arduino. Оформлението на схемата или схемата са показани по -горе. RTC и OLED използват I2C протокол за взаимодействие с Arduino и използване на A4 и A5 щифтове. Акселерометърът използва 3 аналогови щифта. Използвах A0, A1, A2. Светодиодите и Piezo могат да използват всеки от цифровите пинове, използвах съответно 4 и 8.

Интерфейс с всеки компонент. Трябваше да инсталирам някои библиотеки на Arduino, за да взаимодействам с всеки компонент. Те са показани на горното изображение.

Код с помощта на Arduino IDE. Прегледах някои примерни скици, предоставени от всяка библиотека, за да разбера правилния синтаксис за всеки компонент въз основа на това, което искам да направят. Измислих скица за всеки компонент, за да ги тествам поотделно. Те са предоставени по -долу. Започнах с пиезо високоговорителя, защото беше най -лесният. Всъщност не се нуждаеше от специална библиотека, а само от специфична функция, която задава честотата и звука. За да работят светодиодите, е необходимо само да издърпате един от цифровите щифтове високо и ниско. След това преминах към OLED и това също беше доста лесно за настройка. Скицата по -долу е демонстрация на Adafruit, която преминава през всички анимации/текстове, които могат да бъдат показани. След това се опитах да накарам RTC да работи. Скицата, която предоставих, беше част от пример в библиотеката, който получава текущото време и го отпечатва на серийния монитор. Накрая използвах предоставения пример за тестване на акселерометъра. Изходите на всяка ос се отпечатват на серийния монитор.

Сега е време да съберем всичко заедно!

Стъпка 2: Основна програма

Основна програма
Основна програма
Основна програма
Основна програма

Сега, когато знам, че всичко работи индивидуално, мога да започна да измислям програма, която обединява всичко. Ще обсъдя моя процес за писане на програмата по -долу, но не се колебайте просто да изтеглите пълния код по -долу, който да използвате за вашия собствен проект. Опитах се да оставя конкретни коментари, за да можете сами да преминете през кода.

Трябваше да покажа часа и датата на OLED, което беше доста просто. Просто трябваше да отпечатам текущото време на дисплея вместо на серийния монитор. Имаше няколко неща за форматиране, които трябваше да отчета, за да покаже 12 -часов формат вместо 24 и да добавя/премахва 0, където е подходящо. Датата беше подобна с добавянето на показване на месеца и деня в правоъгълниците, изчертани на екрана. Използвах вложен FOR цикъл, за да създам таймера и пуснах пиезото след края на цикъла. Реших да накарам екрана да мига, докато зумерът се изключваше, което беше основна анимация, взета от демонстрацията на Adafruit. Направих завъртането на куба обратно в часовника, като единственият начин да изключите зумера. И накрая, исках начин да изключа екрана, което беше постигнато само чрез изчистване на дисплея. Сега имах нужда от всички тези функции, за да работя въз основа на изходите на акселерометъра. Използвах скрипта Accel_Test, за да определя координатите на оста на всяка позиция, която исках да изпълнява всяка функция. Ръчно преместих чипа на акселерометъра и записах показанията на серийния монитор. Диаграмата по -горе дава изходните координати на всяка позиция в СИВ. Координатите в RED са границите между всяка позиция и аз използвах тези числа за моята програма. В четирите позиции на дисплея са необходими само координатите на оста X и Y. Петата позиция за нощната светлина използва оста Z. Използвах прости оператори IF за позициите на акселерометъра преди всеки функционален блок. Ако използвате различен акселерометър, тези координати могат да варират и ще трябва да бъдат коригирани в програмата.

Стъпка 3: 3D отпечатване на куба

3D отпечатване на куба
3D отпечатване на куба
3D отпечатване на куба
3D отпечатване на куба
3D отпечатване на куба
3D отпечатване на куба

Реших, че кубът ще бъде най -добрият дизайн, който да приспособи как искам часовникът да функционира. Използвах fusion360 за направата на модела. Имах нужда от изрез за OLED и жака. Исках също лесен достъп за смяна на клетъчната батерия в RTC, след като всичко беше свързано. Имах нужда от слот, за да поддържам Arduino в ориентация, която би била лесна за препрограмиране, ако е необходимо. Освен това корпусът трябваше да бъде лесно сваляем, за да мога да получа достъп до Arduino. Можете да видите CAD модела по -горе, а STL файловете са по -долу.

Отпечатах тялото в черен PLA с 20% пълнене, разделителна способност 0,2 мм.

Корпусът или втулката са отпечатани в гъвкава нишка Solutech със 100% пълнеж, разделителна способност 0,3 мм. Използвах този материал, защото има известна гъвкавост, която улеснява разтягането по тялото. Той също така има по -меко усещане при завъртане на часовника. И накрая, избрах чиста нажежаема жичка, така че светодиодите за нощните лампи да светят.

Стъпка 4: Монтаж

Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж

Свързах всичко заедно, използвайки схемата от Стъпка 1. Използвах малко парче перфорирана дъска, за да свържа всички обикновени проводници, така че да не се налага да запоявам няколко проводника към един щифт на Arduino. Беше използвано горещо лепило, за да се осигури всичко на съответното място, с изключение на Arduino. Току -що беше натиснато в определеното му гнездо. Уверих се, че платката на акселерометъра е перпендикулярна и равна в долната част на тялото, така че координатите в кода да не се налага да се променят.

Стъпка 5: Качете и сте готови

Качете и сте готови!
Качете и сте готови!
Качете и сте готови!
Качете и сте готови!
Качете и сте готови!
Качете и сте готови!
Качете и сте готови!
Качете и сте готови!

Сега окончателната програма може да бъде качена в часовника, за да зададете правилното време. Клетъчната батерия трябва да запазва времето дори когато захранването е изключено. Плъзнете 3D отпечатаната втулка по тялото, за да скриете всички компоненти и имате пълен часовник с куб!

Надявам се да ви хареса да правите този проект и да го намерите толкова полезен, колкото и аз. Хубавото на този проект е, че той е много персонализиран. Чувствайте се свободни да добавяте свои собствени различни функции като функция за аларма, да използвате различни компоненти като по -голям OLED, FM радио приемник и т.н.

Препоръчано: