Tillståndsmaskin kanske?
Tillståndsmaskin kanske?
Tänkte bygga en detektor som känner av läget på en rörlig detalj genom ir diod/transistor. Detaljen ska styras så att den ligger i mitten av de olika lägena.
Total är det åtta lägen. De två yttersta lägena måste stanna kvar i "minnet" så att servot styr åt rätt håll fast detaljen hamnat utanför "avkänningsområdet".
Första tanken jag fick var att ha latchar på samtliga ingångar, så att läget är kvar tills nästa läge resetar det aktuella läget och går in på det nya.
Jag har provat att knåpa lite med logikkretsar men inte fått något vettigt av det. Grejen är också den att jag vill slippa ha klockpuls och således köra hela allt asynkront.
Kort och gott:
Dioder/transistorer placerade på följande vis:
1-----2------3------4------5------6-------7------8
När ettan detekterar så vill jag ha ut en signal x1, när tvåan detekterar så ska ettan slockna och ge utsignal x2 osv...
Tänkte köra ut varje utsignal med viktade reisistorer mot en OP kopplad som en summerare, så att jag får en "analog" utsignal.
Men jag kommer inte vidare med detta på något vis. Möjligtvis är det bättre att göra en tillståndsmaskin rakt av? Och nu är mina kunskaper i tillståndsdiagram, karnughdiagram, boelsk algebra osv. långt ifrån färska. Tyvärr blir det ju till att klocka den hela tiden, men det kanske blir enklare ändå?
Alla tips mottages! =)
Total är det åtta lägen. De två yttersta lägena måste stanna kvar i "minnet" så att servot styr åt rätt håll fast detaljen hamnat utanför "avkänningsområdet".
Första tanken jag fick var att ha latchar på samtliga ingångar, så att läget är kvar tills nästa läge resetar det aktuella läget och går in på det nya.
Jag har provat att knåpa lite med logikkretsar men inte fått något vettigt av det. Grejen är också den att jag vill slippa ha klockpuls och således köra hela allt asynkront.
Kort och gott:
Dioder/transistorer placerade på följande vis:
1-----2------3------4------5------6-------7------8
När ettan detekterar så vill jag ha ut en signal x1, när tvåan detekterar så ska ettan slockna och ge utsignal x2 osv...
Tänkte köra ut varje utsignal med viktade reisistorer mot en OP kopplad som en summerare, så att jag får en "analog" utsignal.
Men jag kommer inte vidare med detta på något vis. Möjligtvis är det bättre att göra en tillståndsmaskin rakt av? Och nu är mina kunskaper i tillståndsdiagram, karnughdiagram, boelsk algebra osv. långt ifrån färska. Tyvärr blir det ju till att klocka den hela tiden, men det kanske blir enklare ändå?
Alla tips mottages! =)
-
Mindmapper
- Inlägg: 7217
- Blev medlem: 31 augusti 2006, 16:42:43
- Ort: Jamtland
Kan det inte vara ett shiftregister du är ute efter? Med ett sådant och 8 st 2 ingångars AND-kretsar, bör det gå att lösa.
Edit: Eller-kretsar och några fler AND-kretsar kommer till. Men en AVR blir förstås bäst.
Edit: Eller-kretsar och några fler AND-kretsar kommer till. Men en AVR blir förstås bäst.
Senast redigerad av Mindmapper 28 maj 2008, 20:45:07, redigerad totalt 1 gång.
Varför inte lösa det med en liten u-processor istället? eller har du extremt höga krav på reaktionstid? En pic processor med en x-tal och några motstånd/kondingar fixar ju det här i ett nafs och är mycket lättare att ändra funktion på.
Annars har du 8 tillstånd vilket kräver minst tre vippor plus tillståndslogiken för att gå mellan lägen. Med lite tur (jag förstår inte riktigt vad det är du tänkt gör) så kanske man kan använda vippan/latchens "egen" tillståndslogik (set/reset/clk) för att göra det du vill men det blir knappast flexibelt. Har du tänkt att den skall kunna röra sig åt bägge hållen?
Mvh
/&&
Annars har du 8 tillstånd vilket kräver minst tre vippor plus tillståndslogiken för att gå mellan lägen. Med lite tur (jag förstår inte riktigt vad det är du tänkt gör) så kanske man kan använda vippan/latchens "egen" tillståndslogik (set/reset/clk) för att göra det du vill men det blir knappast flexibelt. Har du tänkt att den skall kunna röra sig åt bägge hållen?
Mvh
/&&
Någon form av räknare vore gott. Problemet är bara att definera för räknare om den ska räkna upp eller ner, således behövs en rikningsdetektor, vilket inte jag har någon idé om hur denna ska se ut.
Själva utsignalen behöver inte beskymra sig om den gick från högre till lägre tillstånd eller tvärtom. Därför räcker det med tre bitar ut.
Själva utsignalen behöver inte beskymra sig om den gick från högre till lägre tillstånd eller tvärtom. Därför räcker det med tre bitar ut.
-
Mindmapper
- Inlägg: 7217
- Blev medlem: 31 augusti 2006, 16:42:43
- Ort: Jamtland
-
Mindmapper
- Inlägg: 7217
- Blev medlem: 31 augusti 2006, 16:42:43
- Ort: Jamtland
Därför lutar det mycket åt en tillståndsmaskin av typ. Moore.
Har åtta insignaler som sagt. in0-in7 åtta tillstånd och utsignalen ska vara samma binära värde som själva tillståndet är kodat i, så den senare delen är enkel.
Dock har jag lite svårt att ställa upp diagrammen just nu eftersom det är rätt brådis. Speciellt när det är så många insignaler som åtta. Dock tror jag det syntesiserade nätet blir ganska enkelt om det är optimerat.
Minns att jag fick ut "kopplingsschema" när jag tryckte på rcl eller vad det var i Quartus när jag programerade VHDL i det. Det vore en genväg, men nu är det så länge sen jag programerade i VHDL så det känns lika tungt som att färska upp alla digitala studier.
Har åtta insignaler som sagt. in0-in7 åtta tillstånd och utsignalen ska vara samma binära värde som själva tillståndet är kodat i, så den senare delen är enkel.
Dock har jag lite svårt att ställa upp diagrammen just nu eftersom det är rätt brådis. Speciellt när det är så många insignaler som åtta. Dock tror jag det syntesiserade nätet blir ganska enkelt om det är optimerat.
Minns att jag fick ut "kopplingsschema" när jag tryckte på rcl eller vad det var i Quartus när jag programerade VHDL i det. Det vore en genväg, men nu är det så länge sen jag programerade i VHDL så det känns lika tungt som att färska upp alla digitala studier.
Ponera att du har ett vitt streck på vägen och du sitter i en bil.
Du har åtta detektorer, dvs. fyra åt höger och fyra åt vänster. Önskade läget är mellan de åtta.
Ingen av de åtta detektorerna kan ge signal samtidigt, eftersom bredden på det vita strecket är kortare än avståndet mellan detektorerna. Dvs. en signal , eller ingen signal ges ut i just ett ögonblick, aldrig två samtidigt.
När bilen har svängt ut så mycket från det önskade läget till vänster att inte ens den detektor som ligger längst till höger längre ger utslag så skall kretsen fortfarande hålla det läget låst, TILLS den har hunnit svänga in och den näst högersta detektorn ger utslag, som i sin tur släcker den allra högersta.
Du har åtta detektorer, dvs. fyra åt höger och fyra åt vänster. Önskade läget är mellan de åtta.
Ingen av de åtta detektorerna kan ge signal samtidigt, eftersom bredden på det vita strecket är kortare än avståndet mellan detektorerna. Dvs. en signal , eller ingen signal ges ut i just ett ögonblick, aldrig två samtidigt.
När bilen har svängt ut så mycket från det önskade läget till vänster att inte ens den detektor som ligger längst till höger längre ger utslag så skall kretsen fortfarande hålla det läget låst, TILLS den har hunnit svänga in och den näst högersta detektorn ger utslag, som i sin tur släcker den allra högersta.
