Utföra en enkel beräkning
Utföra en enkel beräkning
Jag hade tänkt att försöka bygga en hastighetsmätare mha två ir sändare och mottagare. Tanken är att dom skall sitta på ett känt avstånd mellan varandra och genom att mäta tiden så skall hastigheten eller snarare stoppsträckan räknas ut och presenteras på en display. Måste man ha en mikroprocessor för att kunna göra enkla matematiska beräkningar eller finns det "färdiga" kretsar som kan räkna?
-
- EF Sponsor
- Inlägg: 921
- Blev medlem: 26 maj 2014, 12:54:35
- Ort: Karlskoga
Re: Utföra en enkel beräkning
Det är nog så att din hårdvara blir absolut enklast om du använder en mikrocontroller till denna uppgift. Därmed inte sagt att det är enda lösningen.
En tänkbar lösning utan processor är att använda en uppslagstabell i ett PROM. Du mäter tiden mellan dina sensorer, matar den till PROMet där alla tänkbara översättningar från tid till vad du nu vill visa finns beräknade en gång för alla. Bygger naturligtvis på att du har en viss begränsad uppsättning möjliga tider. Och du slipper inte från att räkna men kan göra det i förväg någon annan stans.
Innan processorer fanns kunde man göra rätt mycket beräkningar med tillståndsmaskiner byggda med vanliga logikkretsar, men det blir otroligt komplicerade konstruktioner som knappast går snabbare att ta fram än att lära sig programmera en modern mikrocontroller.
En tänkbar lösning utan processor är att använda en uppslagstabell i ett PROM. Du mäter tiden mellan dina sensorer, matar den till PROMet där alla tänkbara översättningar från tid till vad du nu vill visa finns beräknade en gång för alla. Bygger naturligtvis på att du har en viss begränsad uppsättning möjliga tider. Och du slipper inte från att räkna men kan göra det i förväg någon annan stans.
Innan processorer fanns kunde man göra rätt mycket beräkningar med tillståndsmaskiner byggda med vanliga logikkretsar, men det blir otroligt komplicerade konstruktioner som knappast går snabbare att ta fram än att lära sig programmera en modern mikrocontroller.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Utföra en enkel beräkning
Enklast är väl en räknare som nollställs på första pulsen och stannar på andra pulsen. Sedan kan man trimma med klockfrekvensen.
Fast allra enklast, om man kan programmera, är en processor.
Fast allra enklast, om man kan programmera, är en processor.
Re: Utföra en enkel beräkning
Då hastigheten är en x/tiden-funktion fungerar lillahusets lösning inte.
Jag har byggt många av denna sorts mätsystem och ja, en µC är definitivt den enklaste lösningen.
Man använder 2 Capture ingångar (A och B), tar tidsskillnaden (= B - A) och räknar innan ut en konstant som ska delas med den mätta tiden. Då kan man få hastigheten med hög upplösning.
Jag har byggt många av denna sorts mätsystem och ja, en µC är definitivt den enklaste lösningen.
Man använder 2 Capture ingångar (A och B), tar tidsskillnaden (= B - A) och räknar innan ut en konstant som ska delas med den mätta tiden. Då kan man få hastigheten med hög upplösning.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Utföra en enkel beräkning
Bra skit. Precis det jag behöver göra för varvtalsregleringen på svarven.Icecap skrev:Då hastigheten är en x/tiden-funktion fungerar lillahusets lösning inte.
Jag har byggt många av denna sorts mätsystem och ja, en µC är definitivt den enklaste lösningen.
Man använder 2 Capture ingångar (A och B), tar tidsskillnaden (= B - A) och räknar innan ut en konstant som ska delas med den mätta tiden. Då kan man få hastigheten med hög upplösning.
Re: Utföra en enkel beräkning
Tips på ett bra ord att googla på är speed trap.
Jag byggde en enkelt med två fotoceller samt en RaspberryPi. (främst för att testa lite hårdvarunära programmering i raspberryn) Fungerade kanon.
Jag byggde en enkelt med två fotoceller samt en RaspberryPi. (främst för att testa lite hårdvarunära programmering i raspberryn) Fungerade kanon.
Re: Utföra en enkel beräkning
Första frågan som jag ställde på detta forum, vilken respons!
Tack så mycket för alla svar.
Det låter som en mikroprocessor är enda lösningen. Får leta på vinden, tror jag har en "programmerare" för någon µC från skoltiden...
Tack så mycket för alla svar.
Det låter som en mikroprocessor är enda lösningen. Får leta på vinden, tror jag har en "programmerare" för någon µC från skoltiden...
Re: Utföra en enkel beräkning
Bespara dig själv några veckor och köp dig någon modern variant. En arduino ifrån tex. Kjell o company så är du väldigt snart på banan.
Edit:
Typ det här kortet: http://www.kjell.com/se/sortiment/el-ve ... ort-p87960
Vill du sedan ha en egen display att visa resultatet på så kör på denna: http://www.kjell.com/se/sortiment/el-ve ... ino-p87876
Edit:
Typ det här kortet: http://www.kjell.com/se/sortiment/el-ve ... ort-p87960
Vill du sedan ha en egen display att visa resultatet på så kör på denna: http://www.kjell.com/se/sortiment/el-ve ... ino-p87876
Senast redigerad av Hedis 7 april 2016, 23:34:08, redigerad totalt 1 gång.
Re: Utföra en enkel beräkning
Jag hade faktiskt redan övergivit µC-spåret och var inne på en Pi, men en Arduino kanske är bättre. Är någon att föredra framför den andra?
Re: Utföra en enkel beräkning
Se ovanstående inlägg igen, jag la till några länkar.
RaspberryPi:n var trevlig att jobba på, men det kanske är väl mycket att dra igång bara för det här. (beroende på hur du vill visa resultat mm iofs.)
Arduinon kommer du nog igång med snabbare och billigare om du inte redan har en RaspberryPi liggande som du kan använda.
Jag satte upp VisualStudio med VisualGDB mot PI´n vilket gav en riktigt smidig miljö att jobba i, kommer inte ihåg i huvudet vad biblioteket jag använde för IO-access hette, men det löser google snabbt o lätt om du väljer att gå på det spåret.
RaspberryPi:n var trevlig att jobba på, men det kanske är väl mycket att dra igång bara för det här. (beroende på hur du vill visa resultat mm iofs.)
Arduinon kommer du nog igång med snabbare och billigare om du inte redan har en RaspberryPi liggande som du kan använda.
Jag satte upp VisualStudio med VisualGDB mot PI´n vilket gav en riktigt smidig miljö att jobba i, kommer inte ihåg i huvudet vad biblioteket jag använde för IO-access hette, men det löser google snabbt o lätt om du väljer att gå på det spåret.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Utföra en enkel beräkning
Köp en Arduino. Jag är ingen fan men jag inser att de har sina fördelar för de som skiter i programmeringen. Lycka till!
Re: Utföra en enkel beräkning
Resultatet vill jag visa på en typ 8 tums 7 segments led.
@lillahuset , vad menar du med "skiter i programmeringen"?
@lillahuset , vad menar du med "skiter i programmeringen"?
Re: Utföra en enkel beräkning
Problemet med Arduino är (i vissas ögon, bl.a. mina) att det programmeringssätt folk tillämpar ibland(/ganska ofta) är uselt.
Samtidig gör "kompilern" en del förarbete som gör programmet icke-standard i sin uppbyggnad.
Det har visat sig många gångar att den "smarta" lösningen inte var så smart ändå...
Men en Arduino är ju rätt sett en ATmega µC (gammal version, lite trött och inte så mycket minne eller funktioner men ändå) och den ska ganska säkert klara att fånga tiden, utföra uträkningen och presentera resultatet.
Jag pratade med ett stort företag om att mäta hastigheten på fordon på en provbana och då vi kom till punkten Noggrannhet var de tydliga: som sämst ±2 km/t! Helst ±1 km/t.
Jag hade förberedd mig en aning och undrade mest om de ville ha 1 eller två decimaler... Jag kunde trolla fram den 3'dje decimal men det ville bli lite mer besvärligt.
Samtidig gör "kompilern" en del förarbete som gör programmet icke-standard i sin uppbyggnad.
Det har visat sig många gångar att den "smarta" lösningen inte var så smart ändå...
Men en Arduino är ju rätt sett en ATmega µC (gammal version, lite trött och inte så mycket minne eller funktioner men ändå) och den ska ganska säkert klara att fånga tiden, utföra uträkningen och presentera resultatet.
Jag pratade med ett stort företag om att mäta hastigheten på fordon på en provbana och då vi kom till punkten Noggrannhet var de tydliga: som sämst ±2 km/t! Helst ±1 km/t.
Jag hade förberedd mig en aning och undrade mest om de ville ha 1 eller två decimaler... Jag kunde trolla fram den 3'dje decimal men det ville bli lite mer besvärligt.
Re: Utföra en enkel beräkning
Ok, då förstår jag.
Noggrannheten behöver inte vara alls hög, det räcker med heltal. En tanke jag har är att räkna om det till stoppsträcka t.o.m. och då räcker definitivt en noggrannhet på en meter.
Ju mer jag funderar på detta projekt ju närmre en annan typ av hastighetsmätning kommer jag. Det vore ju mycket smidigare om all elektronik satt i displayen, men då måste man använda annan teknik för att mäta hastigheten, laser eller radar. Frågan är då hur mycket krångligare det är att mäta med en laser istället?
Noggrannheten behöver inte vara alls hög, det räcker med heltal. En tanke jag har är att räkna om det till stoppsträcka t.o.m. och då räcker definitivt en noggrannhet på en meter.
Ju mer jag funderar på detta projekt ju närmre en annan typ av hastighetsmätning kommer jag. Det vore ju mycket smidigare om all elektronik satt i displayen, men då måste man använda annan teknik för att mäta hastigheten, laser eller radar. Frågan är då hur mycket krångligare det är att mäta med en laser istället?