Arduino konzol nosztalgia

Zsenge korom konzoljait juttatta eszembe a következő nem általam kitalált, de megépített Arduino alapú konzol játék.

Az áramkörre ezen az oldalon bukkantam: https://nootropicdesign.com/hackvision/

Néhány futtatható játék

Személyes kedvencem (anno egy már akkor is öreg árkád gépen nyomtam):

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

És még egy:

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

Természetesen rögtön tudtam hogy meg fogom építeni és így is tettem. Az én verzióm nem olyan szép mint a vásárolható kitt de egyoldalas nyákra készült, és így könnyebb megépíteni. Mellékelek kapcsolási rajzot nyákrajzot.

Játékok itt: https://nootropicdesign.com/hackvision/games.html

Kapcsolási rajz:

J12-betáp 9V

J13-soros interface (Kell hozzá egy USB -RS232 átalakító ha ezen akarod feltölteni a játékot)

J4-programozó csatlakozó USBasp kompatinilis

X2-1 – audio, video kimenet (ezzel kötöd a TV-re)

Nyák rajz itt.

 

 

 

ESP-01 + AT parancsok

Későbbi elektronikus geoláda bejegyzésem, előfutáraként írom ezt a cikket, a láda programjának megértéséhez szükség van az ESP-01 modul AT-parancsainak ismeretére.  A modul egy WIFI eszköz, soros kapcsolatot tesz lehetővé WIFI-n keresztül.

A modul tápfeszültsége 3,3V de ennek stabilnak kell lennie. Instabil tápfeszültség esetén hajlamos elfelejteni a programját.

ESP-01

Kapcsolási rajz a teszteléshez, flasheléshez:

Több helyen láttam , hogy a modult összekötik egy FTDI232 usb-soros átalakító, modullal amelynek a kimenő 3,3V feszültségét használják fel az ESP-01 modul tápfeszültsége gyanánt, ami látszólag egy egyszerű, frappáns megoldás. Így elkerülhető, hogy illeszteni kelljen a 3,3V TTL szintű modult az 5V TTL szintű átalakítóhoz. (Az FTDI232 modul ilyenkor 3,3V TTL szinteket használ) A probléma az, hogy az FTDI232 3,3V-os kimenete nem bírja el a modul néha 300mA-is elérő áramfelvételét. És ott az instabil táp, a modul belepusztul. 😀

Ergo illeszteni kell az ESP-01-et az átalakítóhoz, az átalakító 5V kimenetére egy 3,3V stabilizátort kötni, vagy külső tápot használni.

A fenti áramkör alkalmas, új AT parancsos firmware beégetésre valamint Arduino-s használathoz.

AT parancsok:

Nem fogom tárgyalni az összeset csak a legfontosabbakat. Putty-al, Telnet-el vagy egyéb terminál programmal tesztelheted. Kocsi vissza új sort kell küldeni a parancsok után. Mindig nagybetűvel küldünk parancsot.

Beállítások a terminál programhoz:

Az ESP-01 kiszállításkor 115200 baud-ra van beállítva. (ez módosítható)

  • AT   áramkör válasza OK arra szolgál, hogy a soros kapcsolatot teszteljük
  • AT+RST áramkör válasza OK reszeteli az áramkört
  • AT+MODE=”1″ áramkör válasza OK  1-kliens mód, 2-accespoint mód, 3-kevert mód
  • AT+GMR áramkör a firmware verzióval válaszol majd OK
  • AT+GSLP áramkör altatása, áramkör módosítása szükséges a működéshez, következő cikkben kitérek rá
  • AT+RESTORE válasz OK gyári állapotra állítás
  • AT+UART_DEF=9600,8,1,0,0 válasz OK 9600 baud, 8 adat bit, 1 stop bit, paritás 0, átvitelvezérlés 0
  • AT+CWJAP=ssid,jelszó válasz OK vagy hibakód -kapcsolódás egy WIFI-hez
  • AT+CWQAP- lekapcsolódás a WIFI-ről
  • AT+CWSAP=ssid,jelszó,(0-64)csatorna,(0,2,3,4)kódolás válasz OK vagy ERROR -accespointként viselkedés. (IP.:192.168.0.4 gyárilag)
  • AT+CHIPMUX=1 válasz OK-0 egy kapcsolat, 1 -több kapcsolat
  • AT+CIPSERVER=1,80 válasz OK szerver indítása a 80 porton
  • AT+CIPSERVER=0,80 válasz OK szerver kikapcsolása a 80 porton
  • AT+CIPSEND=kliens ID(0-4),üzenet hossza (1-2048 max byte)  válasz ERROR kapcsolati hiba esetén SEND OK sikeres küldés esetén SEND FAIL ha nem sikerült minden adatot átvinni.Magát az üzenetet csak ezután kell elküldeni, a válaszok az üzenet elküldése után jönnek.
  • AT+CIPCLOSE=0 válasz OK üzenet küldés vége

A fenti parancsok a teljesség igénye nélkül vannak felsorolva, némelyik elavult, de még benne van a firmware-ben.

Részletesen itt megtekinthető.

Monitor javítás 2 rész.

LPT- SPI flash égető áramkör

Legtöbb hiba a monitorok esetében, a tápegységben található kondenzátorok kiszáradásából adódik. Az okokat most nem firtatom, lényeg, hogy a kondenzátorok cseréjével javítható. Rakjunk azonos kapacitásút de egy-el nagyobb feszültség tűréshatárral rendelkezőt. pl.: ha volt benne 1000uF 16V akkor kerüljön bele 1000uF 25V. Tovább bírja az esetek nagy részénél, mivel elég határesetre vannak kiszámolva.

Ez szép és jó de vannak olyan esetek, ahol csere után sem működik a monitor, be sem kapcsol holott a tápegység feszültségek megvannak. Ez általában 5V a vezérlésnek és 15-30V között a háttérvilágításnak a feszültsége, típustól függően. Háttérvilágítás hibákat itt nem tárgyalom.

Ebben az esetben, ha a vezérlőpanelon megvan a 3,3V meg az 1,7V (típus függő, esetek 99% -ban nincs gond vele) ami stabilizátorokkal áll elő az 5V-ból, akkor a monitorunk elfelejtette a programját. Igen ez is egy számítógép. Általában található egy controller (proci) a vezérlőpanel közepén, mellette egy 8 lábú flashrom ezt tartalmazza a programot. DVI-VGA csatlakozók közelében is találhatóak típustól függően 8 lábú eepromok de ezek a felbontást tartalmazzák. (ez mondja meg a PC-nek milyen felbontást tud a monitor)

Visszatérve a 8 lábú flashromra (90% ban nyolc lábú, van hogy több de az is flashrom) jellemző hogy 25-el kezdődik a számozásuk, ez tartalmazza a bootloadert, a monitor programját, jegyzi meg a felhasználó beállításait.

Ha a monitor nem indul ez a program sérült, nagy százalékban csak a program. Elég újraégetni az ebben található programot és működik a készülék. Sokszor evvel a hibával akkor találkoztam ha kapott valami egyenetlen tápellátást a monitor, pl.: kontakthibás dugalj a falban, „kiszáradt tápegység”.

Lényeg, hogy ki kell forrasztani a flashromot, szerezni egy eredeti programot egy ugyan olyan típusú monitorból, és beégetni majd visszaforrasztani a vezérlőpanelra a flashromot.

Ehhez a művelethez szükség lesz egy égető áramkörre, aminek két típusát fogom ismertetni itt. Mindkettőt használtam és működnek, nem én terveztem egyiket sem. Linkelni fogok minden hozzávalót, szoftvert. Valamint közzéteszem néhány monitor programját, hogy javítani tudjátok ezeket a típusokat. (az évek során gyűjtöttem össze, vagy kiolvastam, vagy a netről)

Első körben egy LPT-portra csatlakoztatható epromégetőt és programját ismertetem, évekig használtam, hátránya, hogy elavult szoftvere van, csak 32 bites operációs rendszeren működik. Ebben Hirens boot cd mindig segített. 😀 (vagy valami live oprendszert tartalmazó bootolható eszköz) A program shareware, a lincenszfájl még meg van, így fel fogom tenni azt is.

LPT port flashrom égető (tehnikservice.net):

Epromégető LPT

Lpt portos flash égető szoftvere letölthető itt. Mellékelve LG L1742S, LG L1910, LG L1942, LG W2234S, LG L2520 epromtartalma

Használatához (csak 32 bit Windows-al) be kell másolni a IO.dll filet a c:/windows/System32 könyvtárba.

Kapcsolási rajz, nyák, alkatrész lista letölthető itt.

USB-s flash égető CH341A:

Fejlettebb verzió az előzőnél, USB-portra csatlakoztatható és működik a legújabb operációs rendszerekkel.

Nagyon olcsón 1000Ft környékén megvásárolható e-bayen. Az SMD foglalat nem része a kitt-nek. Most már csak ezt használom.

Hozzá való program:

Letölthető itt.

A csomag a driver-t (tudjátok vezetők hajcsárok :D) is tartalmazza, win 10-nél ki kell kapcsolni a driver aláírás ellenőrzést hogy telepíteni lehessen. Ellenőrizve NOD-al nem vírusos mint egyes oldalakon.

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:

Ez a weboldal sütiket használ. Az Uniós törvények értelmében kérem, engedélyezze a sütik használatát, vagy zárja be az oldalt. További információ

Az Uniós törvények értelmében fel kell hívnunk a figyelmét arra, hogy ez a weboldal ún. "cookie"-kat vagy "sütiket" használ. A sütik kicsik, teljesen veszélytelen fájlok, amelyeket a weboldal azért helyez el az Ön számítógépén, hogy minél egyszerűbbé tegye Ön számára a böngészést. A sütiket letilthatja a böngészője beállításaiban. Amennyiben ezt nem teszi meg, illetve ha az "Elfogadom" feliratú gombra kattint, azzal elfogadja a sütik használatát.

Bezárás