Toon posts:

[el-contest / juli] ScrapClock

Pagina: 1
Acties:

  • Anthor
  • Registratie: juni 2002
  • Niet online
Ik heb het at90usb bordje waar ik iets mee wilde gaan doen opzij geschoven (omdat me het niet helemaal haalbaar leek in de korte tijd) en een klok gemaakt.
Jammer dat virus.elektro ongeveer hetzelfde idee had :(

Foto1
Foto2

meer info volgt nog.

misschien is dit een spek en bonen inzending omdat het gebaseerd is op een eerdere klok die geprobeerd heb te maken

  • oddish2211
  • Registratie: januari 2007
  • Laatst online: 15:16
dan kijken we toch gewoon bij wie het resultaat het mooist is?

  • Anthor
  • Registratie: juni 2002
  • Niet online
Hier is dan de post met de info over mijn inzending

ScrapClock

Het concept
Mijn eerste plan was het bouwen van iets adh van een at90usb, maar na het etsen en solderen ik kwam er achter dat mijn programmer die niet ondersteunt. Ik las op internet wat verhalen over het onbereikbaar worden van de standaard Flip-bootloader die er in zit, en zonder backup en te weinig kennis van het USB protocol had ik nog geen zin om te gaan testen.

Dus heb ik besloten om voor de contest een klok te bouwen voor in m'n pc. Ik heb al eens geprobeerd een klok te bouwen, maar dat project is gestrand en ligt ergens stof te happen. Die klok had een pic16f628a om alles aan te sturen, maar nu gebruik ik AVR's dus dit is een rebuild. Ik was al van plan om nog eens te proberen een klok te maken, dus daar had ik toevallig al wat onderdelen voor in huis.

Als je vindt dat dit een spek-en-bonen inzending is, omdat het een rebuild is dan moet je gewoon niet op me stemmen ;)

Een van mijn favoriete series is 24, dus voor mij geen fancy lcd schermen e.d., maar gewone 7-segements displays. (jammer dat ik alleen rode had liggen, geel is mooier ;) )

Het ontwerp
Dit is het uiteindelijke schema geworden:

Klikbaar

- De displays die ik had liggen waren de standaard 7 segmenten met punt dingen.
Omdat ik een dubbele punt tussen de tientallen wil, heb ik de segmenten van de tientallen ondersteboven gezet.

-De encoder en buzzer heb ik er later bij verzonnen, mijn eerste opzet was alleen een klok die gelijk gezet kon worden via rs2323.
Ik heb al een diy schakelbordje in m'n pc en die stuur ik via korte gescripte commando's aan. op dat bordje zit een max232 en daarvan heb ik de ttl signalen doorverbonden.
later heb ik ook een timer functie ingebouwd.

- De buzzer hangt ook aan de rotary encoder zodat er bij het draaien ook een tikje wordt gegeven.
Ik kon het officiële symbool voor een rotary encoder niet vinden dus ik heb maar wat verzonnen, weet iemand wat het officiële symbool is?

- Ik wilde sowieso mijn cijfers pwmmen, en om niet een extra horlogekristal te hoeven gebruiken heb ik
gekozen voor een extern 4,109304 MHz kristal. Daarmee heb ik een redelijke clocksnelheid, waar ik m'n timers mee kan vullen zonder dat ik een asynchrone timer heb.

Het kristal heeft een hogere afwijking dan een horloge kristal, maar ik kan via windows scheduler m'n klok makkelijk laten syncen. Als de afwijking constant is (m)s/dag kan ik misschien ook nog de klok ijken door de osccal aan te passen in in de attiny2313.

- ik was van plan om de klok in te bouwen in een 3,5" bay, dus heb ik gekozen voor een dubbeldekker print.
(blauwe blokken in het schema zijn de verbindingen) Maar bij het ontwerpen van de printjes kreeg ik het niet voor elkaar om alles op 2 x 3,5" te krijgen met de componenten die ik had liggen. Dus heb ik een van de bordjes wat groter gemaakt, zodat ik moest uitwijken naar een 5,25" bay

Dit is het resultaat van het etsen:

Klikbaar

- de vlek linksboven (opgevulde gedeelte) komt doordat ik dat stukje niet verzilverd heb, vandaar het kleurverschil. Het wat donkere deel onderin is de reflectie van mijn handen en camera.
- de displays staan niet in een 0,100 " raster om een nette display te maken zonder kieren
- de onderste print is 10 cm breed, en het zagen en toch even passen kwam ik erachter dat een 3,5" drivebay geen 3,5" breed is (Was dat heel raar om te denken? :X) maar 4" waardoor mijn print dus wel in een floppy-bay zou passen.
(en 5,25" is stiekum 5,75"breed)


Dit is het resultaat na het solderen:





Klikbaar

De headers op de controller:
- linksboven , vcc,gnd, portd5:3, rx,tx.
- midden: reset en gnd voor isp.
- linksonder: overige isp aansluitingen.
- links en rechts op beide prints: de verbinding tussen controller en display.
- uiterst rechts: een gerecycelde floppy molex aansluiting.


De software
Na het maken van de print ben ik gaan coden.
ik zal niet de hele code hier neerzetten maar zo werkt het ongeveer:

• Voor de tijdbasis gebruik ik dus een 16 bit timer die elke seconde 256 interrupts geeft "clockticks"
De overflow is een interrupt waarin de volgende dingen gebeuren.

-In de interrupt wordt gecontrolleerd of clocktick 128 is, zo ja dan wordt er een procudere aangerproken om de tijd een seconde op te hogen. De tijd wordt per segment bijgehouden in het sram geheugen, en gekopieerd naar 6 registers. ook worden er bits aan of uitgezet in een bitmask voor de veranderende cijfers.

- De klok is ook een aflopende timer die vanaf 23:59:59 kan aftellen en een alarm af kan laten gaan.
in de interrupt wordt gekeken wat de stand van de timer is (asynchroon met de clockticks) en of die verlaagt moet worden. Dat verlagen gebeurt in een aparte routine die de timer aanpast en de 'state' verandered als de timer afgaat

- Als het alarm aan staat dan wordt vanuit de de interrupt één van de geluidsfuncties aangesproken.
de output van het geluid gaat door de pin Timer 0 Output compare pin B om te schakelen naar ouput.
(normaal is dat een input pin om de B lijn van rotary encoder uit te lezen).
Er zijn 6 verschillende functies voor geluidjes, die worden aangesproken aan de hand van de stand van de seconde tientallen.

• de rest van de functies worden vanuit de main loop aangesproken, daar gebeurt het volgende:
- display loop:
De tijd wordt weergegeven door de segmenten 1x te muliplexen.
De teller voor de clockticks is de basis voor de dutycyle van de pwm op de display. Hierdoor kan ik de veranderende cijfers dmv een bitmask pwmmen.
Als de timer loopt, wordt de stand van de timer weergegeven (zonder pwm).

- Er wordt gekeken of er data is binnen gekomen op de usart.
Het schakelbordje dat al in mijn pc zit schakelt mijn PC geluid dmv een relais naar mijn PC speakers of naar de stereo in woonkamer. Ook heb ik er een diy wake-up light aan hangen (flux ledstrip boven mijn bed) die door windows scheduler wordt aan of uit gezet. verder zitten er nog een paar niet gebruikte kanalen op die of gepwmt kunnen worden, of tussen aan/uit geschakelt kunnen worden.

Het bordje wordt aangestuurd door door vanuit een zelf geschreven VB appje de com port te openen, twee bytes te versturen, en de poort weer te sluiten. De eerste byte is een geheugen locatie in de pic16f628a die op het bordje zit. de tweede een databyte

Mijn klokt hangt aan de ttl input van de max232 op dat bordje dus de data die over rs232 wordt verstuurd komt op beide apparaten binnen. Ik was van plan om de code van het oude bordje nog aan te passen zodat bytes die voor de klok bedoeld zijn niet gebruikt worden in het bordje, maar ik krijg mijn PIC progger niet meer aan de praat.
Daarom heb ik voor de klok ongeveer het zelfde systeem gebruikt, en data adressen gekozen die in de PIC hopelijk geen kwaad kunnen om te overschrijven. In de klok wordt wel gekeken of de adressen die binnenkomen binnen een range liggen.
Als er 2 bytes goed zijn ontvangen binnen de range wordt de data van alle klok adressen naar de echte klok adressen geschreven. De klok moet dus 6x 2 bytes achterelkaar ontvangen om de tijd in te stellen.

- De rotary encoder wordt uitgelezen:
De encoder wordt gebruikt om de timer in te stellen, en bestaat uit twee delen.

In het ene deel wordt er gekeken of er een 'ontdender' bit is gezet, dan wordt bepaald of timer omhoog of omlaag moet, en de minuten of secondes (encoder indrukken en draaien) aan moet passen.

In het andere deel wordt gekeken of er een verandering op de encoder is, zo ja dan wordt de ontdender bit gezet. En pas de volgende keer dat de routine wordt aangesproken de encoder uitgelezen, zodat er een kleine delay is tussen schakelmoment en uitlezen.

En dat is het wel qua software

Er zijn nog wat dingen die ik anders wil:
1. De debounce werkt een beetje maar niet goed genoeg.
2. De eerste en de laaste punt moeten standaard uit, en één aan voor de timer stand
3. Ik moet de usart nog aanpassen zodat ik vanaf de pc ook de timer kan vullen voor een alarm functie
4. de pwm op de veranderende cijfers werkt alleen zoals ik wil op de secondes omdat die altijd veranderen.
Als ik het echt goed wil hebben dan moet ik nog de tijd in de registers een halve seconde achter laten lopen, zodat er alvast bekend is welke eenheden gaan veranderen, zodat daar de dutycycle ook naar beneden gaat.

De afwerking
Ik heb toch maar besloten om alles in een 5,25" bay te bouwen. Al mijn 3,5" bays zitten vol met harddisks, en daarom zou de klok in plastic voorkant van mijn computer kast vast gezet moeten worden. (wat natuurlijk kapot gaat als ik de klok vergeet en de voorkant zomaar los trek)

Ik ben begonnen met het maken van een frontje van een van de afdekplaatjes van mijn pc die ik over heb:

Het frontje is een paar mm dik, en ik heb na het frezen van het vierkant nog wat plastic weggehaald waar de weerstanden zitten, zodat de print zo ver mogelijk in het frontje past tegen de opstaande randjes aan.



Ik was op zoek naar een oplossing om de klok mooi in mijn pc vast te maken, en toen kwam ik een deel van de schil van een oude cd-rom speler tegen kwam (Die voor de vorige contest gesloopt is). ik had liever de onderkant erbij gehad, maar die kan ik niet meer vinden.

Dit heb ik er na een middagje zagen en boren van gemaakt:


Het resultaat is een appraat dat net als de rest van mijn 5,25"spul met geleiders vast gezet kan worden
Ik moet het frontje nog aan het apparaat zetten, het sluit perfect aan maar nu gebruik ik ook de klemmetjes nog zodat het frontje zich in de kap van mijn pc klemt.

Ingebouwd ziet het er zo uit:


hier staat nog een (behoorlijk slecht) filmpje met de klok in actie. Mijn camera hoort het pwm geluid van de buzzer niet goed, maar als je het volume opschroeft dan kan je de verschillende geluidjes nog wel horen (naast het gezoem van de 8 fans die in mijn pc zitten)

  • virus.elektro
  • Registratie: januari 2002
  • Laatst online: 06-12 08:16

virus.elektro

profesionele monitor sloper

ziet er mooi uit.

mag ik eigenlijk op stemmen bij deze contest?
zo ja dan mag ik dat vast niet op mezelf doen.
dus bij deze heb je verlopig mijn stem.

elektrotechniek is leuk (nog wel). ik ga dus weer verder met leuke dingen ontwerpen. amd 2200+ 256mb 333mhz,gf4 440mx, 120gb,16X dvd. jarr-url


  • Anthor
  • Registratie: juni 2002
  • Niet online
virus.elektro schreef op zaterdag 25 juli 2009 @ 21:24:
ziet er mooi uit.

mag ik eigenlijk op stemmen bij deze contest?
zo ja dan mag ik dat vast niet op mezelf doen.
dus bij deze heb je verlopig mijn stem.
Van mij mag je gewoon op jezelf stemmen.
Er staat ook (bewust) niks over in de regels, het is toch niet te controleren.

  • Anthor
  • Registratie: juni 2002
  • Niet online
Het gebeurt niet vaak dat ik iets helemaal afmaak met behuizing en zo, dus vandaar dit kickje

- De frontplaat zit vast aan de behuizing
- Het circuit heb ik een beetje aangepast aangepast zodat de encoder hardwarematig ontdenderd wordt
- De buzzer is vervangen door een standaard pc-speaker die geschakeld wordt door een transistortje met een 16Khz low pass filtertje ervoor

Hier nog een laatste filmpje waarin beter te horen is hoe irritant het geluid is.


De klok zat al mijn pc, maar nu gaat deze ook dienst doen als wekker
http://forum.fstweb.nl/images/smiles/strikerz_devilslock.gif
Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee