Hallo, Ik ben bezig met een project om een BOE-bot(Parallax) te besturen met bluetooth, Aangezien ik geen deftige hulp krijg van parallax support richt ik mij tot dit forum. De bluetooth verbinding is tot stand gebracht met een bluetooth dongle(op pc) en een Easy Bluetooth module van parallax(Op de robot zelf). Ik heb de robot geprogrammeerd met Pbasic.

Het probleem is dat de besturing niet zo vlot verloopt als zou moeten. De bedoeling is dat ik met de pijltjes op mijn toetsenbord de robot bestuur, maar de robot rijd niet vloeiend maar in schokjes + als ik een toets ingedrukt houd stopt hij gewoon met reageren.

Ik heb hetzelfde programma gedraait(zelfde principe) met een usb-verbinding en dit verliep wel goed, dus ik dacht meteen dat het aan de snelheid van de bluetooth-verbinding lag. Volgens de Support mensen van Parallax is dit niet het geval en moet het aan de code liggen. Dit vond ik heel raar omdat ik het standaard programma(dat op hun site staat) heb gebruikt. Ik weet echt niet wat het probleem zou kunnen zijn dus ik heb de code bijgevoegd

'Dit is een programma dat via bluetooth de BOE-bot bestuurd, na het programma te hebben ingeladen zal de gebruiker een nieuwe Debug terminal moetten openen met CTRL-D,
'dan krijgt de gebruiker een interface waar hij de karakters z(vooruit) , s(achteruit) , q(links draaien) , d(rechts draaien)

' {$STAMP BS2}
' {$PBASIC 2.5}

RX PIN 2
TX PIN 0
ltServo PIN 13
rtServo PIN 12

FwdLtFast CON 850
BwdLtFast CON 650
FwdRtFast CON 699
BwdRtFast CON 850

Baud CON 84

myByte VAR Byte
index VAR Word
character VAR Word

dirChar VAR Word

PingServo PIN 14
Ping PIN 15

BotServoLeft PIN 13
BotServoRight PIN 12

LimitLeft CON 1250
LimitRight CON 250
Center CON 750
Increment CON 15
MinSweep CON 40

FwdLeftFast CON 850
FwdRightFast CON 660
RotateRight CON 764
RotateLeft CON 733
BtwnPulses CON 20

CmConstant CON 2260
SinCosTo256 CON 517
Ms20 CON 330

Negative CON 1
Positive CON 0

PingDirToAngle CON 8454
PingAxleOffset CON 7

' -----[ Variables ]----------------------------------------------------------

time VAR Word
pingDir VAR Word
x VAR Word
y VAR Word
distance VAR Time
markDir VAR y
rightMark VAR x
leftMark VAR pingDir
pulses VAR x
PrevDist VAR Byte
angle VAR Byte
counter VAR angle
minDist VAR angle
sweepInc VAR Nib
sweepDir VAR Bit
xSign VAR Bit
ySign VAR xSign
pSign VAR Bit
edgesFound VAR Bit

DATA CLS,
" ", CR, ' 14
" ", CR, ' 28
" | ", CR, ' 42
" --o-- ", CR, ' 56
" | ", CR, ' 70
" ", CR, ' 84
" ", CR ' 98

PAUSE 250
SERIN RX, Baud, [myByte]
myByte = 0

FOR index = 0 TO 99
READ index, character
SEROUT TX, Baud, [character]
NEXT

SEROUT TX, BAUD, [CR, CR, "Program Running..."]

DO

SERIN RX, Baud, [dirChar]

IF (dirChar = "8") OR (dirChar = "z") THEN
GOSUB Forward
ELSEIF (dirChar = "2") OR (dirChar = "s") THEN
GOSUB Backward
ELSEIF (dirChar = "4") OR (dirChar = "q") THEN
GOSUB Left
ELSEIF (dirChar = "6") OR (dirChar = "d") THEN
GOSUB Right
ELSEIF (dirChar = "c") THEN
GOSUB Closest_object
ENDIF
LOOP

Forward:

SEROUT TX, BAUD, [CRSRXY, 7, 0, "*", CRSRXY, 6, 1, "*", CRSRXY, 8, 1, "*"]
FOR counter = 1 TO 20
PULSOUT ltServo, FwdLtFast
PULSOUT rtServo, FwdRtFast
PAUSE 20
NEXT
SEROUT TX, BAUD, [CRSRXY, 7, 0, " ", CRSRXY, 6, 1, " ", CRSRXY, 8, 1, " "]

RETURN

Backward:

SEROUT TX, BAUD, [CRSRXY, 7, 6, "*", CRSRXY, 6, 5, "*", CRSRXY, 8, 5, "*"]
FOR counter = 1 TO 20
PULSOUT ltServo, BwdLtFast
PULSOUT rtServo, BwdRtFast
PAUSE 20
NEXT
SEROUT TX, BAUD, [CRSRXY, 7, 6, " ", CRSRXY, 6, 5, " ", CRSRXY, 8, 5, " "]

RETURN

Left:

SEROUT TX, BAUD, [CRSRXY, 3, 3, "*", CRSRXY, 4, 2, "*", CRSRXY, 4, 4, "*"]
FOR counter = 1 TO 7
PULSOUT ltServo, FwdRtFast
PULSOUT rtServo, FwdRtFast
PAUSE 20
NEXT
SEROUT TX, BAUD, [CRSRXY, 3, 3, " ", CRSRXY, 4, 2, " ", CRSRXY, 4, 4, " "]

RETURN

Right:

SEROUT TX, BAUD, [CRSRXY, 11, 3, "*", CRSRXY, 10, 2, "*", CRSRXY, 10, 4, "*"]
FOR counter = 1 TO 7
PULSOUT ltServo, FwdLtFast
PULSOUT rtServo, FwdLtFast
PAUSE 20
NEXT
SEROUT TX, BAUD, [CRSRXY, 11, 3, " ", CRSRXY, 10, 2, " ", CRSRXY, 10, 4, " "]

RETURN

Ik hoop dat jullie mij hierbij kunnen helpen. Ik weet dat het nogal een specifiek probleem is en dat er niet zo extreem veel mensen werken met deze robots/taal maar alle hulp & tips zijn meer dan welkom.

Alvast bedankt,

Sebastiaan Viaene