RC monitor

Berätta om dina pågående projekt.
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

RC monitor

Inlägg av stekern »

Jag håller på med att knåpa ihop en RC monitor.
Följande funktioner finns/kommer finnas:

- 2 ingångar för monitorering av mottagarsignaler
- 2 utgångar till servos ESC etc
- USB interface för inställningar samt bootloader
- LCD display (alfanumerisk) för visning av information.
- möjlighet att koppla in extern GPS för fartmätning samt positionering (möjlighet till autopilot).
- 2 analoga ingångar för inkoppling av sensorer (t.ex. tempsensorer)
- batterivakt

kopplingschemat som det är på korten, dock har vissa smärre ändringar gjorts eftersom t.ex. det vart alldeles för mycket kontrast på LCDn kopplat direkt till jord och så har jag satt ett nollohmsmotstånd till 5v på USBn (jag var lite lat och orkade inte bygga nån automagisk bus/nonbuspowered switch):

Bild

stor bild

en bild på PCBn, så långt bestyckat det är idag:

Bild

Jag har försökt att göra kortet så flexibelt som möjligt så det ska kunna användas till lite allt möjligt.

EDIT: kontrasten var det inte alls nåt fel på bara man konfat displayen rätt...(men visst kan det vara bra att kunna justera den ändå)
Senast redigerad av stekern 27 december 2008, 06:56:33, redigerad totalt 1 gång.
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Inlägg av stekern »

Nu har jag mekat till bootloadern

Bild

Bild


Kan lägga upp koden om nån är intresserad
Måste bara städa lite i PC-programmet först, som det ser ut nu är com-portar hårdkodade osv.

För att komma in i bootloadern håller man nere menu-knappen samtidigt som man stoppar i USB-kontakten.
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Inlägg av Walle »

Det vore helt klart intressant med källkoden :)

Vore det inte en bra idé att även mäta mottagarackens spänning?
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Inlägg av stekern »

Det är just mottagarackens spänning den mäter på ADC6
Om man vill mäta någon annan batterispänning är det annars bara att ta en av de två analoga sensorportarna och ansluta.
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Inlägg av Walle »

Sorry, jag läste igenom ditt första inlägg på tok för snabbt, jag vet inte hur jag lyckades missa "-batterivakt" :D
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg av thepirateboy »

Spännande projekt, även om jag inte helt fattar vad en R/C monitor är. :)

Har för övrigt nästan gjort ett identiskt "universalkort". Perfekt när man labbar, det går snabbt att komma igång när man vill testa nya projekt.

Lägg gärna upp koden för PC-programmet. :)


För att hämta tillgängliga comportar, visa dom i en dropdownlist och sortera dom brukar jag använda följande kod:

Kod: Markera allt

        
        private void LoadListboxes()
        {
            string[] ports = SerialPort.GetPortNames(); // Hämta portar

            SortComPorts(ports);

            foreach (string port in ports)              // Visa i lista
            {
                lstPorts.Items.Add(port);
            }

            lstPorts.SelectedIndex = 0;
        }
        
        void SortComPorts(string[] rgstrPorts)
        {
            Array.Sort<string>(rgstrPorts, delegate(string strA, string strB)
            {
                int idA = int.Parse(strA.Substring(3)),
                    idB = int.Parse(strB.Substring(3));

                return idA.CompareTo(idB);
            });
        }
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Inlägg av stekern »

R/C monitor är bara ett namn jag hittat på.
Jag ville från början bara göra en fail safe (alltså en sådan som slår ner på gasen när bilen/båten/flygplanet kommer utanför sändarens område)
men sedan kom jag bara på mer och mer saker som jag ville ha mer (brukar bli så :D ) så jag tycker inte att fail safe passade in på den längre.

här är ett ganska likt kommersiellt "alternativ":
http://www.bigsquidrc.com/reviews/venom_smarttemp.php

men den har ingen usb-port
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Inlägg av stekern »

Här finns källkoden till bootloadern:
http://www.sk-electronics.com/sk-monito ... d-v0.2.zip

och till laddningsprogrammet:
http://www.sk-electronics.com/sk-monito ... Loader.zip

och här är laddningsprogrammet kompilerat:
http://www.sk-electronics.com/sk-monito ... Loader.exe

kommunikationsprotokollet för bootloadern ser ut såhär:
(bl är bootloader, fl är laddningsprogrammet)
-----------------------------
fl: BL
returnerar:
bl: BL v#.##
där #.## är versionsnumret
-----------------------------
fl: CLEAR
raderar hela flashminnet (dock inte bootloadern)
bl: DONE
-----------------------------
fl: LOAD
laddar data till flashminnet
returnerar:
bl: READY
bl: storleken på en page
fl: antal bytes som kommer skickas (fyra bytes)
bl: returnerar 0x06
fl: skickar en page (dvs så många bytes som bl returnerade efter READY)
bl: returnerar 0x06
repetera de 2 ovanstående tills alla byte är skickade.
om den sista pagen inte går jämnt upp (dvs antal bytes inte är jämnt delbart med pagestorleken) så returnerar bl 0x06 när den har laddat de klart
-----------------------------
fl: EXIT
bl: hoppar till det laddade programmet
-----------------------------

fuse-inställningarna i atmega88an skall vara:
BootSize 1024 (bootreset 0xC00)
BootReset enablead
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg av thepirateboy »

Lysande, funkade hur bra som helst. Det var lite strul med sökvägar vid bootloaderkompileringen men sedan hoppade allt igång på första försöket.

:tumupp: :tumupp:
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Inlägg av stekern »

aha, vad fint ;)
vad var det för strul med sökvägarna?
Det kan bero på att bootloadern är en del av firmwaret som inte är moget att visas upp för allmänheten än, så jag plockade bara ut de saker som hörde till bootloadern.
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg av thepirateboy »

I LCD.h är main.h inkluderat som inte hittas. ON och OFF är inte definerat. string.h finns inte med. När man öppnar bootloader.aps så skapas en ny makefil i mappen default som länkar till filer i nån mapp som heter ... stefan... nånting. Det funkade om jag kopierade in den andra makefilen. Det var ungefär de problem jag hade.
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Inlägg av stekern »

ok, hade missat att jag inkluderar main.h i LCD.c för att få med ON och OFF deklarationerna.
Ska vara fixat nu, tog även bort alla absoluta sökvägar i projektfilen.
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Inlägg av stekern »

Gjorde en lite video som visar när jag testar meny-systemet.


det jag gör i videon är:
Kalibrerar kanal 1 (det som visas är tiden för en dutycycle, 14 ms först och 13 ms när den är kalibrerad)

Ställer in failsafe-värdet på kanal1 till 43% (dvs lite back)

knäpper av radion och bilen far iväg bakåt
Användarvisningsbild
Glenn
Inlägg: 36408
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Inlägg av Glenn »

Intressant, jag har börjat litegrann på nåt liknande, men dn skulle inte alls ha lika mycket funktioner :) ..dock hade jag tänkt ha stöd för fler kanaler och att kunna styra fler funktioner genom kanal3 (och ev fler)

Fast bilden på schemat var usel, har du inte en i fullstorlek ?
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Inlägg av stekern »

Så, nu är schemabilden fixad.
Jag har en 3 kort + komponenter till övers, så hojta till om du är intresserad av ett av dem. Jag kan tänka mig att sälja de för självkostnadspris ca 500kr/50€ + frakt.
Vill du ha fler kanaler kan du t.ex. skippa LCD'n och använda de portarna.

Anledningen till att jag valde 2 kanaler var för att jag änvänder OC1A och OC1B för att generera utsignalen, så det sköter sig helt på egen hand.
avläsningen sker genom att insignalens stigande flank genererar ett interrupt på int0 och int1 och sen använder jag timer0 och timer2 för att mäta pulslängden samt dutycykeln.

avläsningen borde gå att göra bättre genom att även låta fallande flanken generera ett interrupt i stället för att vänta i interruptrutinen tills signalen går låg som jag gör nu.

Som jag ser det är det inte ett problem att pressa in massa kanaler som man läser av eller pressa in massa kanaler som man skriver till, problemet blir när man skall läsa och skriva på samma gång.
Skriv svar