Difference between revisions of "JBrain"
Line 1: | Line 1: | ||
− | [[Image:Doska_jBrain.jpg|150px|right | + | [[Image:Doska_jBrain.jpg|150px|right|Doska jBrain.]] |
Dostal som na vyskúšanie jednu z prvých dosiek jBrain (http://jbrain.c-bot.eu), ktorá sa v skutočnosti volá trocha ťažkopádne - jBotBrain. Po vybalení som si so záujmom prezrel doštičku s rozmermi 83 x 65 x 15 mm s hmotnosťou 50g. Na prvý pohľad zaujmú skrutkovacie svorkovnice na oboch okrajoch dosky. Na rozdiel od bežnejšieho pripájania pomocou kolíkových líšt poskytuje zvolený spôsob väčšiu robustnosť, ako sa na robotickú riadiacu jednotku patrí. Na jednom okraji je robustný USB-B konektor, ktorý je aj | Dostal som na vyskúšanie jednu z prvých dosiek jBrain (http://jbrain.c-bot.eu), ktorá sa v skutočnosti volá trocha ťažkopádne - jBotBrain. Po vybalení som si so záujmom prezrel doštičku s rozmermi 83 x 65 x 15 mm s hmotnosťou 50g. Na prvý pohľad zaujmú skrutkovacie svorkovnice na oboch okrajoch dosky. Na rozdiel od bežnejšieho pripájania pomocou kolíkových líšt poskytuje zvolený spôsob väčšiu robustnosť, ako sa na robotickú riadiacu jednotku patrí. Na jednom okraji je robustný USB-B konektor, ktorý je aj | ||
najvyššou súčiastkou na doske. Použitím mini-USB by mohla byť celá doska asi o 1 mm nižšia. Takto však znesie viacnásobné vyťahovanie a zasúvanie. Rozhranie USB slúži na nahrávanie užívateľských programov, ale i na komunikáciu. Hneď vedľa je modul rozhrania Bluetooth, ktoré sa dá vypnúť prepínačom BT_SW, kvôli úspore energie. Celá doska sa dá napájať napätím v rozsahu | najvyššou súčiastkou na doske. Použitím mini-USB by mohla byť celá doska asi o 1 mm nižšia. Takto však znesie viacnásobné vyťahovanie a zasúvanie. Rozhranie USB slúži na nahrávanie užívateľských programov, ale i na komunikáciu. Hneď vedľa je modul rozhrania Bluetooth, ktoré sa dá vypnúť prepínačom BT_SW, kvôli úspore energie. Celá doska sa dá napájať napätím v rozsahu | ||
Line 11: | Line 11: | ||
Bloková schéma zariadenia je na obrázku, podrobné schémy zapojenia zverejnili autori spolu s ostatnou dokumentáciou na stránkach projektu http://www.c-bot.eu | Bloková schéma zariadenia je na obrázku, podrobné schémy zapojenia zverejnili autori spolu s ostatnou dokumentáciou na stránkach projektu http://www.c-bot.eu | ||
− | [[Image:jBrainBlockDiagram.png|200px| | + | [[Image:jBrainBlockDiagram.png|200px|center|Bloková schéma jBrainu.]] |
Revision as of 14:27, 9 December 2009
Dostal som na vyskúšanie jednu z prvých dosiek jBrain (http://jbrain.c-bot.eu), ktorá sa v skutočnosti volá trocha ťažkopádne - jBotBrain. Po vybalení som si so záujmom prezrel doštičku s rozmermi 83 x 65 x 15 mm s hmotnosťou 50g. Na prvý pohľad zaujmú skrutkovacie svorkovnice na oboch okrajoch dosky. Na rozdiel od bežnejšieho pripájania pomocou kolíkových líšt poskytuje zvolený spôsob väčšiu robustnosť, ako sa na robotickú riadiacu jednotku patrí. Na jednom okraji je robustný USB-B konektor, ktorý je aj najvyššou súčiastkou na doske. Použitím mini-USB by mohla byť celá doska asi o 1 mm nižšia. Takto však znesie viacnásobné vyťahovanie a zasúvanie. Rozhranie USB slúži na nahrávanie užívateľských programov, ale i na komunikáciu. Hneď vedľa je modul rozhrania Bluetooth, ktoré sa dá vypnúť prepínačom BT_SW, kvôli úspore energie. Celá doska sa dá napájať napätím v rozsahu 6,5 až 14V. Potešilo ma, že na mojej doske bol ako stabilizátor napätia použitý spínaný zdroj Traco Power TSR 1-2450, takže aj pri napájaní dosky z 12 V batérie sa nijako zvlášť neprehrieval.
Na doske sa ďalej nachádzajú 4 užívateľské tlačidlá a 4 užívateľské LED diódy (v programe prístupné ako GREEN1, GREEN2, ORANGE a RED). Keďže doska je určená primárne pre roboty, nájdeme tu aj dvojnásobný H-mostík A3968 pre pripojenie dvoch jednosmerných motorčekov s prúdom do 1,3 A. Srdcom (či skôr mozgom) celej dosky je 32-bitový procesor Atmel AT91SAM7S256 postavený na ARM7 architektúre s 256kB Flash pamäti. Keďže počet vstupnovýstupných signálov autorom nestačil, doska obsahuje aj dcérsky procesor Atmel AVR ATmega 16L.
Na vstupnovýstupných svorkách je užívateľom k dispozícii stabilizované napájacie napätie 5 V (do 800 mA), 8 digitálnych vstupov, 8 výstupov, 4 analógové vstupy, 2 výstupy pre pripojenie motorčekov, i2c rozhranie a sériové rozhranie v úrovni TTL. Okrem toho má užívateľ k dispozícii už spomínané 4 tlačidlá, 4 LED diódy a BT rozhranie.
Bloková schéma zariadenia je na obrázku, podrobné schémy zapojenia zverejnili autori spolu s ostatnou dokumentáciou na stránkach projektu http://www.c-bot.eu
Zatiaľ sme sa nezmienili o programovaní. Doska je už od autorov naprogramovaná, je v nej bootloader a Java Virtual Machine, takže je zrejmé, že programy budeme písať v Jave. Autori ponúkajú na stiahnutie kompletné vývojové prostredie Eclipse, ktoré je doplnené o špeciálne knižnice pre túto dosku. V balíku je okrem toho aj program jConsole - jednoduchý sériový terminál, ktorým môžete s doskou komunikovať. Na stránkach projektu je k dispozícii niekoľko vzorových programov, ktoré slúžia ako veľmi dobrý odrazový mostík.
Takúto dosku by bolo škoda nevyskúšať aj na robotovi. Preto sme použili jedno šasi zo šuflíka a spravili z neho
jBrain Robot
Príklad programu:
package jBotBrain.Robot;
import jBotBrain.hw.I2CPort;
import jBotBrain.hw.Led;
import jBotBrain.hw.Motor;
public class RobotMain {
public static int getRange()
{
byte buffer[] = {0x00};
// I2CPort.i2cStart(0x50, 0, 1, buffer, 1, I2CPort.I2C_WRITE);
// Toto je jedina konfiguracia, ktora cita rozumne!!!
I2CPort.i2cStart(0x50, 1, 0, buffer, 1, I2CPort.I2C_READ);
int range = buffer[0] & 0x1F; // len 5 bitov nas zaujima
// + 20 je kvoli prvej
jednotke, inak sa nevypisu nevyznamne nuly
return range;
}
public static void main(String[] args) throws InterruptedException
{
// Inicializacia
Led.GREEN2.set(Led.MODE_BLINK, 500);
Motor.A.setDirection(Motor.MOTOR_FORWARD);
Motor.B.setDirection(Motor.MOTOR_FORWARD);
Motor.A.setSpeed(0);
Motor.B.setSpeed(0);
// Nekonecna slucka
while(true)
{
int dist = getRange(); // Zmeraj stav senzora
switch (dist) {
case 27: // ciara v strede, chod rovno
Motor.A.setSpeed(250);
Motor.B.setSpeed(250);
break;
case 7: // ciara vlavo, chod vpravo
case 15:
case 19:
case 23:
Motor.A.setSpeed(50);
Motor.B.setSpeed(250);
break;
case 25: // ciara vpravo, chod vlavo
case 28:
case 29:
case 30:
Motor.A.setSpeed(250);
Motor.B.setSpeed(50);
break;
default: // vsetko ostatne -> STOP!
Motor.A.setSpeed(0);
Motor.B.setSpeed(0);
break;
} // end of Switch
Thread.sleep(100);
} // end of while
} // end of Main
} // end of Class
Čo sa vám bude páčiť:
- Výkon dosky, pamäť, java. Všetko poskytuje dostatočnú kapacitu aj na pokročilé robotické projekty.
- Spínaný stabilizátor, malá spotreba.
- Množstvo periférií, doska je šitá na mieru robotickým aplikáciám.
- Bluetooth rozhranie s vypínačom.
- Zaujímavá dokumentácia (nie je ešte dokonalá, ale autori sú veľmi ústretoví).
Čo sa vám nebude páčiť:
- Chýbajúci vypínač na doske
- Neoddelené napájanie pre motory a procesory
- Že vám v manuáloch tykajú
- Zatiaľ slabá dokumentácia
- Nepopísané prerušenia a časovače
- Mojim WinXP sa nepáčilo prepínanie medzi režimom upload a comm.