Val av microprocessor, RGB LED styrning

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Val av microprocessor, RGB LED styrning

Inlägg av sodjan »

Att hoppa på någon Java-processor verkar helkorkat i detta fall...
Användarvisningsbild
4kTRB
Inlägg: 20824
Blev medlem: 16 augusti 2009, 19:04:48

Re: Val av microprocessor, RGB LED styrning

Inlägg av 4kTRB »

Verkar lite helkorkat att ge sig på ett sånt här projekt också
och kanske korkat i så fall att börja med Java som språk om man
nu tänkt sig ett sånt här projekt?

Vill du hålla på med elektronik liknande ett sånt här projekt går du
väl en assemblerkurs/mikrodatorkurs först?

Jag ville köra lastbil och tog ett motorcykelkörkort.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Val av microprocessor, RGB LED styrning

Inlägg av sodjan »

Det finns inget som helst som säger att Java utbildningen/kursen
hade något alls med detta att göra. När det gäller just Java så
är det sannolikt ingen större hjälp, men än de delar som rör
"programmering" rent generellt, utöver de Java specifika delarna.
Användarvisningsbild
4kTRB
Inlägg: 20824
Blev medlem: 16 augusti 2009, 19:04:48

Re: Val av microprocessor, RGB LED styrning

Inlägg av 4kTRB »

Hur som helst så stämmer inte meningen "men jag insåg snabbt att de inte styrs av java språk".
- Därför måste jag lära mig nytt språk.
Uppenbarligen fel om det nu avses att det inte finns processorer som går att programmera i Java.

LED styrs inte av ett språk heller.
Det blir väldigt svårt att hålla på med mer avancerade saker om man inte har grundläggande
koll på termer och liknande.

Min kompis har nyss bytt bil, hon köpte en Opel Mustang.
dragon9226
Inlägg: 144
Blev medlem: 8 september 2010, 14:26:12

Re: Val av microprocessor, RGB LED styrning

Inlägg av dragon9226 »

Ok, visst detta kanske är ett projekt som är lite stort om man inte har gjort något liknande.
Men om man kollar på vad de andra har skrivit så har inte de låtit så överdrivet skeptiska.

Och skulle jag inte lära mig programmera detta fulländat inom den "utsatta" tiden, så länge det praktiska bitarna fungerar, så kan jag alltid
lägga ner mer tid eller utveckla detta mer efter projektets gång.

Har ni något vettigt förslag på vad man skulle kunna använda:
För att dimma alla led:sen samtidigt (inte var för sig), om man har en/ flera microprocessorer som styr dem på/ av individuellt?
Kan man ha någon typ av elektronisk dimmer som aktiveras av microprocessorn?
Användarvisningsbild
jonnorberg
Inlägg: 850
Blev medlem: 19 mars 2008, 17:45:40
Ort: Årsta

Re: Val av microprocessor, RGB LED styrning

Inlägg av jonnorberg »

Här har vi ju lite vilja och ett mål. Börja med att programmera 4x4 leds i en färg. Gå sedan över till RGB. Sedan skalar du upp ditt projektet. Då vet man vad man kommer att råka ut för problem när man sedan skall göra något större. Du kanske inte lyckas med 400 rgb leds med en massiv uppdateringsfrekvens. Men du kanske lyckas med att komma en bit. Sedan är det viljan som tar dig längre.
Jag som inte är någon programmeringsexpert på något vis överlämnar miljö/processor ideér till er andra. Men jag tycker att man ska labba fram sina vägar och tankar. Sedan finns det ju alltid smartare bättre sätt att lösa saker på. Men det tar du i nästa projekt.
Börja smått och förstå allt, istället för att slå med storsläggan på en gång.
Gimbal
Inlägg: 8687
Blev medlem: 20 april 2005, 15:43:53

Re: Val av microprocessor, RGB LED styrning

Inlägg av Gimbal »

En LED kan du styra/dimmra direkt från en utgång på µprocessorn, när det blir fler LEDs behöver du någon form av transistor för att kunna styra den högre strömmen som då går åt.

AVR atmega168 som tidigare föreslagits är bra, billig, gott om minne (dvs inga problem att programmera i C med flyttal och avancerade mattefunktioner om man vill det).

För att programmera den behövs exempelvis en sådan här 73-680-04
Mjukvarumiljön avr studio + c- kompilator är gratis.
dragon9226
Inlägg: 144
Blev medlem: 8 september 2010, 14:26:12

Re: Val av microprocessor, RGB LED styrning

Inlägg av dragon9226 »

Något jag skulle kunna tänka mig (i det stora projektet) är att individuellstyra dem så att de är i grupper om 4.
Vilket skulle resultera i 1/4 av antalet leds. (200*3)/4=150 individuellstyrning i on/off. Samt en gemensam dimmning.
Detta låter mycket lättare än 600 individuellstyrda, och individuelldimmade.

Hur många pinnar måste en processor ha för att klara detta?
Det skulle ju resultera i rader ca 12x12 eller 12x13. Om man tänker sig en kvadrat.

Vilket borde vara ca 26 pinnar? Detta borde ju gå att minska med komplitering eller vad det heter.

Någon synpunkt på detta? idéer eller förslag?

Går det och hur svårt är det att dimmra en grupp av 4 leds direkt från processorn?
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Val av microprocessor, RGB LED styrning

Inlägg av jesse »

Nu hänger jag inte med hur du räknar, men 200 LED till att börja med är ett ojämnt tal om vi pratar om en rektangel. Om vi istället säger 196 st RGB-LED så blir det 14 x 14 st. Om man kopplar ihop dem fyra och fyra så blir det 7 rader gånger 7 kolumner. Varje kolumn har tre färger, så det blir egentligen en matris på 7 x 21.

Detta blir 28 pinnar, om du ska styra dem direkt (via transistorer) från processorn.
Sen ska du ha pinnar för knapparna + en pinne för pwm.

Men det bör gå lika bra att köra seriell data ut, och då behöver du två utgångar för rad ( en klocka och en reset) samt tre utgångar för kolumn - data, klocka och en "latch", om du använder t.ex 3 st 74HC595 shift register (24 bitar).

Jag tror inte på att en javaprocessor skulle vara enklare för dig att börja med. Problemet kommer inte tt vara språket C (det är ju hemskt likt java, fast man får glömma klassbegreppet) , problemet är att du måste lära dig den processor du tänker använda. Om du bestämmer dig för en typ av processor som är enkel att lära sig (t.ex. 8 bitars AVR eller PIC) så föreslår jag att du gör något väldigt enkelt med en av de enklaste processorerna i den familjen - lyckas du med det har du kommit långt. Du har lärt dig mycket om:

1) processorns arbetssätt och grundläggande funktioner
2) programmeringsmiljön / kompilatorn, och språket C
3) skaffat hårdvara (en programmerare) som bör fungera även för det större projektet sedan.
4) provat att göra ett litet kretskort med en processor på (med allt som måste ingå: spänningsregulator, resetkrets, anslutning av ingång till en knapp, anslutning av utgång till en enkel lysdiod, anslutningskontakt till programmeraren)

Om du ändå ska göra ett "mini-experiment-kort" för mikroprocessor så kan du ju också prova att lägga in en RGB-led och försöka styra den. Det krävs transistorer med mera för att få det att fungera (om strömmen är högre än 20 mA)

Men jag håller med om att ditt projekt är ganska stort. Det kan bli svårt att klara på 100 timmar.
dragon9226
Inlägg: 144
Blev medlem: 8 september 2010, 14:26:12

Re: Val av microprocessor, RGB LED styrning

Inlägg av dragon9226 »

Borde det inte gå om jag skulle fixa ett kopplingsschema och sedan bygga ihop det hela.
Och sedan lära mig så mycket programmering som möjligt, på den resterande tiden?
För att sedan använda extra tid, antingen parallellt med projektet eller efter, för att lära mig mer och programmera resten?

Eftersom jag inte har jobbat med något liknande som microprocessorer tidigare så vet jag inte så mycket om dem.
Men vad är det man måste veta om dem för att kunna programmera dem?

Om man skulle jämföra med java, är det inte bara att man måste veta hur man ska bygga programmen och sedan några "enkla" kommandon för att öppna och stänga en strömkrets?
Eller måste man veta hur den är konstruerad och uppbyggd och sådant?
Gimbal
Inlägg: 8687
Blev medlem: 20 april 2005, 15:43:53

Re: Val av microprocessor, RGB LED styrning

Inlägg av Gimbal »

Det är inte så himla mycket man behöver veta, men de har ju speciella funktioner inbyggda i hårdvaran såsom timers som används vid PWM (dvs funktion lämplig för dimmning av ex. LEDs) samt hur interrupt fungerar. Supersvårt? Näe.

Ladda ner en pdf om atmega168 och läs lite om vad den kan.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Val av microprocessor, RGB LED styrning

Inlägg av jesse »

Jovisst. På så vis kommer du garanterat att hinna med att bli "klar" med din uppgift: om du inte hinner programmera häftiga mönster etc. så kan du i alla fall programmera en enkel dimning... sätt igång!

Lite konkreta tips:
själv hade jag köpt den AVRISP programmerare som jag länkade till ovan - sen hade jag installerat WinAVR och Avrstudio4 (utvecklingsmiljö och kompilator för C specialanpassat för AVR-processorer). Sen hade jag laddat ner Kicad (kretskorts-design-program) och börjat rita på ett kretskort. (det tar lite tid att lära sig cadd-programmet, men det är det värt! Det finns bra guider på nätet)

Och så frågan då - val av processor. Eftersom jag valde en AVR-programmerare ovan får jag hålla mig till en AVR-processor.
kanske Atmega644P eller Atmega1284P borde duga? De har 64/128kbyte flashminne och 4/16 kbyte SRAM. Borde räcka till det mesta. 40 pinnars DIP (hålmonterad) eller 44-pinnars TQFP (ytmonterad med 0.8 mm mellan pinnarna) är kapslar som fungerar.
Kristall på 19.66080 MHz och 5 volt matningsspänning för högsta hastighet, samtidigt anpassad för RS232 (UART) vilket jag tycker du bör ha en anslutning för.
Boken är inriktad på hur programmering av mikroprocessorer går till på låg nivå. Denna typ av programmering utförs vanligen i assembler och kräver grundläggande kunskap om hårdvaran. Därför ges en introduktion i datorteknik i början av boken, bland annat beskrivs von Neumann-arkitekturen och för datorn elementära komponenter såsom CPU och minne.
Låna gärna boken Mikroprocessorteknik av Per Foyer- den beskriver generellt hur en AVR-processor fungerar, samt om assemberprogrammering.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Val av microprocessor, RGB LED styrning

Inlägg av sodjan »

> Men vad är det man måste veta om dem för att kunna programmera dem?

Du bör kunna läsa (och förstå!) det aktuella databladet.

T.ex för den Atmega168 som nämndes tidigare i tråden:
http://www.atmel.com/dyn/products/produ ... Tmega168PA

Eller motsvarande för Atmega1284P som också har nämnts :
http://www.atmel.com/dyn/products/produ ... rt_id=4331

Kolla igenom databladet och se sen om du tycker att allt är solklart eller om det är hokuspokus.

"AVR Instruction Set" kan vara bra att ha som referens, men inget du kanske behöver streckläsa.
"AVR and AVR32 - Quick Reference Guide" ser också ut att ha bra info.
Båda finns på sidorna ovan.

Det är ju komplett omöjligt för någon av *oss* att veta hur lätt eller svårt *du* har för detta !

Att bygga med mikrokontrollers är en mindre del programmering (det brukar de flesta
fixa) och en större del elektronik/systemtänkade o.s.v. Du kan säkert i stort strukturera
upp ett typiskt "program" utifrån din Java kurs, men det är inte det som är grejen...
Beroende på hur generellt programmeringkunning du är (eller om du är helt "insnöad" på Java)
så kan din Java bagrund antingen vara till hjälp eller ett hinder.

> Eller måste man veta hur den är konstruerad och uppbyggd och sådant?

Generellt sätt, ja. Sen finns det grader av allt...
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Val av microprocessor, RGB LED styrning

Inlägg av jesse »

Om man skulle jämföra med java, är det inte bara att man måste veta hur man ska bygga programmen och sedan några "enkla" kommandon för att öppna och stänga en strömkrets?
Eller måste man veta hur den är konstruerad och uppbyggd och sådant?
Java brukar ju ha färdiga klasser för allting, t.ex. I/O osv... men i C för mikrocontrollers är det oftast på en något lägre nivå.
Man importerar ett bibliotek just för den processor man vill jobba med - där definieras sedan ett antal MACRON som man använder sig av. Ett macro är egentligen bara en definition av en textsträng som fått ett namn, exempel:

Kod: Markera allt

#define ADRESS 512 // definition av ett macro

...

A = ADRESS*2; // A får här värdet 1024
Adresser till alla pinnar och en massa andra funktioner i processorn har på så vis fått egna namn som kan tilldelas värden direkt i koden. Så t.ex. om du vill lägga ut ett binärt tal på Port B (om nu denna port i förväg har programmerats som utgång) så skriver man bara

Kod: Markera allt

PORTB = 55 // siffran 55 läggs ut som 8 bitars binärkod direkt på utgången, dvs 01010101
På samma sätt läser du in vad du har för spänningar (digitalt) på ingångarna, t.ex.

Kod: Markera allt

value = PINA; // läs in data från Port A och lägg i variabeln "value"
Men ofta finns det mycket mer avancerade samband mellan ingångar/utgångar än bara direkkt läsa eller skriva på porten. Varje pinne har förutom en sådan "direkt" funktion (kallas ofta "bitbanging") flera andra funktioner: t.ex. finns färdiga PWM-generatorer inbyggda i processorn som bara de programmeras rätt, kan ge ut en PWM-signal med viss frekvens osv... Det finns SPI-interface och UART som hanterar seriell datakommunikation osv... Det finns AD-omvandlare som kan läsa in en analog spänning som ett 10-bitars binärt tal osv...

Jag skulle vilja säga att det inte är solklart att läsa igenom det 581 sidor tjocka databladet för Atmega1284P. För att fatta vad det handlar om så behöver du nån slags nybörjarvägledning - i form av tutorial på nätet eller i bokform etc.. Det blir alldeles för svårt annars.

Bild
Pinnarna på Atmega164,324,644 och 1284

Hittade även ett internt schema över en ATmega32. Här kan du se vad som brukar finnas i en processor: (de skiljer sig inte mycket åt, så du hittar det mesta även i de andra AVR:erna)

Bild
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Val av microprocessor, RGB LED styrning

Inlägg av sodjan »

> Jag skulle vilja säga att det inte är solklart att läsa igenom det 581 sidor tjocka databladet för Atmega1284P.

Jag vill säga att det vet vi inte. Det beror helt på bakgrunden. Men visst,
i det aktuella fallet så kan man gissa att det uppstår en del frågetecken.
Men det definitiva svaret på det kan nog bara en här ge... :-)
Skriv svar