Tillståndsmaskin kanske?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Fräsen
Inlägg: 1372
Blev medlem: 18 juli 2007, 17:15:26
Ort: Svedala

Tillståndsmaskin kanske?

Inlägg av Fräsen »

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! =)
Mindmapper
Inlägg: 7217
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

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.
Senast redigerad av Mindmapper 28 maj 2008, 20:45:07, redigerad totalt 1 gång.
jas39
Inlägg: 122
Blev medlem: 24 december 2005, 23:23:09
Ort: Älvsjö

Inlägg av jas39 »

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
/&&
Fräsen
Inlägg: 1372
Blev medlem: 18 juli 2007, 17:15:26
Ort: Svedala

Inlägg av Fräsen »

Hur hade du tänkt att ett skiftregister skulle fixa detta? Den måste ju veta om den ska skifta åt vänster eller åt höger. Men du verkar ha någon lösning på detta, beskriv gärna lite mer!
Fräsen
Inlägg: 1372
Blev medlem: 18 juli 2007, 17:15:26
Ort: Svedala

Inlägg av Fräsen »

Jag tänkte undvika u-processorer här.

Ja, den är tänkt att gå både åt höger och vänster. Minst tre datalatchar lär behövas för att beskriva samtliga tillstånd.
jas39
Inlägg: 122
Blev medlem: 24 december 2005, 23:23:09
Ort: Älvsjö

Inlägg av jas39 »

Fyra om du skall ha riktning.

Kanske finns nån 4-bit up/down counter som tillsammans med en riktnings vippa kan fås att göra det du vill. Nån form av change detect för att klocka det hela
Fräsen
Inlägg: 1372
Blev medlem: 18 juli 2007, 17:15:26
Ort: Svedala

Inlägg av Fräsen »

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.
Mindmapper
Inlägg: 7217
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

Du gör 2 latchar upp/ner styrning, dessa styrs av ytterlägena. Sedan styrs dessa av pulser från en monovippa som triggas av IR-detektorerna.

Första tanken jag hade behöver många fler AND kretsar än jag tänkte först.
Fräsen
Inlägg: 1372
Blev medlem: 18 juli 2007, 17:15:26
Ort: Svedala

Inlägg av Fräsen »

Problemet är att detaljen kan ändra riktning även om den inte har nått ut till ändläget. Så riktningsdetekterings behövs mellan varje ir-detektor.
Mindmapper
Inlägg: 7217
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

Mycke kretsar bli e'.
Fräsen
Inlägg: 1372
Blev medlem: 18 juli 2007, 17:15:26
Ort: Svedala

Inlägg av Fräsen »

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.
Användarvisningsbild
tompa74
EF Sponsor
Inlägg: 2502
Blev medlem: 29 oktober 2007, 15:25:17
Ort: Kristinehamn

Inlägg av tompa74 »

Räcker det att den roterar åt ett håll eller ska den rotera åt bägge
och hitta läget den kortaste vägen?

/ Tompa
Fräsen
Inlägg: 1372
Blev medlem: 18 juli 2007, 17:15:26
Ort: Svedala

Inlägg av Fräsen »

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.
Användarvisningsbild
tompa74
EF Sponsor
Inlägg: 2502
Blev medlem: 29 oktober 2007, 15:25:17
Ort: Kristinehamn

Inlägg av tompa74 »

Ahaa, missförstod, slarvläste. Trodde det handlade om en roterande
grunka med åtta lägen.


/ Tompa
Användarvisningsbild
Icecap
Inlägg: 26766
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Hur man än vrider och vänder blir det enklaste rent fysisk att ta en µC, minst antal kretsar helt enkelt.

Jag kan dock tänka mig en lösning med en priority-encoder och lite gates men den vill jag inte gå vidare med, det är onödigt krångligt.
Skriv svar