Időgép hiba

Mikrokontroller vezérelt digitális órák pontatlanságával foglalkozom ebben a bejegyzésben. Lelőttem a klikkvadász címet az első sorban… 😀

A lényeg, hogy anno domini, építettem egy digitális órát jó nagy LED-es kijelzővel, mert szemüveg nélkül nem látom a sötétben a kicsi kijelzőket rövidlátó vagyok. (nem, nem szódásüveg :D) Ez az óra nem naptár IC-ből olvasgatja ki az időt, hanem maga a mikrokontroller számolja az időt. Ez mind szép és jó, de fiatal és bohó lévén elhanyagoltam azt a tényt, hogy ciklus lefutási idők vannak egy mikrokontroller működése közben, pl. idő telik el amíg frissíti a kijelzőt. A hibát tetéztem azzal hogy delay-eket használtam, nem az elindulástól eltelt időt. (akkor is késne 😀 csak nem ennyit)

Ez elenyészőnek tűnik de egy óra esetében nagyon fontos, mert idő elteltével ezek a parányi idő szeletek összeadódnak és az óránk bizony késni kezd, oly annyira, hogy kompenzálnom kellett 6 óránként fél percet kell hozzáadnom az időhöz így viszonylag pontos, havonta egyszer kell beállítani.

Na most mi van ha teszünk bele egy ébresztő funkciót, mondjuk játszon le néhány akkordot egy számból. Amíg visít a pécészpíkerből a Finale Countdown (remélem érzitek az iróniát) idő telik el, és ezt is lehet kompenzálni. (ha naptár IC-vel csináltam volna akkor,a naptár IC közben szépen gyalogolna előre)

Következtetés -képpen, delay-eket el lehet felejteni, használjunk naptár modult (ez sem pontos), és érdemes szinkronizáltatni az órát időközönként. Ehhez lehet használni egy wifi modult, vagy óra impulzus modult, vagy egy GPS modult. GPS esetében érdekes módon 1 műhold mindig fogható még házon belül is, koordináta számítást nem tud végezni a modul de a pontos idő az jön belőle.

Itt nem fogom részletezni ezeknek a moduloknak a beépítését, leprogramozását, csak az egykori kvázi hibás programomat teszem közzé másoknak okulásul.

Az áramkört is csak linkelem (ezt nem én csináltam de a felépítés azonos)  mivel azok a kijelzők már nem kaphatóak és szemétre szánt játékgépből mentettem ki őket. De elég szép példája annak hogy shift-regiszterekkel hogyan lehet bármennyi kimeneted.

Tehát van egy buszunk amire fel van fűzve az összes shift-regiszter, így csak 3 kimenetet használunk a mikrokontrollerből. Ahány hétszegmens kijelző annyi regiszter. Az ULN 2803 tranzisztor mező azért kell mert ennek a kijelzőnek egy szegmense 6 sorba  kötött LED-ből áll. Az én áramkörömben 12V -ról üzemel. A mikrokontroller TTL szintekkel dolgozik tehát 5V és nem tud akkora teljesítményt illeszteni kell. Ilyen módon felfűzött regiszterekkel annyi kimeneted lehet amennyit meg tudsz címezni adott mikrokontrollerrel. Nem sebesség igényes dolgoknál megfelelő. Némi módosítással reléket is kapcsolgathatsz.

Program:

Itt letölthető.

Ez Bascom-ban íródott és elnézést kérek de nem vittem túlzásba a kommenteket. ATmega 8 a használt mikrokontroller a használt kimenetek a programból adódnak. (nem most készült :D)

A műszer:

Múnsájner 2000 :D

Párlat készítők életét hivatott megkönnyíteni a következő projekt. (gyengébbek kedvéért párlat értsd pálesz) Mentes készítők ajánlásával. 😀 Mentes itt zárjegy mentes. 😀 (nem bíztatok senkit semmire mielőtt még a NAV nyomozni kezdene 😀  ez  kifejezetten egy projekt tanulási céllal természetesen, a tudomány érdekében) Régebben pálinkátornak neveztem a projektet de azt hiszem a Múnsájner 2000 jobban hangzik 🙂

Projekt célja:

Desztilláló rendszer, mindenki ismeri mi az, ha nem Wikipédia, legalább emiatt tanuljatok kémiát 😀 . Nos, tartalmaz egy hűtőt, (nem hűtőszekrényt) egy kondenzációs egységet ahol a pára kicsapódik és folyadék lesz belőle, esetünkben pálesz. Ezt a hűtési feladatot általában hideg víz szokta ellátni, de mivel folyamatosan meleg áramlik rajta keresztül egy idő után a teteje a víznek melegedni kezd és a hatásfok ennélfogva csökken. Ezért a hideg vizet cserélni kell, hogy továbbra is hideg maradjon. Ezt a feladatot hivatott átvenni a következő áramkör.

Hozzávalók:

Alkatrész lista itt.

Kapcsolási rajz:

A mágnesszelep bekötésénél ne felejts egy diódát kötni a szelepre pl.: 1N4007 párhuzamosan ellen irányban, hogy a tekercs visszarúgása ne okozzon zavarokat a vezérlésben. A hőmérsékletet egy 10K NTC termisztor érzékeli, úgy tudod vízhatlanná tenni , hogy ráforrasztod a vezetéket, lezsugorcsövezed. Az egészet egy műanyag csőbe helyezed és feltöltöd szilikonnal. Pl.: amit fugázáshoz használnak.

Program:

Letölthető innen.

Bekötés, Használati utasítás.

Végeredmény:

Múnsájner 2000

Kancsi a robot! 2. rész

Mint egy jó receptben.

Hozzávalók:

L298 motorvezérlő modul 1db

Infra szenzor 3db
A robot váza + 2 DC hajtómű 1db
Bluetooth modul

Egyéb hozzávalók:

  • ATmega8 mikrokontroller 1db
  • 2×5 tüskesor 1db
  • 10K ellenállás 5db
  • mikrokapcsoló 2db
  • billenő kapcsoló 1db
  • elemtartó 4x AA 1db
  • elemtartó 2x AA 1db
  • 4MHz kristály 1db
  • 22pF kondenzátor 2db
  • 1000uF kondenzátor 2db
  • L7805CV 5V stabilizátor 1db
  • tördelhető 1 soros tüskesor 1db (opcionális)

Kapcsolási rajz:

Mivel a robot próbanyákra készült el, ezért vissza kel fejtenem az áramkört, csak most,  csak nektek, tessék értékelni 🙂

Lábkiosztások:

L298 modul lábkiosztása

Innen vettem : http://www.instructables.com/id/Arduino-Modules-L298N-Dual-H-Bridge-Motor-Controll/

Program:

Az androidos távvezérlő program letölthető innen. Az applikáció nem az én szellemi termékem de freeware. Benne hagytam a távvezérlős funkciót, ha kétszer nyomjuk meg az előre gombot a robot felgyorsul, de az infrák itt is beavatkoznak, ha neki akarsz hajtani valaminek megpróbálja elkerülni. (több-kevesebb sikerrel :D) Anno nem voltam tisztában a PWM lábak jelentőségével, így leprogramoztam, szoftverből csinálja. Feltaláltam a sajton a lyukat igen. 🙂

Letölthető itt: robot programja, forráskód, kapcsolási rajz

Kancsi a robot! 1. rész

Mivel előzőekben bluetooth modult írtam le, ezért úgy gondolom a robot építését itt tárgyalom. Kancsinál is ugyan ezt a típust építettem be. Kancsi név a keresztbeálló infra szenzorai miatt ragadt rá. A robot egy korai projekt, így legyetek velem elnézőek.

Bascom-ban programoztam, aki nem ismerné ez egy BASIC nyelv Atmel mikrokontrollerekhez. Nem elhanyagolható ha régebbi is, tömörebb kódot ad az Arduinonál, viszont borzalmasan lehet több változós műveleteket végrehajtani vele. A robot mikrokontrollere egy ATmega 8 -as és nincs benne bootloader.

Eredetileg egy bluetoothon távvezérelt légpárnást akartam építeni, ami eljutott abba a fázisba, hogy siklott úgy, hogy szaladtam utána a vezetékre kötött akkuval, ami elég röhejes. 2 szerver ventilátor működtette az egyik a légpárnát hozta létre a másik a tolóerőt.

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.

De mivel túl drága lett volna olyan akkut beszerezni ami könnyű, viszont nagy teljesítményt tud leadni ezért áttértem a kerekekre. Akkorra már meg volt az irányító elektronika ami blutoothon vezérelve bekapcsolta a ventilátorokat, valamint egy szervó motorral mozgatta volna a kormánylapátot, így ezt használtam fel Kancsi 1.0-hoz. Ez a robot még csak távirányított funkcióval rendelkezett. Három kereke volt, egy relé kapcsolta be a hajtóműveket, csak előre ment és a szervó forgatta jobbra-balra a kormánykereket. Bár már előkészítettem arra, hogy majd önmagát vezérelje, azaz kapott 4 darab infra érzékelőt, de ezeknek használata nem volt leprogramozva, később rájöttem, hogy az infrák fogyasztása is horribilis a 6db 1,2V -os akkunak.

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.

Lecsökkentettem az infrák mennyiségét 2 db-ra, és kapott a robot egy motor vezérlő elektronikát kikerült a szervó a képből és megszületett az igazi Kancsi v1.1. Most már tényleg keresztbe álltak az infrák a jobboldali balra, a baloldali jobbra érzékelte a tárgyakat, valahogy úgy mint a vak ember tapogatódzik a fehér bottal. Az ifra érzékelőkön állítható a távolság, hogy hol kezdjenek jelet adni. Nem túl okos az egész de kísérletnek jó. Viszont ha valami vak foltba esik annak bizony neki megy. Ez a robot már önmagát vezérelte, csak arra van programozva,  hogy elkerülje az ütközést. Butább robot porszívók kb. ennyit tudnak.

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.

Később mivel a robot elakadt amikor neki ütközött valaminek, visszakapott egy infra érzékelőt ami előre nézett, így látta a küszöböket. Jobb és bal oldalára kapott egy-egy mikrokapcsolót, ha mégis neki ütközik valaminek hátratolasson és elforduljon.

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.

Még így is koránt sem tökéletes, de szórakoztató projekt volt és tanulságos, mellesleg a fiam is nagyon élvezi és kéri néha, hogy vegyük elő a polcról egy körre. Terveim közt szerepel a továbbfejlesztése, a kód áthelyezése Arduinoba, az infra szenzorok lecserélése ultrahangos távolságmérő szenzorokra, a robot méretének és a közelítés távolságának bevitele a programba stb. Ha időm engedi és nem lesz egyéb dolgom majd neki esek. 🙂 Ez valószínű már egy másik vázon fog felépülni.

Folyt. Köv.