Eftersom jag lyckas med konststycket att bränna min 644P så kan jag passa på att skriva ett inlägg i väntan på den nya ska hamna i brevlådan.
Det har det inte blivit så mycket mekanik eftersom jag lyckades få ROV:en hyfsat tät förra gången. Det återstår lite i form av krympslang som ska monteras på kablar och mer fogning men det är inte så väldigt mycket jobb. Istället har jag ägnat mig åt elektroniken och programmeringen av den.
Det första jag tog tag i är mitt kraftkort. Jag bestämde mig för att helt göra om det och samtidigt hitta en plats där jag kan montera fast det ordentligt. Det låg tidigare löst i ROV:en. Inte helt snyggt eller bra.
Det bästa vore om det satt fast tillsammans med all annan elektronik men för få plats med det var jag tvungen att flytta runt ESC:erna. Men placeringen blev bra:

Efter en stunds lödning var alla komponenter monterade:

Pinout över kraftkortet. Själva iden med kortet är att det ska vara möjligt att sätta på/stänga av ROV:en på ett enkelt sätt. Man vill ju ogärna behöva demontera hela gaveln för att komma åt på/av knappen.


På elektronikkortet har det också hänt saker. Jag skippade min servostyrning och valde att lägga till en extern sådan istället då min servokod skapade en del jitter och hackig styrning. Det fick bli den minsta jag hade, ett Mikroservostyrsystem, längst upp till höger under alla kablar. En enkelt spänningsövervakning fick det också bli så jag har ett hum om batteriet.

Sedan blev det en hel del programmering för att få ihop allt. Jag slängde ut mitt gamla ASCII baserade protokoll och valde istället ett enklare(?) binärt protokoll. Paketen som skickas är 18 bytes stora (1 startbyte, 2 bytes topbits, 14 bytes data samt en sista byte 7 bitars CRC summa). Långt ifrån alla databytes används men tyckte det var lika bra att ta i. Startbyten definieras genom att enbart översta biten är satt, dvs. värdet 0x80. Inga andra byte än startbyten får ha översta biten satt för att tydligt kunna hitta starten på ett paket. Den uppenbara bristen är att värden i databyten blir starkt begränsad men det löste jag genom att använda placera översta biten i databyten i en egen byte. Eftersom jag har 14 bytes data behöver jag ha två bytes för att kunna spara de översta bitarna. Dessa specialbytes kallar jag för topbits. Detta med topbits sköter protokollet om själv så det är inget jag behöver tänka på när jag använder protokollet. Själva iden kommer från Pololus mikroservostyrsystem som har ett liknande protokoll. Huruvida det är bra eller inte låter jag vara osagt men det fungerar för mig (det hade säkert räckt att använda ett värde t.ex. 0xff för att markera starten på ett paket).
För att styra ROV:en använder jag en PS2 handkontroller. Layouten är enligt nedan bild och ganska självförklarande. Håller man inne knappen "Rapid camera movement" flyttar sig kameran i större steg (dvs. snabbare).

Jag försökte få igång RS485 igen häromkvällen men lyckades vända RS485 kretsen åt fel håll. Detta ledde till att jag inte längre kan programmera 644p kretsen i styrboxen. Eller snarare det går att programmera den men verifiering misslyckas varje gång. Nya (för att ha några i reserv) beställdes och kom idag! De är snabba på Electrokit!

Nu är jag förstås inte 100 % säker på att det var RS485 kretsen fel att 644P la av men jag kan inte komma på något annat.