Programeringsfrågor C++ radiostyrd båt

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Glattnos
Inlägg: 2983
Blev medlem: 29 oktober 2009, 20:01:18

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Glattnos »

Det händer inte så mycket med detta projekt just för tillfället men jag lägger upp några bilder från bygget i alla fall :)

Skar ut skivor ur 50mm markskivor och "limmade" ihop dom med fogskum. Sen var det bara att slipa bort "taggigheten" och jämna till formerna innan glasfiberlamineringen kunde genomföras. Slipning och målning som kunde gjorts bättre men det är ingen utställningsbåt :)
Montering av mekanik och elektronik gick enligt planen. Vid test dök det upp problem med kompassen och lidarn som finns att läsa om tidigare i tråden. Båda dessa problem är lösta på arbetsbänken men kräver lite modifieringar av styrkortet plus lite ändringar i programmet. Tid till det kommer så småningom :)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Magnus_K »

Oj! Hade helt missat storleken på båten!
Har nog också missat syftet med den. Ska du mappa upp sjöbotten?

Riktigt stiligt bygge, kämpa på :tumupp: :bravo:
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Lennart Aspenryd »

Glasklart användningsområde! Medicin och post till skärgårdsöar! Kan vi tänka oss autonoma bilar så är vissa saker mer värda att ta hand om.
Kolla Ny Tekniks grej om autonoma brandbekämpare.

Men hur skar du ut segmenten? Vilket program för att skapa spanten!
Glattnos
Inlägg: 2983
Blev medlem: 29 oktober 2009, 20:01:18

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Glattnos »

Primärt är att mappa sjöbotten parallellt med att man gör det med en vanlig båt så man hela tiden har kontroll på vad båten gör och kan ingripa för att förebygga risker.
Enligt transportstyrelsen är operatören av en autonom båt den som likställs med befälhavare på en vanlig båt. Dom har än så länge inget specifikt regelverk men säger sig positiva till denna typ av utveckling och vill att det ska vara möjligt med liknande projekt snarare än att motarbeta eller sätta käppar i hjulen.
Säkerheten är såklart jätteviktig och som operatör har man samma ansvar som en befälhavare har ombord på andra båtar och fartyg.

Jag byggde en ”gaffel” med en elementtråd spänd mellan spetsarna och satte den på min CNC-ram :)

Programmet är SolidWorks, inget direkt automatiskt utan ganska manuellt. Jag har en tråd om det också nånstans.
Användarvisningsbild
KLset
Inlägg: 207
Blev medlem: 31 augusti 2014, 17:36:19
Ort: Uppsala

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av KLset »

En av färjorna som går till Danmark från västkusten vet jag har ett system som varnar i god tid för kollisioner, upp till 15 minuter innan. Jag minns inte om kaptenen nämnde att systemet kan väja automatiskt, men det vore ju inte dumt.

Väldigt snyggt bygge förresten. Videon var intressant också.
Glattnos
Inlägg: 2983
Blev medlem: 29 oktober 2009, 20:01:18

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Glattnos »

AIS kan ju identifiera kollisionskurser men det funkar bara på fartyg med AIS så man kan ändå krocka med en båt utan. Fast det är ju då båten ska börja använda sin Lidar :)
Glattnos
Inlägg: 2983
Blev medlem: 29 oktober 2009, 20:01:18

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Glattnos »

En programmeringsfråga. Jag kan nog få till det med några AND och OR men får inte riktigt till någon snygg och enkel lösning, trots att det känns som att det borde finnas och jag programmerar än så länge lite för sällan för att ha huvudet helt skarpt mellan gångerna. Jag ska köra en display med 8-bitars parallellt interface och vill lägga koppla de 4 låga bitarna från en ut-port och de höga bitarna från en annan ut-port.

Säg att jag har 0b11000011 och vill lägga 1100 på de höga bitarna på PORTB och 0011 på de låga bitarna på PORTD och vill inte att övriga bitar ändras i portarna. Jag kan såklart läsa in PINB och PIND i variabler, manipulera värdena och sen skriva variablernas värden till PORTB och PORTD. Men det känns inte helt säkert ifall det händer nått på portarna under tiden, man kan ju stänga av avbrott under tiden men då kan man väl även bomma lite om man har externa avbrott som är viktigt?

Finns det nått enkelt och direkt sätt att göra detta på?
Shimonu
Inlägg: 294
Blev medlem: 21 oktober 2015, 22:44:33

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Shimonu »

Kod: Markera allt

PORTB = (PORTB & 0b00001111) | 0b11000000
Eller tänker jag fel?

Är portarna output eller vill du göra något typ av pull-up?
Glattnos
Inlägg: 2983
Blev medlem: 29 oktober 2009, 20:01:18

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Glattnos »

Aaa...ja det måste ju funka. Tackar så mycket för det :)

Det är förstås så att de andra pinnarna kan ju vara lite blandat va det är(input, output, UART mm). Det kanske påverkar, måste kolla det :humm:
Användarvisningsbild
AndLi
Inlägg: 17098
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av AndLi »

Hmm jag är ju också i färd med att dra igång ett mappa sjöbotten projekt (eller mer exakt älv)

Min båt var tänkt att vara mycket mindre, men det kanske är dumt... Känns ju som att det blir stabilare så här!

Vad är det för motor du kör med?
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Mr Andersson »

Shimonu skrev:

Kod: Markera allt

PORTB = (PORTB & 0b00001111) | 0b11000000
Eller tänker jag fel?

Är portarna output eller vill du göra något typ av pull-up?
Det fungerar, om man är helt säker på att inga interrupts kan ändra i de andra 4 bitarna. AVR har inte atomisk read-modify-write.
Vill man ha en garanterat felfri lösning tror jag enda alternativet är att använda cbi/sbi-instruktionerna på en bit i taget. (Med reservation för att kompilatorn kanske är smart nog att själv använda dem)
Glattnos
Inlägg: 2983
Blev medlem: 29 oktober 2009, 20:01:18

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Glattnos »

AndLi skrev:Hmm jag är ju också i färd med att dra igång ett mappa sjöbotten projekt (eller mer exakt älv)
Min båt var tänkt att vara mycket mindre, men det kanske är dumt... Känns ju som att det blir stabilare så här!
Vad är det för motor du kör med?
Jag har Biltemas mindre motor och har byggt så ett RC-servo styr den, den kan styra lite drygt 180 grader vilket gör att den kan "vända på plats".
Denna båt går väldigt bra även i lite vågor och den kan hålla hyffsad fart. Jag tror att den optimala storleken beror på var den ska köra, för en inte allt för ström älv så är nog lite mindre att föredra.
Som råd gällande storleken kan jag säga att bygg antingen lite mindre eller rätt mycket större än min eftersom min är nästan omöjlig att hantera på en person och om det ändå krävs två så hade ännu lite större varit okej så man kan ha fler solceller mm. Använd inte motorer för RC-båtar utan använd någon elmotor för vanliga båtar, typ Biltemas. Fartreglage för RC-bil funkar men jag har haft problem med att mitt inte vill starta om batterispänningen är för hög, vilket den blir ibland med solcells-laddning. Någon annan typ av motor-controller är nog att föredra.
Glattnos
Inlägg: 2983
Blev medlem: 29 oktober 2009, 20:01:18

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Glattnos »

Så detta borde funka?

Kod: Markera allt

#define PORT_LOW PORTB
#define PORT_HIGH PORTD
#define IN_PORT_LOW PINB
#define IN_PORT_HIGH PIND

void Set_Byte (uint8_t a){
	PORT_HIGH = (IN_PORT_HIGH & 0b00001111) | (a & 0b11110000);
	PORT_LOW = (IN_PORT_LOW & 0b11110000) | (a & 0b00001111);
}
Kanske krånglar jag till det genom att köra PINB och PINB? Alltså vissa bitar kommer ju vara output och vissa input som det ser ut :humm:
Användarvisningsbild
Andax
Inlägg: 4373
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Re: Programeringsfrågor C++ radiostyrd båt

Inlägg av Andax »

Det är fortfarande möjligt att IN_PORT_HIGH och IN_PORT_LOW ändrar sig under tiden funktionen utförs.
Skriv svar