Sajnos az enyémek nem lettek ilyenek, de lehet a lap is gyengébb volt. Mostanség inkább előre gyártott elemekben gondolkodom, azaz ahol csak lehet hanyagolom a forrasztást.
Nem tagadom, akad gányolás itt-ott, de a közepétől egész belejöttem :) A foglalatok beforrasztása szinte gyári lett (E14, F14), de pl a táp pl csúnya, igaz ott volt egy elképzelés amit aztán megváltoztattam, és emiatt is olyan, amilyen. Meg kéne egy precíz csípőfogó is ...
Gondoltam dicsekszem, a bareboard-os deszkamodellből végleges lett. Ez egy időjárás állomás, hő, páratartalom, légnyomás, szélsebesség és szélirány, wifin tolja szerverre az adatokat és mellesleg webszerverként rá is lehet nézni. Roppant büszke vagyok magamra, főleg, hogy a végleges beforrasztás úgy sikerült, hogy elsőre minden működik, nem kötöttem el semmit :)
Az interrupt után egyből lehúzva a vonalat, szépen tudok billentyűleütést szimulálni. A késést még nem tudtam kimérni, mert most csak 1 sugaras szkópom van, de ezek szerint elég gyors az arduino, hogy beleférjen a válasz. Már csak az a nagy kérdés, hogy az autórádió procija nem gyorsabb-e jelentősebben.
Ha ez így működik, akkor mehet egy ESP8266 a beltérimbe is. :)
Látom, a lényeg felett elsiklottál! A procinak a kiolvasás egy ismétlődő folyamat, amit másodpercenként 50-szer megcsinál. Nekem nem kell figyelnem, hogy mikor húzza le a vonalat, csak rá kell szinkronizálnom az egyikre. Mivel tudom az időzítést, ezért tudom mikor fog érkezni a következő, vagy azt következő. Ha akarom, akkor 50x elküldöm a jelet egymás után, a lényeg, hogy szinkronban maradjak, ezért kell a megszakítás. Ha pl. az utolsó vonalra szinkronizálok, akkor (elvileg) ms pontossággal tudom, mikor fogja a következő (első) vonalat lehúzni, és nem kell mást tennem, mint arra az időre lehúznom a megfelelő lábat.
Persze ez addig csak elmélet, amíg ki nem próbáltam! :)
200us-re húzza le. de hogy a 200us-en belül mikor olvas, azt nem tudod. mi van ha a lehúzás utáni utasítás neki az olvasás, és 1us egy utasítás neki? akkor a lefutó él után 1us-en belül oda kell tedd a választ, különben lekésed az olvasást.
Kicsit azért kísérleteztem egy PS2 billentyűzettel. 50Hz a frissítési üteme, tehát másodpercenként 20 kiolvasás egy vonalon. Egy vonal 200us ideig van lehúzva, és 1,25ms múlva olvassa a következő vonalat. Tehát, ha egy megszakítás lábra kötöm az első sort, akkor onnantól 1.25 ms időközönkénti osztásban tudom vezérelni az oszlopokat, max 200us ideig zárva tartva. Szóval az elmélet működik, már csak a gyakorlatban kell igazolni.
Sajnos megbukott a dolog, mert mérni csak a műhelyben tudnék, viszont az autóba épített kijelző nélkül a rádió teljesen béna (CAN). Pedig találtam alternatívát, a 4066 (és társai) bilaterális kapcsoló IC pont jó lenne erre. Úgy döntöttem, hogy egyelőre hanyagolom a szoftveres megoldást, és simán csak kivezetem a gombokat máshová.
Nekem már elvileg minden megvan véve hozzá legalább egy éve. Azért most kérdezem, mert a hétvégén megyünk egy hétre a tengerpartra nyaralni és akkor végre lesz egy kis szabadidőm az építkezés mellett. Gondoltam elviszem magammal az arduino-s cuccokat hozzá, aztán kinyerem a kódokat a 10 db kulcstartóból és teszttáblán csinálok valami működőképes konstrukciót mintakód alapján.
A házba viszont már ilyen Wiegand-os rendszerű kültéri olvasó van beépítve a kapuhoz, mert ezek az arduinos olvasók ház nélküliek - nem igazán alkalmasak kültérre. Azt már néztem a neten, hogy vannak fent wiegandos arduino kódok, majd idehaza átirom a progit hozzá.
Nem igazán terveztem telefonnal nyitni a személyi bejárást szolgáló kiskaput. Már van egy 8voltos trafós mágneszár kiépítve a nappaliból egy sima kapcsolóval. Illetve vezettem ki fix 8V-t az arduino vezérlésnek is a nyitáshoz a kapu melletti kis szekrénybe - ahol majd lesz az arduino és az autós kapunyitó vezérlője is. Úgy gondoltam, hogy ezt vezérlem majd az arduinoval és esetleg - ha majd nagyon unatkozok- megpróbálom a még nem megvásárolt kapunyitószett egyik gombját is ráprogramozni a kis személyi bejáró nyitásához is - ha lehetséges. Ehhez viszont nem vagyok benne biztos, hogy szükséges az arduino-s vezérlésre kötés.
mindenképpen mérni kell. simán lehet hogy pl analóg szintekkel működik.
és ha én csinálom, akkor tuti úgy olvasom ki, hogy kiteszem a sorra a szintet, és a köv utasításban olvasom az oszlopot. ha egy 20Mhz mikrovezérlővel csinálom, akkor neked nagyon kell majd kapkodnod a lábad hogy ott legyen az oszlopon a jel mire én azt olvasom.
tényleg lehet hogy a két analóg multiplexer a jó megoldás. de fel fog merülni hogy kellene galvanikus elválasztás is a két rendszer közé, attól még bonyolultabb.
Igen, így gondolkodtam én is. De a reakcióidőt azért nem gondolom kritikusnak, mert a kiolvasás folyamata (szerintem) egy órajel alapú egyszerű ismétlődő folyamat. Az lehet, hogy esélyes lekésni a válaszadásról, de ha tudom az ütemidőt, és rá tudok szinkronizálni, akkor talán még a sorokat be se kell kötnöm, elég az oszlopot lezárni az adott időpillanatban. Ha lesz végre időm, nekiállok tesztelni, csak gondoltam, hátha valaki már csinált ilyet, hiszen így elég egyszerűen lehetne bármilyen eszköz gombját "virtuálisan" nyomkodni.
Ha vettél rfid kulcstartót/kártyát/karkötőt... akármit, akkor abban már benne van az azonosító, nem kell írni. Van olyan típus, amibe lehet adatot feltölteni, kódot írni, de kapunyitáshoz jó a legegyszerűbb filléres. Az elmélet az, hogy a kütyüddel beolvastatod a kártyáid azonosítóját, és eltárolod. Ezután kapunyitásnál csak leellenőrzöd, hogy a beolvasott kód benne van-e a tároltak között, és csak akkor nyit a kapu. Ha még csak most vásárolnál dolgokat, én ajánlom az NFC-t inkább. Az is filléres dolog ebay-en, és akkor tudod nyitni a kapudat telefonnal, okosórával, gyűrűvel... Most már a készülékek többségében benne van. RfId már megy ki a divatból. Ehhez is van rengeteg kész projekt, csak meg kell építeni és feltölteni az arduinoba.
Ugyan már egy éve bevásároltam a dolgokat hozzá ebay-n és aliexpress-en , de mostanság kezd aktuálissá válni az első arduino-s projektem kivitelezése a házam építésénél - konkrétan az RFID-s kapunyitás.
Itt egy cikkben azt olvastam, hogy elvileg egy TID-nek nevezett memória szekcióban ezek gyárilag fel vannak töltve egyedi azonosítószámmal:
Ez tényleg így van? Én anno csak readert vettem hozzá és tulajdonképpen nekem egy egyedi serial number elég is lenne egy nem túl nagy biztonsági jelentőségű kerti kiskapu nyitásánál az azonosításhoz. Ha nem így van, akkor viszont ugye nem tudom megspórolni a reader-writer árát és nem ártana rendelnem gyorsan egyet.
jól értem, hogy te a fizikai billentyűzetet akarod helyettesíteni egy arduinóval?
ehhez először fel kellene mérni az eredeti eszközt és annak billentyűzetét, milyen mátrixot használ, milyen időzítéseket használ. rajtahagyni a tasztatúrát, minden vezetéket megtoldani egy arduino bemenetre, és naplózni hogy mi történik. utánna lehet gondolkozni hogy hogyan lehet leutánozni.
az időzítés tényleg kritikus lesz. a fizikai billentyűzetnél szíve joga a kiolvasónak a sor lehúzása után azonnal kiolvasni az oszlopot. neked viszont idő kell észrevenni hogy melyik sort húzták le, és annak megfelelő értéket tenni az oszlopvezetékekre.
1. szoftveresen. Arduino bemenetei megszakításképesek. Így a kimeneteket magszakításban kezelni kell. Időzítési probléma okozhat nem megfelelő kapcsolást. Ilyen programmal még nem találkoztam.
2. hardveresen. pl. két cd4051 áramkörrel kiegészíteni a billentyűzet áramkört. 4x4-es billentyűmátrixot 5 arduino kimenettel lehet vezérelni. Nincs időzítési probléma.
Az OK, hogy nem relé, de a bill. mátrixnál a vezérlő nem is "rövidzárakat" figyel, hanem - ha jól tudom - a sorokat egymás után lehúzza testre és az oszlopokon meg végigméri, hogy melyik esett le 0 szintre. Vagy fordítva. Ezért gondoltam valami olyasmire, hogy figyelem arduinoval, hogy melyik láb van éppen soron, és akkor a kimeneten lehúzom a megfelelő lábat. Ez lenne az elmélet. Csak gondoltam megspórolnám a kísérletezési időt, ha van már rá esetleg valami kód, vagy modul.
Nézd meg, hogy hogyan van elosztva a billentyűzet-mátrix, hány sor és hány oszlop van, aztán ezeket nagyjából simán rá lehet eszkábálni (ha nem is egyszerűen) valamilyen miltiplexerre. Arduino direktben macerás lesz, mert az nem zár és nyit (gomb/billentyű), hanem vagy magas (akkor 5 V) vagy alacsony (0 V/GND rövidzár), ekképp soha nem fog kvázi reléként működni.
Üdv. Írok egy programot tabletre, ami soros porton arduinoval vezérelne egy autórádiót. (Car PC) Egy kb. 12 gombból álló bill. mátrixot kellene nyomkodnia. Kézenfekvő megoldás lenne egy relékből, vagy optokból álló kapcsolás, de egyrészt macerás, másrészt felesleges költségnek gondolom, mert szerintem simán meg lehetne oldani közvetlenül az arduino be/kimeneteivel. Épített már valaki hasonló kapcsolást? Jó lenne ha lenne valami példa program kiindulásnak. (Ha összejön, így szeretném megoldani a beltérim kapcsolgatását is wifin keresztül, mert az infra sokat hibázik.)
> a floatot milyen szélsőértékekre tesztelted? persze hogy nem a 2.1-nél van a bukta.
Erre vannak a szabványok. Ma szerencsére már egy 32 bites float mindenhol IEEE 754. Akár Java virtuális gép, akár .NET, akár avr-gcc.
> a bináris adatot pont hogy nehezebb keretezni. hogyan szinkronizálsz? ha a 0xFF a rekordvége jeled, már bukhatsz, hiszen a float számodban simán lehet 0xFF
Olvastad a hozzászólásomat? :-)
"Minden csomag kezdődjön ugyanazzal a byte-tal, például FF-el. Ha ezen kívül bárhol előfordul FF a csomagban, akkor azt duplázni kell (escape)."
Tehát, ha páratlan számú FF érkezik, akkor az vagy csomag eleje, vagy hiba. A hiba általában kiderül a csomag típusából, hosszából, stb. De ha biztosra akarsz menni, akkor használj CRC-t.
a floatot milyen szélsőértékekre tesztelted? persze hogy nem a 2.1-nél van a bukta.
a bináris adatot pont hogy nehezebb keretezni. hogyan szinkronizálsz? ha a 0xFF a rekordvége jeled, már bukhatsz, hiszen a float számodban simán lehet 0xFF. a szövegesben baromi egyszerű jelezni a rekordhatárokat.
nem akarok én senkit semmire rábeszélni, de kezdőként sokkal egyszerűbb a szöveg.
Kicsit más téma, minap tele lett a tököm, hogy állandóan várnom kellett az upload-ra, gondoltam megnézem hátha akadnak arduino emulátorok. És vannak. Nem tudom kinek mi a tapasztalata ezügyben? Nekem most így első túrásra ez lett a szimpatikus: