Difference between revisions of "JBrain Robot"

From RoboWiki
Jump to: navigation, search
(New page: Použili sme staré šasi zo šuflíka na jednoduchú aplikáciu dosky jBrain. Plastová základná doska nesie dva jednosmerné motorčeky, ktoré vznikli úpravou modelárskych servomoto...)
 
Line 6: Line 6:
 
Najprv sme robota skúsili ovládať diaľkovo cez BT interface. Použili sme priamo ukážkový program zo stránok c-bot.eu.
 
Najprv sme robota skúsili ovládať diaľkovo cez BT interface. Použili sme priamo ukážkový program zo stránok c-bot.eu.
  
Ďalším krokom bolo pripojenie Line senzora cez zbernicu i2c. Problém bol len v tom, že knižničné funkcie predpokladajú aj existenciu vnútorných registrov zariadenia na i2c zbernici, ale tento senzor má len jeden jediný register - ten, ktorý obsahuje stav senzora.
+
Ďalším krokom bolo pripojenie [[Line Following Sensor]]-a cez zbernicu i2c. Problém bol len v tom, že knižničné funkcie predpokladajú aj existenciu vnútorných registrov zariadenia na i2c zbernici, ale tento senzor má len jeden jediný register - ten, ktorý obsahuje stav senzora.
 
Napokon sme tento problém vyriešili.  
 
Napokon sme tento problém vyriešili.  
  

Revision as of 23:36, 8 December 2009

Použili sme staré šasi zo šuflíka na jednoduchú aplikáciu dosky jBrain. Plastová základná doska nesie dva jednosmerné motorčeky, ktoré vznikli úpravou modelárskych servomotorčekov. Na rozdiel od bežnej úpravy, ktorá zachováva spôsob riadenia rýchlosti motorčeka šírkou impulzu, tieto dva mali celú elektroniku vyradenú (povedzme to priamo: zničenú) a tak fungovali len ako jednosmerné motorčeky s prevodovkou. Oba motorčeky sú priamo pripojené na dva na tento účel vyhradené výstupy dosky jBrain.

Šasi ďalej nesie olovenú batériu a dištančné stĺpiky pre jBrain. Neskôr sme robota vybavili ešte senzorom na čiaru LineSenzor od firmy Robotic Connection.

Najprv sme robota skúsili ovládať diaľkovo cez BT interface. Použili sme priamo ukážkový program zo stránok c-bot.eu.

Ďalším krokom bolo pripojenie Line Following Sensor-a cez zbernicu i2c. Problém bol len v tom, že knižničné funkcie predpokladajú aj existenciu vnútorných registrov zariadenia na i2c zbernici, ale tento senzor má len jeden jediný register - ten, ktorý obsahuje stav senzora. Napokon sme tento problém vyriešili.

Ukážkový program pre senzor:

package jBotBrain.Sensor;

import jBotBrain.hw.I2CPort;
import jBotBrain.hw.Led;

public class SensorMain {

	public static int getLine()
    {
        byte buffer[] = {0x00};
        I2CPort.i2cStart(0x50, 1, 0, buffer, 1, I2CPort.I2C_READ);
        int range = buffer[0] & 0x1F + 0x20;  // len 5 bitov nas zaujima
                                              // + 20 je kvoli prvej jednotke, inak sa nevypisu nevyznamne nuly
        return range;
    }

	public static void Dec2Bin(int n)
	{
		if (n == 0)
		   return;
		else
		  {
		    Dec2Bin(n/2);
		    System.out.print(""+n%2);  //Musi tam byt aspon kusok retazca
		  }
	}	
		

	public static void main(String[] args) throws InterruptedException
	{
         Led.GREEN2.set(Led.MODE_BLINK, 500);
         while(true)
         {
            int dist = getLine();
            System.out.print("Line sensor: ");
            Dec2Bin(dist); // Vytlaci binarne...
            System.out.print(" BIN \n");
            Thread.sleep(100);
         }
 	}
}

Napokon sme všetko pospájali dohromady a výsledok môžete vidieť na videu: