robotbygge "2"

Robot, CNC, Pneumatik, Hydraulik, mm
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

okej, vad jag har fått för mej så behöver servon en puls mellan 1-2 ms var 20-30ms eller nått i den stilen.

så om jag har fattat det rätt så klara avr:en både skicka pulserna samtidigt som den T.ex får in en signal från en knapp eller dylikt att en annan motor ska börja köra eller något.


Vill vara säker på att jag har fattat allt rätt innan jag beställer grejorna :roll:
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

när tex en knapp tryckts in så hoppar den till interrupt delen för knappar och då kan inte timer intterupt ske. Alltså att pulsen skulle förstöras lite, men det tror jag inte märks. Man får testa lite när man är klar. Sätta lite pauser och sånt så att det inte blir kontaktsudsar och sånt.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Hej å hå! Det är jag som är "kompis" (till mullemeck).

Språk=PBasic
µC=mikrocontroller (mikroprocessor?); PIC/AVR/BasicStamp.

Jag har tänkt att µC ska ta emot seriell data (från radiomodul), behandla den för att sedan styra en servo samt en vanlig DC-motor utefter dessa data. Problemet jag kan tänka mig är att µC inte hinner behandla datan, styra DC-motorn på de 25ms den har på sig mellan pulserna som krävs för att styra servon.
Och ännu jobbigare blir det om jag (på något sätt?) vill kunna PWMa DC-motorn. Går detta att lösa på något sätt? Vad jag förstår kan inte µC inte skicka ut PWM-signaler samtidigt som den gör annat!?
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

ja vad händer om man inte skickar några pulser? tappar servon sin kraft då eller?
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

den hinner med ganska mycket. Jag ska styra 4 fläktar med PWM, samtidigt som den kan ta emot signaler från IR och COM porten.

Eftersom den går kallar på ett interrupt när den har räknat ett antal steg så kan du göra vad som helst under övriga tiden.

Om jag räknat rätt så hinner den utföra 100 000 instruktioner mellan varje gång du måste pulsa till servona.

men ett problem kan vara att få dom båda att funka synkroniserat eftersom de går i olika hastigheter. Du får välja frekvens på PWM delen till DC motorn utifrån tiden det tar att styra servona. Det blir lite avancerat, men jag tror det ska funka.

jag vet inte vad som gäller med servona. Jag tror de tappar kraften. Men det är inga problem, jag tror den aldrig behöver avbryta pulsen.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Men om den, som i ditt fall, ska tillämpa PWM på 4 fläktar, måste det ju bli strul!? Så fort den har kört ut en PWM-salva (under ett angivet tidsintervall) till en av fläktarna, sänker den denna utgång och ger nästa flät en salva PWM.
Så håller den på med alla fläktarna och därefter ska den ta emot eventuell data från ser/IR.
Du menar att den gör allt så ruskigt snabbt så att man (nästan) kan försumma alla kringstående händelser? Jag kan bara tänka mig att detta kommer fungera med ruskigt bra timing i programmeringen.

När vi ändå är igång med serin i kombination med PWM:
Hur hade du tänkt lösa detta? Ska µC tillänga någon liten ms för att vänta på en signerad seriell datasnutt varje gång den passerar detta kommando? Isåfall, ska man bara hoppas på att det önskade datan ska flyga förbi just då?

Som sagt: Jag är nybörjare och har än så länge bara läst en PBasic-manual.
Vilket språk kodar du med?
Användarvisningsbild
RDX*
EF Sponsor
Inlägg: 1646
Blev medlem: 28 maj 2003, 22:52:04
Ort: Skåne - Lund

Inlägg av RDX* »

Om man tar AVR2313 så har den en inbyggd PWM på en pin. Fungerar inte den då helt separat från övriga programmet [på en egen thread]. Om detta nu stämmer så belastar PWM:en bara programmet när man uppdaterar PWM:en. Stämmer detta eller har jag fått det helt om bakfoten?
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

du har helt rätt =)
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

$tiff skrev:Men om den, som i ditt fall, ska tillämpa PWM på 4 fläktar, måste det ju bli strul!? Så fort den har kört ut en PWM-salva (under ett angivet tidsintervall) till en av fläktarna, sänker den denna utgång och ger nästa flät en salva PWM.
Så håller den på med alla fläktarna och därefter ska den ta emot eventuell data från ser/IR.
Du menar att den gör allt så ruskigt snabbt så att man (nästan) kan försumma alla kringstående händelser? Jag kan bara tänka mig att detta kommer fungera med ruskigt bra timing i programmeringen.

När vi ändå är igång med serin i kombination med PWM:
Hur hade du tänkt lösa detta? Ska µC tillänga någon liten ms för att vänta på en signerad seriell datasnutt varje gång den passerar detta kommando? Isåfall, ska man bara hoppas på att det önskade datan ska flyga förbi just då?

Som sagt: Jag är nybörjare och har än så länge bara läst en PBasic-manual.
Vilket språk kodar du med?
Jag har löst det där med PWM och det är testat på lysdioder och det funkar relativt bra. Jag tror att jag prorammerade så att den delar upp frekvensen i 255 delar, sedan räknar den upp ett steg efter en tid. Sedan ställer jag in vid vilket värde utgångarna ska ändras. Resten kanske du kan lista ut själv? Den kanske missar på ett tiotal instruktioner men det märks inte.

AVR kretsen sköter COM kommunikationen automatiskt. Den läser in datat när det kommer, sparar det och lägger sedan en interrupt kallelse. Då hoppar programmet dit och läser av datat. Detta data kan jag sedan lägga in i det där värdet för utgångarna. Jag tänker skicka två bytes, en för att ställa in värdet mellan 0 och 255, den andra för att addressera till vilken fläkt som ska ändras och resten kan jag använda till något spännande, tex tända ccfl rör lr nåt.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

EagleSpirit skrev:AVR kretsen sköter COM kommunikationen automatiskt. Den läser in datat när det kommer, sparar det och lägger sedan en interrupt kallelse. Då hoppar programmet dit och läser av datat. Detta data kan jag sedan lägga in i det där värdet för utgångarna. Jag tänker skicka två bytes, en för att ställa in värdet mellan 0 och 255, den andra för att addressera till vilken fläkt som ska ändras och resten kan jag använda till något spännande, tex tända ccfl rör lr nåt.
Fixar en AVR alla de där mumsiga funktionerna (automatisk serin och kontinuerlig PWM) även om man programmerar med PBasic (och sedan kompilerar till assembler)?
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

det där med kontinuerligt PWM beror på hur snabbt man vill ha det och hur avancerat det ska vara. Den klarar ju inte hur snabbt som helst. Men som sagt tidigare, om man har en kristall på 8mhz och vill ha en PWM frekvens på 100hz hinner den utföra 80 000 instruktioner under tiden. Du hinner göra ganska mycket på den tiden :P

men vad gäller Pbasic vet jag inte. Men det borde funka. Programmet blir ju inte optimerat precis, men den kan nog inte förlora 80 000 instruktioner :P
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Åkej. Nu har jag läst till mig lite kunskap om detdär med UART (som det tydligen heter?). Vi satsar på två AVR AT90S2313. Den ska klara det mesta och är dessutom relativt billig. Jag läste även om någon version av Basic som kallades för PIC-Basic som innehöll lite mer mums än vad den vanliga BS2 gör. Men det här ska nog gå bra...
Jag återkommer när vi fått grejerna och berättar hur (om) det går! :D
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

men PIC basic funkar ju inte till AVR? Ni ska inte ha två AVR kretsar i samma robot va? Det behövs inte.

ja det heter UART
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

Nej vi vet att Pic basic inte funkar till en AVR, vi har tänkt satsa på Bascom-Avr.

Vi köpte två för att kunna leka lite mer.. och ifall en skulle gå sönder..


Har lite planer på att köpa någon Pic också så man har lite att leka med.
kan man få nått tipps på en relativt billig men ändå funktionell krets. Gärna nån länk till en programerare också hade hjälpt..
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

läs det här om ni inte redan gjort det eftersom jag skrev den på förra sidan.

den här programmeraren kan ni använda. Den kanske inte är världens bästa men den funkar. Jag avnänder den till min AVR krets.


PS. Jag är inte säker på om den funkar för min AVR krets dog av någon konstig anledning dagen efter jag hade börjat programmera den :? Men jag kan fortfarande programmera den av någon konstig anledning. DS.
Skriv svar