PIC - mäta: hastighet, maxfart, avg, g-force
PIC - mäta: hastighet, maxfart, avg, g-force
Jag tänkte göra en hastighetsmätare och utgå från en PIC
Saker jag vill kunna visa är snitthastighet, topphastighet, acceleration om möjligt och all indata sker från en signal typ cykeldator med 1 signal/varv eller optiskt med "encoder wheel"
Så...Ni som har pillat lite med detta kanske kan höfta till med vad som funkar/inte funkar...vilken sorts PIC man bör använda
Data borde sparas på ett SD eller i minnet och när jag kopplar in en display(måste vara löstagbar) visas aktuella värden detta på en 4*20 display:
titel
maxfart
genomsnittlig fart
gkraft
exempel:
Speedlogger v1.0
Max : 132km/h
Avg : 75km/h
G-force : 2G
Sparas data på ett SD är det lätt att läsa av på en dator och rita lite grafer...eller?
MVH - N
EDIT: då det kommit bra feedback har jag justerat mitt krav lite - läs i tråden
Saker jag vill kunna visa är snitthastighet, topphastighet, acceleration om möjligt och all indata sker från en signal typ cykeldator med 1 signal/varv eller optiskt med "encoder wheel"
Så...Ni som har pillat lite med detta kanske kan höfta till med vad som funkar/inte funkar...vilken sorts PIC man bör använda
Data borde sparas på ett SD eller i minnet och när jag kopplar in en display(måste vara löstagbar) visas aktuella värden detta på en 4*20 display:
titel
maxfart
genomsnittlig fart
gkraft
exempel:
Speedlogger v1.0
Max : 132km/h
Avg : 75km/h
G-force : 2G
Sparas data på ett SD är det lätt att läsa av på en dator och rita lite grafer...eller?
MVH - N
EDIT: då det kommit bra feedback har jag justerat mitt krav lite - läs i tråden
Senast redigerad av UndCon 19 januari 2010, 12:32:39, redigerad totalt 1 gång.
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: PIC - mäta: hastighet, maxfart, avg, g-force
Om du vill göra det enkelt så kan du sätta en inerrupt som triggar på pulserna och en som triggar varje sekund eller kanske varannan sekund.
När en viss tid har gått så ser du hur många pulser som har kommit sen tiden, där har du hastighet, summera även ihop alla pulser så du vet hur långt du har åkt och spara antalet gånger det har gått en viss tid. Ta total distans/total distans så har du snittfart.
gkraft blir svårare, du kan göra på 2 sätt, antingen skaffa en accerlometer, mät och se glad ut.
Eller så tar du skillnaden i hastighet över tid, alltså (fart_nu-fart_tidiagare)/tid_mellan_sample och får på så vis ut accerlation.
Den senare metoden ger sämre upplösning då man missar all snabb accerelation förändringar.
När en viss tid har gått så ser du hur många pulser som har kommit sen tiden, där har du hastighet, summera även ihop alla pulser så du vet hur långt du har åkt och spara antalet gånger det har gått en viss tid. Ta total distans/total distans så har du snittfart.
gkraft blir svårare, du kan göra på 2 sätt, antingen skaffa en accerlometer, mät och se glad ut.
Eller så tar du skillnaden i hastighet över tid, alltså (fart_nu-fart_tidiagare)/tid_mellan_sample och får på så vis ut accerlation.
Den senare metoden ger sämre upplösning då man missar all snabb accerelation förändringar.
Re: PIC - mäta: hastighet, maxfart, avg, g-force
Prestandamässigt borde vilken MCU som helst klara uppgiften. Det är nog utrymmet i EEPROM för styrprogrammet som sätter gränsen.
Beror iofs på hur snabbt du cyklar..

Beror iofs på hur snabbt du cyklar..


Re: PIC - mäta: hastighet, maxfart, avg, g-force
Ja och med 3-axlig accelerometer får du fram accelerationen även i sidled m.m. Du kanske borde prova med en Wii nunchuck: http://www.dealextreme.com/details.dx/sku.24529
Re: PIC - mäta: hastighet, maxfart, avg, g-force
Tack för alla svar!
Jag tänkte göra en liten enhet som kan monteras på radiostyrda bilar och den måste vara lätt att flytta från bil till bil.
Det bästa vore nog om man bara kunde fästa en bild liknande denna på insidan av en fälg

eller som denna som registrerar 1 varv

Om jag kan logga tiden mellan registreringar på hjulet går det att räkna om detta till ett diagram på en PC senare genom att tex importera data från SD till Excel
Kan jag importera data till Excel behövs ingen display = mindre kod i PIC'en
I Excel kan man mata in hjuldiameter till importerad data och sedan utföra beräkningar och generera diagram
På detta sättet måste man inte programmera om PIC'en för att man byter bil...annars måste man ta emot en variabel som representerar hjulets diameter eller "rollout" dvs man mäter hur långt det blir när ett hjul snurrat ett varv
Meningen är ju att det skall vara lätt att flytta runt - en tanke är att kunna erbjuda detta som ett DIY-kit eller open source så att flera kan ta del av "Speedlogger" samt Exceldiagrammet för att utföra beräkningarna
MVH /N
Jag tänkte göra en liten enhet som kan monteras på radiostyrda bilar och den måste vara lätt att flytta från bil till bil.
Det bästa vore nog om man bara kunde fästa en bild liknande denna på insidan av en fälg

eller som denna som registrerar 1 varv

Om jag kan logga tiden mellan registreringar på hjulet går det att räkna om detta till ett diagram på en PC senare genom att tex importera data från SD till Excel
Kan jag importera data till Excel behövs ingen display = mindre kod i PIC'en
I Excel kan man mata in hjuldiameter till importerad data och sedan utföra beräkningar och generera diagram
På detta sättet måste man inte programmera om PIC'en för att man byter bil...annars måste man ta emot en variabel som representerar hjulets diameter eller "rollout" dvs man mäter hur långt det blir när ett hjul snurrat ett varv
Meningen är ju att det skall vara lätt att flytta runt - en tanke är att kunna erbjuda detta som ett DIY-kit eller open source så att flera kan ta del av "Speedlogger" samt Exceldiagrammet för att utföra beräkningarna
MVH /N
Re: PIC - mäta: hastighet, maxfart, avg, g-force
Att mäta tiden för varje hjulvarv är enkelt och precist. Att spara på SD-kort kräver ett filsystem (finns på nätet) och du ska med stor sannolikhet ha minst dubbla buffrar, en att skriva nya värden i och en att skriva till SD-kortet.
Sedan är det viktigaste att säkerställa att data kan skrivas till SD-kortet minst lika snabbt som data kan läsas från hjulet.
PIC'en ska inte göra annat än denna loggning, detta då din PC ändå ska göra jobbet och alla data ändå kommer dit oförvanskat.
Sedan är det viktigaste att säkerställa att data kan skrivas till SD-kortet minst lika snabbt som data kan läsas från hjulet.
PIC'en ska inte göra annat än denna loggning, detta då din PC ändå ska göra jobbet och alla data ändå kommer dit oförvanskat.
Re: PIC - mäta: hastighet, maxfart, avg, g-force
Hur mycket erfarenhet har du av programmering och elektronik?
Om jag skulle göra detta projektet så skulle jag gå tillväga såhär:
1. försök hitta på ett sätt att få ut en puls från din radiobil för varje varv på hjulet. Kanske går det att borra ett litet hål i ett kugghjul i växellådan och sätta en läsgaffel runt så att du får en puls för varje varv (eller hur många hål du nu borrat). Att läsa av optiskt från insidan av ett hjul har jag aldrig gjort och tycker att ver verkar krångligt men det kanske fungerar aldeles utmärkt, jag vet inte. kan ju bli beroende av solljus, smuts mm.
2. installer mplab och C18
3. hämta hem applikationer på microchips hemsida för USB och SD kort de har nämligen ett väldigt fint och färdigbyggt api för att kunna få upp ditt SD-kort som en liten hårddisk ung som när du kopplar digitalkameran till datorn. det kommer upp en liten disk i utforskaren så du kan läsa ut vad som finns på kortet.
4. snegla lite på projekten som finns på: http://www.techtoys.com.hk/PIC_boards/P ... -Rev4A.htm
Detta är en utvecklingsplatta med display, SD-kort och usb. ganska overkill display och välidgt stort kort så du kommer inte få plats med detta i din radiobil. Men du hade kunnat titta på MCUn om den skulle kunna uppfylla dina krav. Dessutom finns där färdigt schema over hur de kopplat in SD-kort, USB mm som kan vara intressant.
5. Gör ett projekt i mplab C18 med ung den funktionallitet du vill ha (förutom display) så att du kommer in i kodandet, vet hur man skriver till SD-kortet, hanterar interrupt mm. Om du upptäcker att det e för jobbigt så har du ännu inte lagt ut några pengar ännu.
6. Köp komponenter och knopa ihop ett kretskort med display
7. nästintill klart. Du kan ju alltid titta på någon accelerometer från t.ex analog-devices som ger ut en pulsbreddsmodulerad signal beroende på accelerationen. Om du ska använda en sådan skulle jag nog rekomenerera att du tittar på en pic med minst 3st capture ingångar. Deta kan ju bli nästa steg i ditt projekt om du får allt att fungera
Om jag skulle göra detta projektet så skulle jag gå tillväga såhär:
1. försök hitta på ett sätt att få ut en puls från din radiobil för varje varv på hjulet. Kanske går det att borra ett litet hål i ett kugghjul i växellådan och sätta en läsgaffel runt så att du får en puls för varje varv (eller hur många hål du nu borrat). Att läsa av optiskt från insidan av ett hjul har jag aldrig gjort och tycker att ver verkar krångligt men det kanske fungerar aldeles utmärkt, jag vet inte. kan ju bli beroende av solljus, smuts mm.
2. installer mplab och C18
3. hämta hem applikationer på microchips hemsida för USB och SD kort de har nämligen ett väldigt fint och färdigbyggt api för att kunna få upp ditt SD-kort som en liten hårddisk ung som när du kopplar digitalkameran till datorn. det kommer upp en liten disk i utforskaren så du kan läsa ut vad som finns på kortet.
4. snegla lite på projekten som finns på: http://www.techtoys.com.hk/PIC_boards/P ... -Rev4A.htm
Detta är en utvecklingsplatta med display, SD-kort och usb. ganska overkill display och välidgt stort kort så du kommer inte få plats med detta i din radiobil. Men du hade kunnat titta på MCUn om den skulle kunna uppfylla dina krav. Dessutom finns där färdigt schema over hur de kopplat in SD-kort, USB mm som kan vara intressant.
5. Gör ett projekt i mplab C18 med ung den funktionallitet du vill ha (förutom display) så att du kommer in i kodandet, vet hur man skriver till SD-kortet, hanterar interrupt mm. Om du upptäcker att det e för jobbigt så har du ännu inte lagt ut några pengar ännu.
6. Köp komponenter och knopa ihop ett kretskort med display
7. nästintill klart. Du kan ju alltid titta på någon accelerometer från t.ex analog-devices som ger ut en pulsbreddsmodulerad signal beroende på accelerationen. Om du ska använda en sådan skulle jag nog rekomenerera att du tittar på en pic med minst 3st capture ingångar. Deta kan ju bli nästa steg i ditt projekt om du får allt att fungera
Re: PIC - mäta: hastighet, maxfart, avg, g-force
Hej igen!
Jag jobbar som programmerare/utvecklare för system/webb(mestadels Microsoft-miljöer) så programmering är inget större problem - men det är klart att det skiljer sig från språk till språk...
Kunskaper inom elektronik är troligen tillräcklig - även om det är på hobbynivå
Jag har en Pikcit2 från Kjell&Co jag tänkte börja med - funkar inte det så skaffar jag något bättre.
SD-hanteringen har jag kollat lite på och det verkar inte vara alltför svårt
Jag kan givetvis montera en givare på ett drev - men då blir det inte lika flyttbart...
Jag jobbar som programmerare/utvecklare för system/webb(mestadels Microsoft-miljöer) så programmering är inget större problem - men det är klart att det skiljer sig från språk till språk...
Kunskaper inom elektronik är troligen tillräcklig - även om det är på hobbynivå

Jag har en Pikcit2 från Kjell&Co jag tänkte börja med - funkar inte det så skaffar jag något bättre.
SD-hanteringen har jag kollat lite på och det verkar inte vara alltför svårt
Jag kan givetvis montera en givare på ett drev - men då blir det inte lika flyttbart...
Re: PIC - mäta: hastighet, maxfart, avg, g-force
Man kan ju lika gärna fästa en magnet och ha en hallswitch dessa är bra mycket bättre än reflexdetektor då det sprutar smuts. Antar att du inte bara kör inne på nystädat golv 
Magneten fäster man man limpistolen så är den enkel att bryta loss när man nu vill det.
För övrigt strunt i minneskortet det är en dryg omväg, det finns minneskretsar som är bra mycket mer avsedda för µc än minneskort.
Antigen gör man ett gränssnitt i datorn mot denna krets (mao typ plockar ur den och läser av) eller så har man två "modes" där man antigen läser av eller loggar data. Jag skulle föredra det senare med en serie/usb-kontakt rätt i kortet.
µc är INTE samma sak som att programmera en pc det är mycket mer hårdvarunära och oftast mycket mer inriktat på att flytta data inom µcn samt sätta rätt register.

Magneten fäster man man limpistolen så är den enkel att bryta loss när man nu vill det.
För övrigt strunt i minneskortet det är en dryg omväg, det finns minneskretsar som är bra mycket mer avsedda för µc än minneskort.
Antigen gör man ett gränssnitt i datorn mot denna krets (mao typ plockar ur den och läser av) eller så har man två "modes" där man antigen läser av eller loggar data. Jag skulle föredra det senare med en serie/usb-kontakt rätt i kortet.
µc är INTE samma sak som att programmera en pc det är mycket mer hårdvarunära och oftast mycket mer inriktat på att flytta data inom µcn samt sätta rätt register.
Re: PIC - mäta: hastighet, maxfart, avg, g-force
Jag har funderat lite på om man hade kunnat använda sig av en optisk mus för att se hurpass snabbt man förflyttar sig relativt marken. Kör du bara på asfalt kanske det hade varit värt ett försök? Det är ju ett färidgt ps2 interface som är väldokumenterat och många som gjort liknande projekt. Kanske inte lika exakt som en pulsmätare men kanske räcker??
Re: PIC - mäta: hastighet, maxfart, avg, g-force
UndCon: de förutsättningar ligger dig solitt i fatet! Precis som v-g skriver är det 2 mycket olika saker att programmera till varför du kommer(!) att undra över om det alls går - men det gör det faktisk! Lätt till och med.
Vad du måste räkna på är mängden av data du vill samla in, det kan vara att det ville vara enklare med en radiolänk eller liknande och då spara data direkt på en laptop för vidare bearbetning. SD-kort är billiga och erbjuder mycket plats MEN de sitter i en hållare som det blir(!) glapp i med tiden då RC-bil miljön knappast är i samma glidarklass som RR.
Vad du måste räkna på är mängden av data du vill samla in, det kan vara att det ville vara enklare med en radiolänk eller liknande och då spara data direkt på en laptop för vidare bearbetning. SD-kort är billiga och erbjuder mycket plats MEN de sitter i en hållare som det blir(!) glapp i med tiden då RC-bil miljön knappast är i samma glidarklass som RR.
Re: PIC - mäta: hastighet, maxfart, avg, g-force
Bra med lite input!
Jag tänkte att man monterar Speedlogger och kör under rätt kontrollerade former och terränger ex inomhus alt asfalt - men för att utöka användbarheten ytterligare bör man givetvis ta hänsyn till smuts mm.
Jag har köpt en cykeldator för ändamålet (började faktiskt med den) och denna har en klassisk sensor med magnet som monteras på en eker i hjulet och 1 sensorn är en liten glasampull(vad de nu heter) med 2 metallelement i som antingen sluter eller bryter kontakten när magneten passerar
Denna sensor är trådlös mot cykeldatorn och var mitt 1a test med hastighetsmätare på bilen.
en fördel med denna är att man ställer in hjulets omkrets i mm så det passar alla storlekar (valde mellan 5 olika cykeldatorer)
Nackdelen som jag ser det med denna setup är just att magneten skall limmas på en fälg och att det måste till en motvikt för att inte få obalans - annars fungerar detta utmärkt
- jag limmade på en mindre neodym-magnet på extra fälgar, monterade en motvikt och testade lite...
Vi får se hur jag utvecklar det hela...hämtar några PIC'ar i helgen och hoppas komma igång nästa vecka
Realtid (radiolänk) är givetvis intressant, men då blir man ännu mer beroende av att kunna läsa av den direkt (PC/Laptop) - är det inte bättre att spara det lokalt?
Jag tänkte att man monterar Speedlogger och kör under rätt kontrollerade former och terränger ex inomhus alt asfalt - men för att utöka användbarheten ytterligare bör man givetvis ta hänsyn till smuts mm.
Jag har köpt en cykeldator för ändamålet (började faktiskt med den) och denna har en klassisk sensor med magnet som monteras på en eker i hjulet och 1 sensorn är en liten glasampull(vad de nu heter) med 2 metallelement i som antingen sluter eller bryter kontakten när magneten passerar
Denna sensor är trådlös mot cykeldatorn och var mitt 1a test med hastighetsmätare på bilen.
en fördel med denna är att man ställer in hjulets omkrets i mm så det passar alla storlekar (valde mellan 5 olika cykeldatorer)
Nackdelen som jag ser det med denna setup är just att magneten skall limmas på en fälg och att det måste till en motvikt för att inte få obalans - annars fungerar detta utmärkt

Vi får se hur jag utvecklar det hela...hämtar några PIC'ar i helgen och hoppas komma igång nästa vecka
Realtid (radiolänk) är givetvis intressant, men då blir man ännu mer beroende av att kunna läsa av den direkt (PC/Laptop) - är det inte bättre att spara det lokalt?
Senast redigerad av UndCon 19 januari 2010, 13:18:03, redigerad totalt 1 gång.
Re: PIC - mäta: hastighet, maxfart, avg, g-force
Är det bättre att SD-kortet glappar så att alla mätvärden går åt fanders pga. glapp vid skrivning så att hela filsystemet skiter sig totalt?
Det finns dock seriella EEPROM med mycket plats (t.ex. 73-933-66, 512kbit = 64kByte) och 73-824-19 som är ett seriellt FLASH-minne med 256kByte i en liten 8-pins kapsel.
Sedan, när data ska hämtas, kör du via en seriell port, om man då har en USB eller "en riktig" kvittar, bara data överförs korrekt och man vet vad de olika tal står för (känd format).
Snabbare hantering an minnet, inget filsystem som ska tas om hand och enkel/billig hårdvara. Räcker 256kB inte tar du fler kretsar, så enkelt är det.
Det finns dock seriella EEPROM med mycket plats (t.ex. 73-933-66, 512kbit = 64kByte) och 73-824-19 som är ett seriellt FLASH-minne med 256kByte i en liten 8-pins kapsel.
Sedan, när data ska hämtas, kör du via en seriell port, om man då har en USB eller "en riktig" kvittar, bara data överförs korrekt och man vet vad de olika tal står för (känd format).
Snabbare hantering an minnet, inget filsystem som ska tas om hand och enkel/billig hårdvara. Räcker 256kB inte tar du fler kretsar, så enkelt är det.
Re: PIC - mäta: hastighet, maxfart, avg, g-force
tänkte på att det blir obalans, kan du inte sätta 2 likadana magneter mittemot varandra för att få exakt samma motvikt? 2pulser/varv istället men det borde väl vara ok..
hur ofta behöver du sampla hastigheten? låt säga att du samplar 1000ggr/Sek och har hastigheten som en int16 så skulle detta kräva ung 4 skrivnignar/sek (1 page 512 bytes för en skrivning) till sd-kortet vilket jag inte ser några som helst problem med. Detta borde inte heller vara några problem med en radiolänk om du kör någon form av protokoll som ack/nackar om CRCn stämmer och skickar om den data som inte kom fram vid tillfället.
http://www.fjun.com/projects/doku.php?i ... eric802154 här finns nog lite kod som kör ipv4 över en radiomodul som går att köpa från t.ex microchip. Har för mig att den hanterar omsändning av paket i UPD lagret.
tror det är ganska mycket upp till dig själv vad du tycker är enklast. Om man har en färdig radiomodul liggande med färdigt protokoll som kan kompileras kanske det är en bra lösning. SD-kortet kan vara ganska bra inkapslat, du behöver egentligen bara komma åt USB porten om du väljer den lösningen, om du är rädd att smuts ger glappkontakt.
2000 byte/sek *30sek = 60k = 1 eepromkapse. det går givetivs att komprimera datan genom att bara spara hastighetsskillnader men tycker själv att det är lite på marginalen..
hur ofta behöver du sampla hastigheten? låt säga att du samplar 1000ggr/Sek och har hastigheten som en int16 så skulle detta kräva ung 4 skrivnignar/sek (1 page 512 bytes för en skrivning) till sd-kortet vilket jag inte ser några som helst problem med. Detta borde inte heller vara några problem med en radiolänk om du kör någon form av protokoll som ack/nackar om CRCn stämmer och skickar om den data som inte kom fram vid tillfället.
http://www.fjun.com/projects/doku.php?i ... eric802154 här finns nog lite kod som kör ipv4 över en radiomodul som går att köpa från t.ex microchip. Har för mig att den hanterar omsändning av paket i UPD lagret.
tror det är ganska mycket upp till dig själv vad du tycker är enklast. Om man har en färdig radiomodul liggande med färdigt protokoll som kan kompileras kanske det är en bra lösning. SD-kortet kan vara ganska bra inkapslat, du behöver egentligen bara komma åt USB porten om du väljer den lösningen, om du är rädd att smuts ger glappkontakt.
2000 byte/sek *30sek = 60k = 1 eepromkapse. det går givetivs att komprimera datan genom att bara spara hastighetsskillnader men tycker själv att det är lite på marginalen..