torsdag 28 februari 2008

Första sjötesterna

Lite i tjuvstart har vi så sakteliga börat dra igång de första sjötesterna. Båten skall egentligen först målas och tätas bättre. Inledande testet var mest för att se om den flöt ordentligt och kunde styras, vilket den klarade fint. Problemen bestod främst av att batterierna inte räcker till, samt att den felnavigering som satte båten på grund ledde till ett oförberett bad. Inför nästa test ska vi också hitta en lämplig sjö som inte är fylld med gamla ruttna grenar.

måndag 25 februari 2008

Om omborddatorn

För de intresserade finns här att läsa den programvara som båten kör på omborddatorn. Koden är bara ett utkast, den går att optimera avsevärt. Istället för signaler från en GPS-mottagare använder sig båten än så länge av ett antal förinställda kommandon som talar om roderposition och hastighet. Vid en given signal från fjärrkontrollen tar omborddatorn över och utför kommandona i sekvens. När den gått igenom dessa lämnar den tillbaka kontrollen till fjärrkontrollen. Är man inte nöjd med hur båten beter sig kan man avbryta den förprogrammerade rutten, manuellt köra in till stranden, och där uppdatera instruktionerna genom att koppla in en laptop till seriellporten i båtens förarkabin.

' {$STAMP BS2e}
' {$PBASIC 2.5}

roder VAR Word
roder2 VAR Word
roder3 VAR Word
fetcha VAR Word
motor VAR Word
motor2 VAR Word
rekna VAR Word
inte VAR Word
ful VAR Word
tid VAR Word
servopos VAR Word
motorpos VAR Word

DATA 1, 3, 1, 50, 3, 50, 50

manual:
HIGH 3
LOW 4

DO
roder3=roder2
roder2 = (roder - 530) / 10
motor2 = (motor - 530) / 10
IF motor2 < 1 THEN motor2 = 1
IF roder2 > 100 THEN roder2 = 1
PULSIN 0, 1, roder
PULSIN 2, 1, motor
PULSOUT 14, roder
PULSOUT 15, motor
IF motor2 > 0 AND motor2 <> (roder3-5) THEN rekna = rekna +1
IF roder2 > (roder3+5) OR roder2 < (roder3-5) THEN rekna = 0
IF motor > 600 THEN rekna = 0
IF rekna > 100 THEN
HIGH 4
HIGH 3
PULSIN 1, 1, fetcha
IF fetcha > 850 THEN
rekna = 0
GOTO stampen
ENDIF
ENDIF
IF rekna < 100 THEN
HIGH 3
LOW 4
ENDIF

LOOP

stampen:
HIGH 4
LOW 3
DO
FOR inte = 1 TO 500 STEP 3
READ inte, tid
READ inte+1, servopos
READ inte+2, motorpos
IF tid = 0 AND servopos = 0 AND motorpos = 0 THEN
tid = 1
servopos = 20
motorpos = 0
GOTO manual
ENDIF
GOSUB skicka
NEXT

LOOP

skicka:
FOR rekna = 0 TO tid
FOR ful = 1 TO 50
PULSOUT 14, (servopos*10)+530
PULSOUT 15, (motorpos*10)+530
PAUSE 20
NEXT
GOSUB decartes
IF rekna = tid THEN RETURN
NEXT
RETURN

decartes:
roder3=roder2
motor2 = (motor - 530) / 10
roder2 = (roder - 530) / 10
IF motor2 < 1 THEN motor2 = 1
IF roder2 > 100 THEN roder2 = 1
PULSIN 0, 1, roder
PULSIN 2, 1, motor
IF motor2 > 500 THEN motor2 = 1
IF motor2 > 5 THEN GOTO manual
IF roder > 100 THEN
IF roder3>(roder2+5) OR roder3<(roder2-5) THEN GOTO manual
ENDIF

RETURN

söndag 24 februari 2008

Jungfrufärd!



Jungfrufärd! Den 24 februari klockan 20:51 färdades båten en knapp meter för egen masik i ett inhägnat område. All kommunikation och kontroll går igenom omborddatorn.


fredag 22 februari 2008



Nu närmar sig första testet i vatten. Båten har nu en trådlös mottagare som är kopplad till mikroprocessorn (Stampen). Via denna kan man antingen styra båten manuellt, eller lämna över till ett automatiskt program som styr båten fram och tillbaks. I videon ovan styrs rodret och motorn via Stampen!

Båten har alltså ingen GPS ännu. Målet med detta första test är att se så att mottagaren fungerar, att båten kan köras automatiskt samt att räkna ut hur mycket rodret måste vinklas för att svänga ett visst antal grader.