Date: 7. Januar 2010
Duration of activity: ? hours (10.30)
Group members participating: Heine Stokholm, Michael Vilhelmsen og Mads Møller Jensen
Group members participating: Heine Stokholm, Michael Vilhelmsen og Mads Møller Jensen
Dagens mål
- Modificer banen en smule
- Få robotten til at huske, hvad den har set
- Arbejde med BlueTooth-kommunikationen
Banen
Vi har arbejdet lidt med banen og gjort midterlinjerne lidt smallere, der hvor robotten kom i problemer i forhold til kanten af den pladen, hvorpå banen er bygget. Dette har hjulpet betydeligt, men der er stadig lidt småproblemer. Vi overvejer at pille alle midterstriber op og lave nogle nye. Arbejdet med at lægge de første er nemlig udført en smule sjusket, så vi har flossede kanter, som forvirrer PID-systemet i LineFolloweren, og derved gør det svært for robotten at rette helt op. Derudover kan vi se, at nogle af stregerne er lagt en anelse skævt med samme problem som før til følge. Vi planlægger at lægge de nye midterstriber på mandag, hvor vi kan skaffe en hobbykniv, som forhåbentlig kan give os nogle mere stabile streger.
BlueTooth
Pc delen af vores bluetooth kommunikation kan ses her : kode
Vi har taget udgangspunkt i BTSend.java som er et bluetooth eksempel der kom lejos. Vores program fungerer sådan at vi først skaber en bluetooth forbindelse til thor(1). Derefter looper vi 9 gange(2) hvori vi sender en int afsted og venter på at få en int tilbage.(3) Den modtagne int bliver sendt afsted til vores roadmapRepresentation som bliver beskrevet andet steds (4).
Robotten står så samtidig og venter på at modtage en int. Når den har fået en sender den representation af det næste tile tilbage til pc'en. Det er en meget simpel protokol vi har fået bygget op, men den opfylder vores behov.
Pc delen af vores bluetooth kommunikation kan ses her : kode
Vi har taget udgangspunkt i BTSend.java som er et bluetooth eksempel der kom lejos. Vores program fungerer sådan at vi først skaber en bluetooth forbindelse til thor(1). Derefter looper vi 9 gange(2) hvori vi sender en int afsted og venter på at få en int tilbage.(3) Den modtagne int bliver sendt afsted til vores roadmapRepresentation som bliver beskrevet andet steds (4).
Robotten står så samtidig og venter på at modtage en int. Når den har fået en sender den representation af det næste tile tilbage til pc'en. Det er en meget simpel protokol vi har fået bygget op, men den opfylder vores behov.
public void getMap(){
NXTConnector conn = new NXTConnector();
RoadmapRepresentation mads = new RoadmapRepresentation(this);
// Connect to any NXT over Bluetooth
boolean connected = conn.connectTo("btspp://");(1)
if (!connected) {
System.err.println("Failed to connect to any NXT");
System.exit(1);
}
DataOutputStream dos = conn.getDataOut();
DataInputStream dis = conn.getDataIn();
for(int i=0;i<9;i++) {(2)
try {
System.out.println("Sending " + (0));
dos.writeInt(0);
dos.flush();
} catch (IOException ioe) {
System.out.println("IO Exception writing bytes:");
System.out.println(ioe.getMessage());
break;
}
try {
int temp = dis.readInt();(3)
System.out.println("fik " + temp);
mads.addInt(temp);(4)
} catch (IOException ioe) {
System.out.println("IO Exception reading bytes:");
System.out.println(ioe.getMessage());
break;
}
}
try {
dis.close();
dos.close();
conn.close();
} catch (IOException ioe) {
System.out.println("IOException closing connection:");
System.out.println(ioe.getMessage());
}
mads.main(null);
}
Status
Robotten kan køre banen og sende information tilbage til computeren. Dog kører robotten ikke banen igennem hver gang, så vi håber at de nye streger kan rette op på den inkonsistens, vi har nu.
Næste gang
Næste gang skal vi lave de nye streger. Det betyder også at vi endnu engang skal regulere vores PID-system i LineFolloweren. Vi skal derudover også implementere, at vi gennem den grafiske repræsentation, kan få robotten til at et bestemt modul, som vi aktiverer på computeren.
Næste gang skal vi lave de nye streger. Det betyder også at vi endnu engang skal regulere vores PID-system i LineFolloweren. Vi skal derudover også implementere, at vi gennem den grafiske repræsentation, kan få robotten til at et bestemt modul, som vi aktiverer på computeren.