Marduino :)

Hogyan csináljunk vonalkövető robotot Arduino-val - 1. rész

Optocsatoló - mire lehet használni?

A reflektív optocsatoló egy közös műanyag házba ültetett IR led (adó) és egy fotó tranzisztor(vevő).
Működése: az IR led által kibocsájtott fény megfelelő távolságban levő felületről visszaverődve
áramot gerjeszt a fotó tranzisztor bázisában és a fototranzisztor kinyit. A fényerősség mértékétől függően
nyílik az áram útja, így feszültség osztó ellenállással alkalmazva különböző fesz. értékeket kapunk.

Az érzékelő sor kimeneteinek feszültség értékeit az Uno analóg bemenetei dolgozzák majd fel.
Ezzel az IR LED-el lehetne érzékelni a fekete vonalat a földön.

 

optokoppler.gif

 

talajnedvességmérő

Mivel a virágaim általában így végzik:

 

dead-flower.jpg

megmentésük érdekében nagyon hasznos egy talajnedvesség szenzor+arduino használata. Ha kezd kiszáradni a föld, akkor felgyullad egy piros LED. (már ha van a cserépben föld.. előfordult már, hogy táptalaj nélkül élt szegény, viszont kárpótlásul a legmenőbb cserép az övé). Jelenleg tehát csak alapfunkciókkal rendelkezik, de vannak továbbfejlesztési ötletek, pl.: állítható legyen a kritikus szárazföld jelzés, mivel van olyan növény, aminek nedvesebb talaj kell és van, aminek kevesebb víz lásd. kaktusz. Az igazán menő pedig az lenne, ha sms-t vagy e-mailt küldene, amikor kezd haldokolni a virág. 

plant-tweeting.jpg

 

Lego+Kinect és egy kis Arduino

Szakdolgozat írásba kezdtem. :) Témám: Lego nxt robot vezérlése Kinect segítségével. 

Cél: A Microsoft által gyártott szoftver felismeri a kéz gesztusait és ily módon tudom majd irányítani a robotomat, előre, hátra, jobbra, balra. És hogy legyen benne kihívás: Labview-ben implementálom. Ezzel akad bőven munka, mivel a Kinect és Labview nem nagyon akar együttműködni, viszont youtube-n láttam már pár kész változatot, tehát nem adom fel, biztos lesz rá megoldás. :) A lényeg, hogy a Kinect SDK működik, 3D skeletont már tudom tanulmányozni. Hogy jön ide az Arduino? Keresgélés közben találtam rá arra, hogy sok más lehetőség mellett LabView-ben is lehet programozni ezt a kis csodát. Valamint Kinect-tel is lehet irányítani egy Arduino uno modullal rendelkező autót. Ha korábban feltalálják, mit amikor a szakdoga témát választom, lehet mellette döntök. 

 

 

Megérkezett :)

void setup() {
    // initialize digital pin 13 as an output. --> itt van a villógó led :)

     pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever

void loop() {
     digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) --> világít a led
     delay(100); // wait for a second
     digitalWrite(13, LOW); // turn the LED off by making the voltage LOW -->nem világít a led
    delay(100); // wait for a second
}


Terveim szerint Ubuntu alatt szeretnék majd vele alkotni, de kommunikációs problémában ütköztem, de folyamatban van a működésre bírása is. Windows alatt tökéletes. 

Mindig nagy öröm, ha egy progi működik és felvillan a pici led :) Szerintem ilyen élmény lehet egy gyerek világra hozása is. 

 

WP_002773.jpg

Címkék: led arduino

Első programom - kezdetek

A program két fő részből áll:

A setup() az előkészítés, alapbeállítások inicializálását írja le. Funkcionális rész a változók deklarálását tartalmazza, melyet a program elején kell megcsinálni. Ez az első funkcióhívás, mely lefut a program elején egyetlen egyszer és csak ekkor. Itt kell meghatározni pl a chip lábak irányát (pinMode) vagy a  soros kommunikációt inicializálni. A programba mindenképpen be kell illeszteni ezt a funkcióhívást, még ha semmit sem végzünk benne, akkor is!!

void setup(){

                pinMode(pin,OUTPUT);

}              //pin (chipláb) kimeneteként kerül beállításra

 

A loop() a tényleges végrehajtó, futó rész. Az itt felsorolt utasítások folyamatosan ismétlődnek. Pl. bemenetek olvasása, kimenetek beállítása.. stb Ez az Arduino programja.

ELSŐ PROGRAM:

a kimenetek logikai magas (High) vagy logikai alacsony (Low)  állapotban lehetnek, azaz a kivezetést ki/bekapcsolhatjuk. A kivezetés azonosítója 0-13 (arduino Mega esetén 0-53

a példában egy nyomógomb állapotát olvashatjuk be, mely függvényében az egyik digitális kivezetésre kötött LED gyullad ki vagy alszik el.  

int led=13;

int pin=7;

int value=0;

void setup(){

                pinMode(led,OUTPUT);

                pinMODE(pid, INPUT);

}

void loop(){

                value=digitalREead(pin);

                digitalWrite(led,value);

}

süti beállítások módosítása