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.

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