Sida 1 av 2
"Tvspel" med avr.
Postat: 9 mars 2005, 21:11:24
av Fricke
Läste för rätt länge sedan om dåren/dårarna som byggde tetris/pong med för spel på tv:n med hjälp av en pic. Jag tänkte att jag inte skulle va sämre men att jag skulle göra det med en avr, ATmega16 för att vara mer exakt. Jag har i mina yngre år programmerat några liknande enkla spel, dock för PC. Så det som var nytt var att få ut det på TV:n.
Efter att ha spenderat någon timma med att ens lyckas få ut några linjer i sync så var det äntligen dags att börja med det roliga. Efter att ha fixat till 2 st "pong paddar" börjar dock beräkningarna för vad som ska skickas till tv:n ta för lång tid. Jag vill inte påstå att jag är den som kodar snålt och dessutom så skrev jag i C så det skulle nog gå kapa ett par instruktioner om jag skrev i asm istället. Hursomhelst dit jag ville komma med den här tråden är att ge lite cred till de som lyckats med det här. Kanske någon här som gjort det?
Edit: kolla in
http://www.rickard.gunee.com/projects/v ... tetris.php
Postat: 9 mars 2005, 22:02:06
av $tiff
Hans snurra har varit på tapeten ett par gånger. Inget dåligt arbete alls!
Här är några fler AVR+TV-projekt om du behöver inspiration.
Postat: 9 mars 2005, 22:57:10
av strombom
Det här är det en på forumet som gjort (dow):
http://method.merseine.nu/Electronics/A ... using_VHDL
Edit: ok inte AVR men ändå
/Johan
Postat: 9 mars 2005, 23:56:14
av cyr
VHDL-Pong har jag också gjort, i samma kurs t.o.m. Inget ljud i vår version dock, och betydligt färre CPLD:er.
Men det är inte alls samma svårighetsgrad som en uC, man gör ju allt parallellt så det är inga problem att hinna med.
Postat: 10 mars 2005, 00:12:25
av mullemeck
Gjorde ett pong till min ledsnurra för nästan ett halvårsen, men med ~10fps så fanns där ganska mycket tid i mellan visningarna att generera bilderna på
http://www.geekjoan.com/forum/viewtopic ... sc&start=0
ett sätt skulle vara att använda en slav-avr som bara spottar ut bilden till tvn från ett minne eller nått.
Postat: 10 mars 2005, 00:26:52
av Fricke
Det är ju just problemet att klara beräkningarna samtidigt som man pratar med tv:n som är problemet. Jag har bara 8 MHz kristaller hemma nu och det borde ju ge 8 instruktioner/uS. En scanline tar 52 uS. Antag då att jag vill ha 128 pixlar i x-led. Det ger ~3 instuktioner/pixel.. Inte allt för mycket att spela på.
Visst verkar det ok att fixa med VHDL men det är ju inte själva spelet jag är ute efter.. Ja sen ska det ju läggas på ljud också..

Postat: 10 mars 2005, 00:30:02
av strombom
Men att göra ett "grafikkort" med en CPLD är väl ingen dum idé ?
/Johan
Postat: 10 mars 2005, 00:39:20
av Fricke
Kanske inte, men jag vet inte riktigt var jag skulle börja. Dessutom så har jag ingenting att bränna kretsarna med här hemma. Jobbigt att gå till universitetet varje gång jag vill prova.. Jag får nog försöka med asm nån dag då jag har tid.
Postat: 11 mars 2005, 13:04:05
av jonkers
Det här med spel......
Jag kan inte riktigt förstå hur man programmer tex ett pong spel.
Det jag menar är själva "intelligensen" i spelet.
Det svåraste måste ju vara att göra motståndaren..... eller gör man bara human vs human kanske?
Ingen som pallar dra en gravt förenklad algoritm för ett pong-spel, på svenska, alltså inget särskilt prog-språk utan pseudo-kod.
Vore intressant.
eder - jonkers
Postat: 11 mars 2005, 13:25:42
av henkebenke
Det är ju inte särskilt svårt att räkna ut var bollen kommer hamna hos motståndaren när du slår till den. Grejen är att inte göra motståndaren för bra. Så "intelligensen" handlar om att motståndaren ska vara lagom dålig.
Postat: 11 mars 2005, 13:40:37
av jonkers
jag försöker föreställa mig hur jag skulle koda en boll som slåss till och flyger iväg med viss hastighet och vinkel men kan inte se hur jag skulle kunna göra ngt sånt (pic-assembler då).
all programmering som jag har gjort (mycket PLC, en del uC nu) har gått ut på väldigt "boolean" och logiska flöden. typ: om knapp ett = till så motor 2 ner samt skicka kod x på port y.
det här med spel är lixom ingenting jag ens kan föreställa mig hur jag ska göra.
måste bli en hel del matte?
Postat: 11 mars 2005, 14:15:29
av dow
Pong är ruggigt enkelt att programmera
strombom la upp en länk till mitt+2 kompisars projekt i skolan, där kan du tanka ner rapporten och koden också om du är intresserad.
Det är inte jättebra implimenterat, beroende på att vi inte kunde använda de kretsar vi hade tänkt från början osv, men det är iaf en fungerande version
Just med motståndaren så gjorde vi det ganska lätt för oss - vi lät helt enkelt motståndaren följa bollens y-position med en viss maxhastighet. Denna hastighet varierade vi med svårighetsgraden.
Det innebär alltså att om bollen åker för snabbt så hinner inte motståndaren med. Sedan kan du ju lägga till en viss osäkerhet också.
Angående att beräkna bollpositioner, hastigheter och studsar så är inte heller detta särskillt svårt. Det enda egentliga problemet med pong är att det är mycket värden som skall lagras, och det krävs en ganska stor cpld för att ordna allt (vi gick ifrån 2 cplder till ~5 tror jag, bara för att de större vi tänkte använda var slut)
Edit: Alltså, koden är ju för CPLD'er, så det kanske inte ger så mycket.
Postat: 11 mars 2005, 17:40:24
av Melker
Postat: 11 mars 2005, 22:13:40
av jonkers
snälla snälla farbror melker kan inte jag få tjuvkika på era sourcecodes.
snyggt gjort btw...... bravo!
Postat: 11 mars 2005, 22:31:11
av Melker
jorå, kan nog slänga upp den imorrn, minns dock inte alls vilket skick den var i när jag/vi la ner projektet, men kan nog gå att få ut något av den iaf.