Välja "rätt" microprocessor [Valde: Arduino]

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
kenntoft
Inlägg: 195
Blev medlem: 5 september 2011, 11:32:45
Ort: Sundbyberg

Välja "rätt" microprocessor [Valde: Arduino]

Inlägg av kenntoft »

1:a inlägget för mig så ber om ursäkt för eventuella newbie misstag.

Behöver tips på microprocessor att använda.
Kriterierna är:
Billig (gratis)
Lätt att programmera (har bara VBA och javascript/php så vilket språk som helst duger)
Gratis/billig programvara
Vida känd och använd


Den ska kunna:
Styra reläer i bilen (för lampor)
Ta emot signaler från sensorer, typ 5+ max 10.
Styra reläer till motorer
Kunna kopplas via dator (USB) för att få "kommandon".
Skicka data(kommandon/signaler) till dator via USB.


Har läst och hittat lite olika MCUs, AVR, BasicStamp, PIC, etc.
Kan "Arduino" vara något för den här uppgiften?

Min idé är minst sagt på idéplanet men man måste ju börja nånstans.
Saknar ni detaljer så fråga på, kommer vaka som en hök över det här så det blir snabba svar.

Tack på förhand för alla bra svar.

1:a EDIT:
Det gör inget om nån lösning kräver eller förenklas av att man har Linux
Senast redigerad av kenntoft 6 september 2011, 14:25:35, redigerad totalt 1 gång.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Välja "rätt" microprocessor

Inlägg av jesse »

Jag tror alla de du föreslagit duger bra.
Om man tar med kriteriet att det ska vara lätt och finnas massor av gratis hjälp , så tror jag att AVR, PIC och Arduino är bra alternativ. Alla dessa har gratis programvara (programmeringsmiljö) och är väl ungefär lika billiga. Parallax har antagligen lite färre användare och jag vet inte vad det kostar.

Sedan kommer diksussionen om du vill lära dig att använda en "ren" microprocessor, eller om du vill ha en med en egen speciell utvecklingsmiljö.

Arduino innehåller ju en AVR, men är en specialvariant med egen mjukvara etc...och ska vara extra lätt för nybörjare. Jag har hört att det ska vara enkelt att börja med den, men jag är personligen lite tveksam. Är det inte bättre att använda en vanlig AVR och lära sig grunderna direkt, istället för via arduino-miljön? Så kanske man inte fastnar i Arduino-språket.

Sedan kommer nästa fråga, oavsett vilken processor du väljer (Här faller arduino bort, tror jag). C eller assembler? Oavsett vilken processor du kör kan du använda både assembler och C. Det finns visst BASIC också för vissa processorer, men jag tror inte det är framtiden, även om det fungerar det också.

Jag började själv med assembler, men när projekten blev större bytte jag till C och det gjorde programmeringen enklare. I assembler lär man sig mer om de grundläggande funktionerna i processorn (man måste lära sig att tänka LOGIK, och hur talen är uppbyggda av bitar och bytes) vilket man har väldig nytta av även då man går över till C.

Så har man ett stort intresse av att kunna sin processor väldigt bra - börja med assembler. Vill man bara snabbt kunna få ihop ett program kanske C är lättare. (Men du kommer inte undan helt med att du behöver kunna logik, bit- och byte-hantering).

Det som kostar några kronor är att du antingen måste ha ett utvecklingskort eller en programmerare för att komma igång. Det varierar något , men från ett par hundralappar och uppåt.
kenntoft
Inlägg: 195
Blev medlem: 5 september 2011, 11:32:45
Ort: Sundbyberg

Re: Välja "rätt" microprocessor

Inlägg av kenntoft »

Tack för ditt snabba svar!

Jag känner för C & AVR efter ditt utlägg.
Men när du säger större projekt...

Jag vill kunna styra 3 st motorer/servon, och en servo ska vara beroende på en positions-sensor.
Typ, if position = XYZ stop servo :)

Men jag läste för ett tag sen att en MCU inte kan göra saker samtidigt (?)
Jag vill ju kunna köra en servo samtidigt som en annan? Eller har jag missuppfattat det där med "samtidigt"
Den skulle ju iofs kunna skicka signal till en servo sen millisekunden efter till en annan, det kommer att uppfattas som "samtidigt".

Hur räknar man på pinnar? Alltså om jag vill ha 5 sensorer så borde jag ju ha 5 pinnar till dom.
Sen tre servon, dom styrs tydligen via pulsar? hur många pinnar behöver det?

Hur tror du/ni att jag ska lösa PC-USB-MCU-USB-PC kommunikationen? Har läst en del om signaler och baudrates etc.
Användarvisningsbild
Icecap
Inlägg: 26654
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Välja "rätt" microprocessor

Inlägg av Icecap »

På min hemsida, under "Freebies", är det ett projekt där en PIC styr 12 RC-servo samtidig. Eller rättare: omedelbart efter varandra.

En µC kan bara göra en sak åt gången men vissa verkar tro (och programmera som) att det betyder att den först kokar kaffet, sedan knyter skorna osv. när den i verkligheten kan göra en delsak åt gången och byta illa kvickt.

Den kan alltså kolla om kaffet är klart, sedan säga "Nu lägger du en bit av skosnöret dit, jag återkommer när du är klar", sedan säger den åt hunden att resa sig inför tidningshämtningen - och sedan server den allt igen och igen och igen och...

Den kan bara göra en sak åt gången men den är en jävel på att byta så vi människor ser inte annat än att den gör allt samtidig. Dock beror det på den/dom som utvecklar programmet, det är väldigt många "blinka lampa"-program som består av:
1: Vlå på lampan.
2: Vänta en viss tid.
3: Slå av lampan.
4: Vänta en viss tid.
5: Gå till steg 1.

De mer vana programmörer gör:
1: Start en timer på rätt hastighet.
2: Tillåt interrupts.
3: Gör en ISR som tar hand om timerinterrupten och slår på/av lampfan. (ISR = Interrupt Service Routine)
4: Klart med det, nu sköter det sig själv, vad mer ska göras?
kenntoft
Inlägg: 195
Blev medlem: 5 september 2011, 11:32:45
Ort: Sundbyberg

Re: Välja "rätt" microprocessor

Inlägg av kenntoft »

IceCap:

Jag diggar ditt schema för RC, det är precis så jag vill ha.
Men jag behöver bara 3 servon :)

Jag antar att man kan ha nån sorts konverterare för att få in den i USBn ?
Hittade iofs några färdiga produker som jag tror motsvarar det jag vill ha.
http://www.pc-control.co.uk/hawk_boards.htm
Hade massa annat oxå, stepmotor kontroller oxå.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Välja "rätt" microprocessor

Inlägg av jesse »

>Den kan bara göra en sak åt gången

Jag tycker inte det stämmer. En massa I/O-enheter, timers osv. kan köras parallellt, så den kas göra en massa saker samtidigt. t.ex. kan den ändra status på 8 pinnar samtidigt (en port).

Och om inte det räcker, så är det som Icecap säger, att den gör saker så fort att det inte märks ... t.ex. om du vill ändra på 16 pinnar (två portar) så kan du inte göra det exakt samtidigt, men du kan göra det med mindre än en miljondels sekunds fördröjning.

Programmet kan däremot bara utföra en instruktion åt gången. Men så fungerar ju nästan alla datorer. Din PC hoppar mellan olika uppgifter: läser in ett tecken från tangentbordet, tar emot data från internet, visar ett fönster på skärmen.... Men det betyder ju inte att skärmen släcks ner bara för att du trycker på en knapp - den hinner med alltihop samtidigt (nåja, Windows kanske säckar ihop ibland, men ändå)
Användarvisningsbild
Glenn
Inlägg: 36760
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Välja "rätt" microprocessor

Inlägg av Glenn »

Största felet med Arduino, javelin, BASIC stamp osv tycker jag är att man låser in sej i en specialplattform som är dyr..

Kör man direkt med en PIC/AVR/whavever så har man mycket mer val att välja olika varianter och köpa billiga nya.

Själv kör jag PBP (PIC BASIC Pro) mot PIC, det är enklet och trevligt, fast PBP kostar pengar.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Välja "rätt" microprocessor

Inlägg av jesse »

Det vanligaste sättet att kommunicera mellan PC och microprocessor är via serieport. Eftersom serieporten inte finns rent fysiskt på moderna datorer skapar man en virtuell port via USB.

Då finns det olika vägar att gå:

1) antingen använder du en MAX232-krets som omvandlar din processors UART-signaler till RS232 (serieport) signaler och ansluter denna till en RS232 till USB-omvandlare som du ansluter till datorn.

2) eller så använder du en FT232-krets som ansluter din processor direkt till USB via UART.

3) sedan finns det processorer med inbyggd USB-funktion.

De flesta utvecklingskort har antingen en MAX232 eller FT232 krets för kommunikation med PC.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Välja "rätt" microprocessor

Inlägg av jesse »

Du kan givetvis köpa ett hawk-board, men då missar du ju hela grejen med att lära dig programmera en processor. En sådan hawk-board är ju en färdig produkt.

Men det beror ju på vad du är ute efter. Lära dig programmera processor eller bara köpa något som kan styra dina servos?
kenntoft
Inlägg: 195
Blev medlem: 5 september 2011, 11:32:45
Ort: Sundbyberg

Re: Välja "rätt" microprocessor

Inlägg av kenntoft »

Många bra svar och inputs.

Jag vet inte riktigt skillnaden mellan AVR och PIC.

De känns likvärdiga (?)

Jag såg att dom har nåt starter-kit för PIC på Kjell.com.

http://www.kjell.com/?item=87814&path=2 ... ,296000000

Är det en bra början eller?

Jag tänkte ett experimentkort kunde vara bra för att leka lite..

Men jag antar att den även kan programmera PICar som ska användas i en krets?

Kan man göra bra saker med en kopplingsplatta?
http://www.kjell.com/content/templates/ ... ,275010000

eller kommer saker och ting hoppa ur därifrån? En kopplingsplatta har inga länkade "hål" ? utan man måste stoppa ner kablarna i samma hål om man vill koppla dom? Allt det verkar bekant från el-läran i gymnasiet iaf:)
Borre
Inlägg: 4610
Blev medlem: 14 juni 2007, 15:43:50
Ort: Hälsingland

Re: Välja "rätt" microprocessor

Inlägg av Borre »

Glenn,
Det där stämmer inte. Det går alldeles utmärkt att nyttja Arduinon som en programmerare. Så när man väl har en Arduino så är det bara köpa lösa kretsar, allt från Attiny till flera olika Atmega osv, och programmera med Arduinon. Det är snarare billigt då man får en färdig utvecklingsplatform och en programmerar för samma pris.
kenntoft
Inlägg: 195
Blev medlem: 5 september 2011, 11:32:45
Ort: Sundbyberg

Re: Välja "rätt" microprocessor

Inlägg av kenntoft »

jesse skrev:Lära dig programmera processor eller bara köpa något som kan styra dina servos?
Vill nog lära mig programmera processor :)

Det känns inte sådär superkomplicerat det jag vill göra egentligen.
Varken programmeringen eller bygga det.

Jag vill ju kunna styra allt via PC/USB.
Styra 3 servon
avläsa 5+ max 10 sensorer
klicka igång 2-4 reläer.

är det så himla svårt tror ni?
Man lär ju inte behöva nån high-end MCU iaf.

Det känns som det mer komplicerade blir att programmera PCn att göra diverse saker.
Och sen att programmera PCn att göra saker med signaler från android enheter via Appar.
Men det är ett annat forum :)
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Välja "rätt" microprocessor

Inlägg av jesse »

Det är inte svårt alls. Och du kan göra det med nästan vilket startpaket du än köper.
Men det finns nog billigare (och bättre?) grejer än den du länkade till på Kjell, om någon hudralapp mer eller mindre spelar nån roll.

PIC och AVR är antagligen ganska likvärdiga, fast här på forumet är vi två läger som krigar om vilken som är bäst. Och jag röstar på AVR , för då kan jag svara på dina frågor :D
emwtur
Inlägg: 77
Blev medlem: 8 maj 2011, 23:21:25
Ort: Bredared

Re: Välja "rätt" microprocessor

Inlägg av emwtur »

kenntoft skrev:Många bra svar och inputs.

Jag vet inte riktigt skillnaden mellan AVR och PIC.

De känns likvärdiga (?)

Jag såg att dom har nåt starter-kit för PIC på Kjell.com.

http://www.kjell.com/?item=87814&path=2 ... ,296000000

Är det en bra början eller?

Jag tänkte ett experimentkort kunde vara bra för att leka lite..

Men jag antar att den även kan programmera PICar som ska användas i en krets?

Kan man göra bra saker med en kopplingsplatta?
http://www.kjell.com/content/templates/ ... ,275010000

eller kommer saker och ting hoppa ur därifrån? En kopplingsplatta har inga länkade "hål" ? utan man måste stoppa ner kablarna i samma hål om man vill koppla dom? Allt det verkar bekant från el-läran i gymnasiet iaf:)

PicKit2 är lite "out of date" numera tyvärr - har själv en - nyare processorer stöds inte av den .
där med inte sagt att den är dålig !

/emwtur
kenntoft
Inlägg: 195
Blev medlem: 5 september 2011, 11:32:45
Ort: Sundbyberg

Re: Välja "rätt" microprocessor

Inlägg av kenntoft »

jesse skrev: PIC och AVR är antagligen ganska likvärdiga, fast här på forumet är vi två läger som krigar om vilken som är bäst. Och jag röstar på AVR , för då kan jag svara på dina frågor :D
Du är snabb på svara så det ger AVR fördel 8)

Men var kan jag hitta AVR "starter-kit" nånstans?

Jag vill ha MCUn, experimentkort (vore bra), programmeringsmiljö och ansluten via USB.
Måste funka med Win7 oxå.

Vill gärna gå till en affär :)
Men utbudet i Örebro är nog ganska skralt så får kanske beställa på internet.

EDIT:
Länka gärna till det kittet eller de kitten jag borde ha/välja mellan.
Skriv svar