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ő.

Elektromos autó

Hát persze, hogy klikk vadász a cím. 🙂 Ha a médiának lehet akkor nekem is …

A fiam elromlott TESCO-ban vásárolt távirányítós autójáról van szó, amit úgy felturbóztam, hogy porosabb talajon driftel 😀

A mostani játékok elektronikájára jellemző, hogy ha egyszer elromlik mehet a kukába, mert javíthatatlan. Ha szétbontod találsz benne egy áramkört aminek a közepén egy műgyantával leöntött paca van, és max néhány ellenállást kondenzátort tartalmaz. A fenti autónál is ez volt. Így fogtam az egész elektronikát és veszélyes hulladéknak leadtam, távirányítóval együtt. Viszont ha már a veszélyes hulladéknál tartunk, volt egy laptop akkumulátorom ami elhalálozott. Tudni kell, hogy ezek az akkuk több cellából állnak és nem egyszerre pusztul el az összes. 1-2 cella benne feladja, és a „védőáramköre” biztonsági okokból letiltja a töltést. Természetesen ennek semmi köze a tervezett elavuláshoz, bárminemű ezzel való összekapcsolása a témának a véletlen műve.  (remélem egyet értetek kedves gyártók) Szétkaptam az akkut, kiszedtem belőle a működő cellákat, és már is volt egy amper-centrikus erőforrásom ingyen. 3,7V cellákról van szó, az autó kapott sorba kötve 3 db-ot az 11,1V. Eredetileg 4db ceruza elemmel működött, az 6V. Hogy, le fog égni majd a motor, igen le fog egyszer ha túl hajtjuk de addig remekül szórakozunk. 😀

Természetesen Arduino pro mini áramkörökkel építettem fel mind az adó, mind a vevő áramkört 1-1 433MHz-n működő adó-vevő modullal virtual-wire osztály felhasználásával. Még a lebegény (légpárnás) készítésének idejéből polcon hevert egy apró szervó motor, ez szabályozza a kanyarodást.  Találkoztam azzal az inkompatibilitási problémával, hogy az Arduio alap szervovezérlési modulja nem kompatibilis a virtual-wire class-al, így ki kellett cserélnem a modult és egy másik szervovezérlési modult használnom. Természetesen mindent mellékelek. És akkor…

Hozzávalók:

L298 motorvezérlő modul
Szervó motor
RF modul adó-vevő 433MHz
Arduino Pro Mini 5V
Arduino Pro Mini 5V 2db

Kapcsolási rajz távirányító:

Távirányító

Kapcsolási rajz autó:

Autó

Működés:

Azt hiszem a működést nem kell különösebben részleteznem. Röviden annyi, hogy a távirányító potméter állását leolvassa az AD átalakító ami a Pro Miniben van ebből generálódik egy szám (ez a kormányállás) ennek a számnak a végére hozzácsapunk egy karaktert 0-> áll, 1->előre, 2->hátra és ez kerül elküldésre.

Az autóban az Arduino modul visszaalakítja ezt a számot és értelmezi. Először szétszedi kormányállásra és irányra, majd a kormányállásból generál egy szervó állást. A többi értelem szerű. Program forráskódjában erősen kommenteltem. Még annyit, hogy a távirányítóban lehet használni az Arduino pro mini butábbik verzióját is amelyben ATmega165 van. Mert olcsóbb. 🙂

Programok:

Letölthető itt.

Végeredmény:

Na meg a videó (részeg sofőrrel) 😀 :

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

 

Akkulminátor :D

De nevezhetném  L.A.É.M.K. (Laptop Akku Élet Meghosszabbító Készüléknek) (Végig éltem a PC fejlődés jelentősebb részét nekem laptop marad! Még-hogy notebook!) esetleg angolul B.L.E.M. (Battery Life Expander Module) mondjon valaki valami jót, addig Akkulminátor marad. És hogy mi ez ? Laptop akkumulátor élettartamának meghosszabbítására szolgáló készülék.

Szóval ahogy egy félisten mondaná: „Kezdjük már el!

És ahogy a reklámszöveg:

Tapasztaltad már, hogy laptopod (akkor sem lesz notebook) egyre kevesebbet bírja az akkuról működést és mind több ideig tart a a feltöltése, a végén már ott lóg a kábel végén, oda a mobilitás, oda a szabadság? Nos azt nem állítom, hogy ez nem fog bekövetkezni de talán kicsit később.

A probléma oka természetesen Te vagy kedves laptop használó (akkor sem lesz notebook!), aki töltőn felejti a készüléket, emberek vagyunk néha előfordul.  Elárulom, hogy a töltést szabályozza a laptop, de nem kapcsolja le a töltőt az akkuról. HOLOTT MEGTEHETNÉ !!! (kedves gyártók ugye figyeltek) Még csak áramkörben sem igen kéne módosítani. Ebből származik némi túltöltés akku ellustulás és kész a baj.

csupakabra:

Vehetsz újat 20 rongyért.

break

Vagy a másik véglet. Te kedves felhasználó, tisztában vagy ezzel és előre látó módon ki veszed az akkut (már amelyikből manapság lehet) , elteszed az almáriumba, jó lesz az majd ha kell, megesszük befőtt helyett… Csak-hogy  ha nincs töltve akkor is lemerül idővel és elérhet egy olyan pontot ahonnan nincs visszaút tehát

go to csupakabra

(a teljesség igénye nélkül)

Fentieket orvosolandó, kell egy készülék ami figyeli az akku töltöttséget. 100% töltöttség esetén lekapcsolja a töltést, ha az akku töltöttség egy beállított százalék alá esik vissza kapcsolja azt. Így kondicionálja az akkumulátort. Az akkumulátor a tervezett módon van használva és több ideig bírja. Főleg asztalon használt állandóan töltőre dugott készülékekhez ajánlom. Előre bocsájtom nem kell szétszedned a note… izé… laptopod. Természetesen az megoldási is jó ha csak kihúzod a töltőt ha a készülék feltöltött, de elektronika őrültként ez a megoldás kicsit snassz. 😀

Hogy kompatibilis legyen minden típussal, a készülék a konnektor felöli oldalon fogja megszakítani az áramkört vagy bekapcsolni és bluetooth-on tartja a kapcsolatot a laptoppal. És akkor…

 

Szükséges anyagok:

Csak a burkolata 🙂
Arduino Pro Mini 5V
Arduino Pro Mini 5V
12V kapcsolóüzemű tápegység 400mA
5V kapcsolóüzemű tápegység 400mA
HC-05 Bluetooth modul

Egyéb hozzávalók:

  • ellenállás R1  1K   1db
  • tranzisztor Q1 BC817 1db
  • dióda D1 1N4148 1db
  • 5V relé 2A tudjon kapcsolni AC-ben (nagyon fontos, hogy a fogyasztó által felvett teljesítményhez igazítsd)

Működés:

Ahogy az előbbiekben is írtam a készülék egy köztes aljzatként beékelődik a töltő és a hálózat közé, buetooth-on párosítani kell a laptoppal, ahol egy virtuális soros portként fog jelentkezni. A laptopon fut 2 percenként egy kötegfájl (.bat) ami lekérdezi a töltöttség állapotát az operációs rendszertől, ha ez eléri a kötegfájlban megadott értéket mondjuk 10%-ot akkor meghív egy egyszerű soros kommunikációra alkalmas programot, és ennek segítségével küld egy 1-est a virtuális soros porton keresztül a készüléknek ami bekapcsolja a töltőt.  Ha eléri a 100% a töltés ugyanez megy végbe de ezúttal 0-át küld a készülék felé ami kikapcsolja a töltőt. A visszacsatolás maga a töltés megjelenése. A készülék a bekapcsolás után már csak 0-át fogad el. A dolgot picit bonyolítja, hogy a kötegfájlt ugyan meg lehet hívni direktben taskmanagerből, de akkor 2 percenként felvillanó sötét ablakokat kapunk ami eléggé zavaró, így egy szkriptet hívogatunk meg ami meghívja a kötegfájlt, így nem nyílnak ablakok. Aki tud jobb megoldást, hajrá.

Felhívom a figyelmet aki érez magában affinitást írni hozzá egy programot és hajlandó megosztani azt közzéteszem.

Egyébként egy egyszerű bluetooth-on vezérelhető kapcsoló, bármi egyéb bekapcsolására is alkalmas.

Kapcsolási rajz:

FONTOS! Az áramkör egyes részei életveszélyes feszültségen vannak, ennek figyelembevételével építsd meg. Bármilyen anyagi, illetve nem anyagi kár esetén engem felelősség nem terhel. Én szóltam!!! 🙂 Másrészt olyan bluetooth modult használj aminek illesztettek 5V-ra az RX-TX  lábai.

Program:

byte x = 0;

void setup() {
// soros kommunikáció 9600 baud
Serial.begin(9600);

pinMode(13, OUTPUT); // 13 láb a kimenet
establishContact(); // folamatos nagy A betű küldés debug célból elhagyható
}

void loop() {
// soros port figyelése
if (Serial.available() > 0) {
// bejövő adat elkapása
int inByte = Serial.parseInt();
if(inByte==1 && x==0){ //csak 1-et fogad el
x=1;
digitalWrite(13, HIGH); // bekapcsol
Serial.write(„ACK”); // visszajelzés debug célból

}
if(inByte==0 && x==1){ //csak 0-át fogad el
x=0;
digitalWrite(13, LOW);// kikapcsol
Serial.write(„ACK”);// visszajelzés debug célból

}

}
}
// A betűt küldő funkció,nem fontos
void establishContact() {
while (Serial.available() <= 0) {
Serial.print(‘A’); // küldj egy A-t
delay(300);
}
}

Program letöltése (tartalmazza a vezérlő kötegfájlokat magyarázat  readme.txt)

Végeredmény:

Működés közben (szimuláció):

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

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