|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools |
Rating:
|
Display Modes |
|
#31
|
|
Re: Driver Station Usb
simple test program for arduino which i am using for the pots right now
Code:
#include <Wire.h>
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
}
byte value = 0;
byte ch1 = 0x28;
byte ch2 = 0x29;
byte pot1 = 0xA9;
byte pot2 = 0xAA;
void loop()
{
writePot(ch1, pot1, value);
writePot(ch1, pot2, value);
writePot(ch2, pot1, value);
writePot(ch2, pot2, value);
value++; // increment value
if(value == 256)
{
value = 0; // start over from lowest value
}
delay(100);
}
void writePot(int chip, int pot, int val)
{
Wire.beginTransmission(chip); // transmit to device 0x28)
Wire.send(pot); // sends instruction byte,
// write to potentiometer-0
Wire.send(val); // sends potentiometer value byte
Wire.endTransmission(); // stop transmitting
}
|
|
#32
|
|
Re: Driver Station Usb
here is the code for the arduino, the touchscreen has its own processor that talks over ttl serial to the arduino
the arduino takes the output from the screen to the DS io pins Code:
#include <Wire.h>
#include <AFSoftSerial.h>
#define rxPin 3
#define txPin 2
AFSoftSerial touchscreen = AFSoftSerial(rxPin, txPin);
byte ch1 = 0x28;
byte ch2 = 0x29;
byte pot1 = 0xA9;
byte pot2 = 0xAA;
int stopPin = 4, newData = 5, validRx = 6;
void setup()
{
pinMode(rxPin, INPUT);//set recieve as an input
pinMode(txPin, OUTPUT);//set transmit as an output
pinMode(stopPin, OUTPUT);
pinMode(newData, OUTPUT);
pinMode(validRx, INPUT);
touchscreen.begin(9600);
Wire.begin(); // join i2c bus (address optional for master)
}
int points = 0;
bool stop = false;
void loop()
{
int x = 0, y = 0;
boolean recieved = digitalRead(validRx);
boolean changePoint = touchscreen.available() >= 2
&& (recieved || points == 0)
&& !stop;
if(stop){
digitalWrite(newData, LOW);
digitalWrite(stopPin, HIGH);
}
if(recieved){
digitalWrite(newData, LOW);
delay(100);
}
if(changePoint)
{
x = touchscreen.read();
y = touchscreen.read();
if(touchscreen.available() == 1 && touchscreen.read() == 's')
stop = true;
points++;
if(points >= 50)
stop = true;
writePot(ch1, pot1, x * 2);
writePot(ch1, pot2, y * 2); //
writePot(ch2, pot1, points * 5); // point num
digitalWrite(newData, HIGH);
}
}
void writePot(int chip, int pot, int val)
{
Wire.beginTransmission(chip); // transmit to device 0x28)
Wire.send(pot); // sends instruction byte,
// write to potentiometer-0
Wire.send(val); // sends potentiometer value byte
Wire.endTransmission(); // stop transmitting
}
|
|
#33
|
|
Re: Driver Station Usb
digi pots on breadboard, just waiting to be soldered
|
|
#34
|
|
Re: Driver Station Usb
now all thats missing is the screen and prototyping shield
The Pwm wires plug into the drivers station, which go to a db9 connector. the db9 is used so that the drivers dont have to unplug the PWMs to take it out of the box for strategy planning. because i would imagine that the pwms could get plugged in incorrectly and fry the screen ![]() Last edited by biojae : 12-08-2009 at 14:48. |
|
#35
|
|
Re: Driver Station Usb
The Pwm cords go to the driverstation, the serial port to the screen
(and i just noticed how far away from USB I've gotten, the title is definatly incorrect) The parts are definatly shipped ![]() Last edited by biojae : 12-08-2009 at 22:59. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Driver Station S.O.S. | M. Gildner | Electrical | 15 | 28-11-2009 19:35 |
| Driver Station | dnrobotics11 | Control System | 2 | 18-02-2009 21:35 |
| driver station does not recognize usb 3 or 4... | aksharma | Technical Discussion | 0 | 07-02-2009 12:57 |
| Driver station only regognizes USB 1 and 2 | cvxdes | Programming | 14 | 05-02-2009 14:40 |