To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.spyboticsOpen lugnet.robotics.spybotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / Spybotics / 423
422  |  424
Subject: 
Controlling up to 3 manas from 1 spybot!
Newsgroups: 
lugnet.robotics.spybotics
Date: 
Sun, 5 Mar 2006 15:22:19 GMT
Viewed: 
9816 times
  
Based on some code i found around here from John Barnes i rewrote his RCX2Manas
control.

Now it is cappable to control 3 manas units from 1 single spybot.

The next NQC code drives the motors of all of them just for demo..
You can build your own motor control scheme by calling the specific motor (em1 -
em6) Followed by EM_OFF, EM_FWD, EM_REV or EM_FLOAT.
Don't forget if you have the motors set to call 'task manas()'

Hopefully it will come handy for somebody.

Greetings,
Daniel Wittenaar
Brickbash Robotics
www.brickbash.nl


//Copyright by John Barnes making this programm for RCX use.
//Editted by Daniel Wittenaar - Brickbash Robotics for Spybotic use.
//For more information about the manas protocol go to
http://news.lugnet.com/robotics/?n=15809
#define MANAS_1 5
#define MANAS_2 6
#define MANAS_3 7
#define EM_FLOAT 0
#define EM_OFF 8
#define EM_FWD 7
#define EM_REV 15

int em1,em2,em3,em4,em5,em6; //Global motor control locations

task main()
{
// This demo starts the manas comms task, then loops forever.
// In the loop, it steps through three control phases setting
// the motors to off, and then paired forward and reverse.

start manas;

while (true)
{
em1=EM_OFF;
em2=EM_OFF;
em3=EM_OFF;
em4=EM_OFF;
em5=EM_OFF;
em6=EM_OFF;

Wait(100);

em1=EM_FWD;
em2=EM_REV;
em3=EM_FWD;
em4=EM_REV;
em5=EM_FWD;
em6=EM_REV;

Wait(100);

em1=EM_REV;
em2=EM_FWD;
em3=EM_REV;
em4=EM_FWD;
em5=EM_REV;
em6=EM_FWD;

Wait(100);

}
}
// The manas task continuously resends the motor settings.
// When the Spybotic is halted, this task stops and the manas
// motors automatically shut off

task manas()
{

while (true)
{

// First ensure serial settings are still ok
SetSerialType(SERIAL_TYPE_USER);
SetSerialBaud(SERIAL_BAUD_4800);
SetSerialChannel(SERIAL_CHANNEL_IR);
SetSerialChecksum(SERIAL_CHECKSUM_SUM);


// Set the first unit two message bytes and send them
SetSerialData(0,MANAS_1*0x10+em1);
SetSerialData(1,em2*0x10+0x10-((MANAS_1+em1+em2)&0xf));
SendSerial(0,2);

// Set the second unit two message bytes and send them
SetSerialData(0,MANAS_2*0x10+em3);
SetSerialData(1,em4*0x10+0x10-((MANAS_2+em3+em4)&0xf));
SendSerial(0,2);

// Set the third unit two message bytes and send them
SetSerialData(0,MANAS_3*0x10+em5);
SetSerialData(1,em6*0x10+0x10-((MANAS_3+em5+em6)&0xf));
SendSerial(0,2);

// Delay for a while so we can resend them regularly
Wait(10);
}
}



Message has 1 Reply:
  Re: Controlling up to 3 manas from 1 spybot!
 
(...) ! Then I will add two Spybotics nodes in to the 6 Mana/Legged robot I am building. When I complete it would someone like to program it? e (19 years ago, 15-Mar-06, to lugnet.robotics.spybotics)

2 Messages in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR