INHOUDSOPGAWE:

Posisiegebaseerde multifunksionele kubusklok: 5 stappe (met foto's)
Posisiegebaseerde multifunksionele kubusklok: 5 stappe (met foto's)

Video: Posisiegebaseerde multifunksionele kubusklok: 5 stappe (met foto's)

Video: Posisiegebaseerde multifunksionele kubusklok: 5 stappe (met foto's)
Video: Opmerkelijke huisinnovatie en ingenieuze ontwerpideeën 2024, Julie
Anonim
Image
Image
Posisiegebaseerde multifunksionele kubusklok
Posisiegebaseerde multifunksionele kubusklok
Posisiegebaseerde multifunksionele kubusklok
Posisiegebaseerde multifunksionele kubusklok

Fusion 360 -projekte »

Dit is 'n Arduino -gebaseerde horlosie met 'n OLED -skerm wat funksioneer as 'n horlosie met die datum, as 'n middagslapie en as 'n naglig. Die verskillende "funksies" word deur 'n versnellingsmeter beheer en word gekies deur die kubushorlosie te draai.

Ek wou 'n nuwe nagklok hê, maar ek wou nie geld spandeer op 'n spoggerige horlosie met talle funksies wat ek nie sou gebruik nie. Verder het ek komponente en sensors versamel wat net daar lê, so ek het besluit om dit te gebruik om my eie horlosie te maak!

Ek het 'n paar doelwitte vir hierdie projek gehad:

  1. Wys daardie tyd met 'n opsie wat afgeskakel moet word
  2. Sluit 'n nagligfunksie in
  3. Sluit 'n dutjie van 15 minute met alarm in
  4. In staat wees om die datum te wys

Voorrade

  • Arduino Pro Mini 5V
  • ADXL335 3-as versnellingsmeter
  • DS3231 AT24C32 IIC presisie Real -time klok
  • Mini luidspreker
  • OLED Display SSD1306 IIC 0.96in
  • 5V DC kragbron
  • LED x 2
  • Weerstande 220ohm x 2
  • DC vat jack
  • Draad
  • Gereedskap

    • Draadsnyers/-stroppers
    • Soldeerbout/soldeer
    • 3D -drukker (opsioneel)
    • FTDI -programmeerder om tussen die Pro mini en die Arduino IDE te koppel

Stap 1: prototipe en toets die stroombaan

Prototipe en toets die stroombaan
Prototipe en toets die stroombaan
Prototipe en toets die stroombaan
Prototipe en toets die stroombaan
Prototipe en toets die stroombaan
Prototipe en toets die stroombaan

Koppel komponente aan die Arduino. Die broodborduitleg of skematika word hierbo getoon. Die RTC en OLED gebruik I2C -protokol om met die Arduino te koppel en gebruik die A4- en A5 -penne. Die versnellingsmeter gebruik 3 analoog penne. Ek het A0, A1, A2 gebruik. Die LED's en Piezo kan enige van die digitale penne gebruik, ek het onderskeidelik 4 en 8 gebruik.

Koppelvlak met elke komponent. Ek moes 'n paar Arduino -biblioteke installeer om met elke komponent te koppel. Hulle word in die prent hierbo getoon.

Kodeer met behulp van die Arduino IDE. Ek het 'n paar voorbeeldsketse deur elke biblioteek gesif om die regte sintaksis vir elke komponent te bepaal, gebaseer op wat ek wou hê hulle moes doen. Ek het 'n skets vir elke komponent gekry om dit individueel te toets. Hulle word hieronder verskaf. Ek het begin met die piëzo -luidspreker omdat dit die maklikste was. Dit het eintlik nie 'n spesiale biblioteek nodig nie, net 'n spesifieke funksie wat die frekwensie en klank bepaal. Om die LED's aan die werk te kry, was dit net nodig om een van die digitale penne hoog en laag te trek. Daarna het ek na die OLED gegaan, en dit was ook redelik eenvoudig om op te stel. Die onderstaande skets is 'n Adafruit -demo wat deur al die animasies/tekste gaan wat vertoon kan word. Toe probeer ek om die RTC aan die werk te kry. Die skets wat ek verskaf het, was deel van 'n voorbeeld in die biblioteek wat die huidige tyd kry en dit op die seriële monitor afdruk. Uiteindelik het ek die voorbeeld gebruik om die versnellingsmeter te toets. Die uitsette van elke as word op die seriële monitor gedruk.

Nou tyd om alles bymekaar te maak!

Stap 2: Hoofprogram

Hoofprogram
Hoofprogram
Hoofprogram
Hoofprogram

Noudat ek weet dat alles individueel werk, kan ek begin met 'n program wat alles bymekaar bring. Ek sal my proses vir die onderstaande program bespreek, maar laai die volledige kode hieronder af om dit vir u eie projek te gebruik. Ek het probeer om spesifieke kommentaar te lewer sodat u self deur die kode kan gaan.

Ek moes die tyd en datum op die OLED vertoon, wat redelik eenvoudig was. Ek moes net die huidige tyd op die skerm druk in plaas van die seriële monitor. Daar was 'n paar dinge wat ek moes formateer om 'n 12 -uur -formaat in plaas van 24 te laat vertoon en 0'e by te voeg/verwyder waar dit gepas was. Die datum was soortgelyk, met die byvoeging van die maand en dag binne die reghoeke wat op die skerm geteken is. Ek het 'n geneste FOR -lus gebruik om die timer te skep en die piezo na die einde van die lus af te sit. Ek het besluit om die skerm te laat flikker terwyl die gonser afgaan, 'n basiese animasie uit die Adafruit -demo. Ek het die kubus teruggedraai na die klokposisie, die enigste manier om die gonser uit te skakel. Uiteindelik wou ek 'n manier hê om die skerm uit te skakel, wat slegs gebeur het deur die skerm skoon te maak. Nou moes ek al hierdie funksies werk op grond van die versnellingsmeteruitsette. Ek het die Accel_Test -script gebruik om die as -koördinate van elke posisie wat ek wou hê dat elke funksie uitgevoer moet word, te bepaal. Ek het die versnellingsmeter -chip handmatig rondbeweeg en die aflees op die seriële monitor aangeteken. Die diagram hierbo gee die afvoerkoördinate van elke posisie in Grys. Die koördinate in ROOI is die grense tussen elke posisie en ek het die getalle vir my program gebruik. In die 4 vertoonposisies is slegs die koördinate van die X- en Y -as nodig. Die vyfde posisie vir die naglig gebruik die Z -as. Ek het eenvoudige IF -stellings gebruik vir die versnellingsmeterposisies voor elke funksieblok. As u 'n ander versnellingsmeter gebruik, kan hierdie koördinate verskil en moet dit in die program aangepas word.

Stap 3: 3D -druk van die kubus

3D -druk van die kubus
3D -druk van die kubus
3D -druk van die kubus
3D -druk van die kubus
3D -druk van die kubus
3D -druk van die kubus

Ek het gedink dat 'n kubus die beste ontwerp sou wees om aan te pas hoe ek wou hê dat die klok moes werk. Ek het fusion360 gebruik om die model te maak. Ek het 'n uitsny nodig gehad vir die OLED en die vataansluiting. Ek wou ook maklike toegang hê om die selfoonbattery in die RTC te vervang nadat alles bedraad was. Ek het 'n gleuf nodig gehad om die Arduino in 'n oriëntasie te hou wat maklik sou kon herprogrammeer indien nodig. Boonop moes die omhulsel maklik verwyderbaar wees sodat ek toegang tot die Arduino kan kry. U kan die CAD -model hierbo sien en die STL -lêers is hieronder.

Ek het die liggaam in swart PLA gedruk met 'n 20% -opvulling, 'n resolusie van 0,2 mm.

Die omhulsel of mou is gedruk in Solutech -buigsame filament met 'n 100% -opvulling, 0,3 mm -resolusie. Ek het hierdie materiaal gebruik omdat dit 'n mate van buigsaamheid het, wat dit maklik gemaak het om oor die liggaam te strek. Dit het ook 'n sagter gevoel as dit om die klok draai. Laastens het ek 'n helder gloeidraad gekies sodat die LED's vir die nagligte sou skyn.

Stap 4: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering

Ek het alles saamgevoeg met behulp van die skema van Stap 1. Ek het 'n klein stukkie perfboard gebruik om al die gewone drade aan te sluit, sodat ek nie veelvoudige drade aan een pen op die Arduino hoef te soldeer nie. Warm gom is gebruik om alles op sy onderskeie plek vas te maak, behalwe die Arduino. Dit is net in die aangewese gleuf gedruk. Ek het seker gemaak dat die versnellingsmeterbord loodreg en gelyk aan die onderkant van die liggaam is, sodat die koördinate in die kode nie hoef te verander nie.

Stap 5: Laai op en u is klaar

Laai op en jy is klaar!
Laai op en jy is klaar!
Laai op en jy is klaar!
Laai op en jy is klaar!
Laai op en jy is klaar!
Laai op en jy is klaar!
Laai op en jy is klaar!
Laai op en jy is klaar!

Nou kan die finale program op die klok gelaai word om die regte tyd in te stel. Die selfoonbattery behoort die tyd te hou, selfs as die krag afgesluit is. Skuif die 3D -gedrukte mou oor die liggaam om al die komponente te verberg, en u het 'n volledige kubushorlosie!

Ek hoop dat u dit geniet om hierdie projek te maak en dit net so nuttig vind as ek. Die goeie deel van hierdie projek is dat dit baie aanpasbaar is. Voeg u eie funksies soos 'n alarmfunksie by, gebruik verskillende komponente soos 'n groter OLED, FM -radio -ontvanger, ens.

Aanbeveel: