Microprosessor på gräsrotsnivå!?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.

Kan man lära sig använda mC på egen hand?

Ja
53
79%
Nej
1
1%
Ja, men det är riktigt svårt
6
9%
Ja, men bara om man har gedigen kunskap om elektronik/digitalteknik
7
10%
 
Antal röster: 67
Användarvisningsbild
Hexagon
Inlägg: 17
Blev medlem: 4 december 2007, 22:18:17
Ort: hudiksvall

Microprosessor på gräsrotsnivå!?

Inlägg av Hexagon »

Ok... sitter och läser tråd upp och tråd ner utan att fatta en bråkdel av vad ni pratar om.
Jag har fattat att microprosessorer är något som jag mycket väl skulle kunna ha mycket glädje av, men dom är en gåta för mig!

Jag har läst igenom den där FAQ-sidan här på forumet. Visst har jag fått en övergripande aning om vad det handlar om, men inget jag skulle kunna använda i praktiken.

Finns det någon möjlighet överhuvudtaget att lära sig det man behöver på egen hand, eller är det här något som bara elektronikstudenter och genier borde bry sig i? Det enda jag tidigare hållt på med är PLC-programmering. Jag kan nog säga, utan att ljuga, att jag inte kan något programmeringsspråk över huvud taget (Men jag lär mig gärna!)

Jag har lånat driv-vis med böcker om div C språk men jag har inbillat mig att det krävs en ganska stadig försåelse om vad som händer "bakom ridån" i en dator för att man ska kunna programmera framgångsrikt. Men så är kanske inte fallet???

Frågorna är ju då...
Vilket programmeringsspråk ska man satsa på att lära sig?
Räcker mina "digitalteknik A, Digitalteknik B" böcker som grund eller är det något som hör hemma på högskolan?
Vilken typ av mC ska jag skaffa (och vilken utrustning runt ikring behöver jag) för att komma igång.
och framför allt! Är det någon ide för en "nolla" som mig att ens försöka eller ska jag ödsla min energi på något annat som faktiskt är innom räckhåll för oss vanliga dödliga?

Om ni har några boktips, lab-övningar eller annan information att tipsa om så tas detta glatt emot!
Fredrick
Inlägg: 342
Blev medlem: 9 januari 2004, 23:12:33

Inlägg av Fredrick »

Jag är självlärd.

Jag kodar i PicBasic Pro (www.melabs.com) vilket är ett mycket enkelt språk att förstå, och du behöver till en början inte förstå vad som händer i ridån utan kan överlåta det till Picbasic.

Gå in på www.melabs.com och titta lite på exempel koderna så får du se.
net4all
Inlägg: 538
Blev medlem: 7 februari 2007, 12:06:34

Inlägg av net4all »

Mer eller mindre självlärd.

Man får ju givetvis läsa enheldel innan man kan göra något nämnvärt.
Och ja, det kan vara bra att läsa på lite om "bakom ridån" även om man inte måste, men att felsäka brukar bli mycket enklare...

Jag började här: http://www.isk.kth.se/kursinfo/6b4059/kursprogvt07.htm
Man får leta och läsa lite, men det mycket bra grund, för att sedan gå vidare...

Om du vill lära dig och har tid: Ge inte upp :)
Användarvisningsbild
nole
Inlägg: 651
Blev medlem: 10 januari 2006, 12:18:00
Ort: Borlänge

Inlägg av nole »

Man kan helt klart lära sig hantera en µC utan högre utbildning inom det fältet.

Jag tror inte att den stora frågan handlar om vilket programmeringsspråk man
väljer att lära sig, eller för den delen vilken processor när man är hobbyist som
vi så brukar man normalt använda AVR eller PIC men det finns andra med som
kanske är intressanta för just dig och dina projekt.

Dom flesta börjar med att lära sig blinka en LED, det finns tonvis med exempel
på internet om hur man skall göra och du kan säkert hitta ett flertal med hjälp
av forumets hus-gud Google ;)

Hur man väljer mellan PIC eller AVR kan ingen hjälpa dig med tror jag, valde
personligen AVR för att andra i min närhet använder dem och jag kan få hjälp
och kanske kan vi när jag blir bättre även hjälpa varandra och bli effektivare i
gemensamma projekt. I värsta fall får du väll slå tärning eller köra krona /
klave..

Sodjan (JESCAB) här på forumet säljer en programmerare för PIC som är
både beprövad och väl omtyckt, Wisp648 heter den, AVR har även den ett
flertal och när man börjar lära sig där är en STK500 ett mycket trevligt
verktyg..

Vad gäller språk verkar det vara ASM som gäller för PIC, mest för att man
lär sig mest om processorn och många exempel är skriva i det, "proffsen"
här på forumet verkar också tycka att det hindrar dig senare i livet att köra
tex Basic istället för ASM. Även AVR förespråkar många ASM av samma
anledning även om det där även är lätt att börja med C då det finns gratis
verktyg att ladda hem.

Välkommen till forumet, lycka till i framtiden.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> ...valde personligen AVR för att andra i min närhet använder dem...

Sannolikt det allra viktigaste kriteriet för val av processor, oasvett om det
sedan råkar bli AVR, PIC eller något annat.

> Jag har fattat att microprosessorer är något som jag mycket väl skulle kunna ha mycket glädje av, men dom är en gåta för mig!

Jag har fattat att kvinnor är något som jag mycket väl skulle kunna ha mycket glädje av, men dom är en gåta för mig!

Sorry, kunde inte låta bli... :-) :-)
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

nole: "..."proffsen" här på forumet verkar också tycka att det hindrar dig senare i livet att köra t.ex. Basic istället för ASM..."

Nejdå, proffsen här vill förhindra ALLA att köra BASIC!

Microprocessorer ÄR roliga och de kan utföra många funktioner som blir ganska stora om man byggar dom i "vanlig" logik samt en del andra funktioner också.

Det viktiga är att man har rätt verktyg, själva kompiler/editor är oftast enkelt men programmeringen av kretsen kan strula och DET kan vara oerhört frustrerande. Program i sig kan vara fulla av buggar men när man inte ens kan få in programmet i kretsen och testa är det dödfödd! All inspiration och kul är direkt borta.

Så välj en bra programmeringsenhet, helst IC(S)P (In-Circuit (Serial) Programming), då kan du koppla upp grejerna i kretsloppet och koppla till programmeringsenheten och bara skicka över programmet för varje ändring, ingen krets som ska flyttas, ingen brytare/bygel som ska ändras osv.

Väljer du PIC är WISP648 en väldig bra grej, jag har själv en WISP628 som fungerar alldeles utmärkt.

Jag har även gjort en liknande funktion för Renesas och en för Fujitsu MB90F583 så ska jag programmera är det bara att skriva program, kompilera växla program (Alt-Tab) och trycka "Enter", då flashas kretsen. Detta förfarande snabbar upp hela utvecklingen avsevärd och håller kvar det roliga.

Detta medförde att mitt första riktiga Renesas-projekt fungerade efter 6 timmer, jag hade en del förarbete med att interface til hårdvaran men själva funktionen blev sydd ihop på 6 timmer och när vi kollade med kunden ville han också gärna ha denna och hin funktion i... och det är bara en demo i nuläget...

Och ja, jag är självlärd också och nu lever jag på att designa microprocessorlösningar, programmera dom, bygga testenheter osv.
BJ
Inlägg: 8864
Blev medlem: 11 april 2007, 08:14:53
Ort: En_stad

Inlägg av BJ »

Om man använder pic-processorer så blir det mycket lättare om man har t.ex. en ICD2 från Microchip.
Den kan köra avlusning när kretsen sitter där den ska vara. (in-circuit debugger på engelska.)
Den är dyr, men med många av kretsarna (inte alla) så kan man stoppa programmet och titta vad det är för värden i olika register.
Man kan se vilka ben som är 1 eller 0, vilka som är ingångar eller utgångar,
vad det finns för tecken i en mottagnings-buffert, var man är i programmet, och en del andra saker.
Det kostar en del, men det är mycket roligare när man kan titta vad som händer.
Det är ju så jobbigt att sitta och gissa vad det kan vara när nånting inte fungerar.

Och då är det bra om programmet är gjort i assembler, så att man kan följa sitt program när det körs. :)

http://www.piclist.com finns det massor med program som man kan titta på. Och delar av program.
Titta på sidan "Source code library".
En del saker är lätta att förstå, och en del är nästan omöjliga.
Många av programmen finns det kommentarer i. Man behöver inte förstå allt på en gång även om det är kommentarer,
utan man kan få sitta ett tag och läsa om instruktioner och så innan man förstår hur det fungerar.
bos
Inlägg: 2314
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: Microprosessor på gräsrotsnivå!?

Inlägg av bos »

Hexagon skrev:Om ni har några boktips, lab-övningar eller annan information att tipsa om så tas detta glatt emot!
Som en del andra skrivit, att välja bland PIC/AVR är inte det lättaste, eftersom dessa två artitekturer kan ses som religion. Går du till avrfreaks.net och pratar om hur bra PIC är så blir du ihjälskjuten (ungefär), men jag har inte upplevt det motsatta om du i PIC-kretsar (inte elektroniska, alltså) börjar prata om AVR.

Jag (själv)lärde mig PIC den här vägen:

1. Först fixade jag ett mål, ett projekt att bygga, där en PIC skulle kunna komma till nytta (resultatet finns här)

2. Jag skaffade boken "The quintessential PIC-microcontroller" av Sid Katzen, en enligt mitt tyckte en fantastisk bok. Jag hade alltså noll kunskap om både PIC och microcontrollers innan, men denna bok lärde mig allt. Den skiljer sig ur mängden genom att INTE vara en bok av typen "En PIC funkar såhär.... och här har du massa programkod... så, ut och bygg!", utan denna är verkligen perfekt kronologiskt uppbyggd för att få en verklig förståelse.

3. Blev medlem på PIC-list (www.piclist.com), en otroligt bra resurs.


Assembler kan kanske vara svårt att lära sig om man inte har programmeringsvana, men assembler är verkligen det ultimata språket för microcontrollers. Då med avseende på att du har full kontroll på saker och ting. Det är hög inlärningströskel (ungefär som matematik), men när saker och ting väl släpper så faller oftast samtliga bitar på plats (också ungefär som matematik). Jag rekommenderar att du siktar på assembler det första du gör. Sen, när du fått grunderna, kan du byta till något annat.

PIC-utveckling gör du i MPLab, ett gratis-program (IDE) från Microchip. Sen om du ska fixa in din kod i kretsar så behöver du en programmerare. Förslagsvis Wisp648 från Sodjan här i forumet. Billig men kraftfull.

Men MPLab och dess simuleringsverktyg kommer du rätt långt på i början, iallafall när du håller på och lär dig.


Så, det var förslag på hur du lär dig PIC. Någon annan får säga hur det är för AVR, för det har jag ingen koll eller intresse av.

Lycka till!
Senast redigerad av bos 19 januari 2008, 08:54:16, redigerad totalt 1 gång.
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg av thepirateboy »

Jag känner igen det där och det går säkert att lära sig själv men jag kämpade många år utan att lyckas speciellt bra. Efter att ha lärt mig grunderna i digitalteknik och programmering blev allting så ofantligt mycket lättare. Har du möjlighet, försök att gå dessa kurser, livet med µC blir så mycket lättare då.

En bok som är ganska lättläst och tar upp lite om datorteknik och programmering är http://www.studentlitteratur.se/o.o.i.s ... 66&mp=2474
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Re: Microprosessor på gräsrotsnivå!?

Inlägg av $tiff »

Hexagon skrev: Jag har läst igenom den där FAQ-sidan här på forumet. Visst har jag fått en övergripande aning om vad det handlar om, men inget jag skulle kunna använda i praktiken.
Din synvinkel är användbar, eftersom FAQen är skriven av folk som redan vet ungefär vad de sysslar med så missar man lätt att tänka som målgruppen, d.v.s. de som tänker som du och vill lära sig!
Berätta gärna vilka grejer som du saknar i FAQenså vi kan komplettera den!
Hexagon skrev: Finns det någon möjlighet överhuvudtaget att lära sig det man behöver på egen hand, eller är det här något som bara elektronikstudenter och genier borde bry sig i? Det enda jag tidigare hållt på med är PLC-programmering. Jag kan nog säga, utan att ljuga, att jag inte kan något programmeringsspråk över huvud taget (Men jag lär mig gärna!)
Sund inställning, med den kommer du långt!
Jag är självlärd, åtm i början. Med gymnasiekunskaper i fysik klarar du dig långt. Efter att jag lärt mig grunderna för µC trillade jag in på en civilingengörsutbildning inom samma område, men det är en annan sak. Många här har nog gjort samma sak.
Hexagon skrev: Jag har lånat driv-vis med böcker om div C språk men jag har inbillat mig att det krävs en ganska stadig försåelse om vad som händer "bakom ridån" i en dator för att man ska kunna programmera framgångsrikt. Men så är kanske inte fallet???
Nejdå, det är hur många som helst som kommer undan utan att fatta vad och hur kompilatorn gör. Men du har rätt i att det är en stor fördel att känna till det!
Hexagon skrev: Frågorna är ju då...
Vilket programmeringsspråk ska man satsa på att lära sig?
Räcker mina "digitalteknik A, Digitalteknik B" böcker som grund eller är det något som hör hemma på högskolan?
Vilken typ av mC ska jag skaffa (och vilken utrustning runt ikring behöver jag) för att komma igång.
Du kan välja många vägar. Själv började jag med PICBasic för att komma igång med ett jätteskutt. Efter ett halvår eller två så insåg jag att språket var den stora begränsningen i vad jag kunde bygga. Då bytte jag plattform till AVR och började koda en snutt assembler och sedan C, sen är begränsningarna borta!
Den vägen kan jag rekommendera, det funkade ju för mig :)
Vad det gäller litteratur så är det bra att läsa. Men ta dig inte vatten över huvudet genom att försöka plöja igenom böcker på fel nivå, risken är att du tröttnar bara för att det verkar svårt!

Lycka till!
Användarvisningsbild
Hexagon
Inlägg: 17
Blev medlem: 4 december 2007, 22:18:17
Ort: hudiksvall

Inlägg av Hexagon »

Tusen tack för alla svar!!
Verkar ju vara något som går att lära sig ändå :D Så då är det väl bara att kavla upp ärmarna :roll:

Projekt som jag skulle kunna använda mC i har jag överflöd av... Stordelen av dom styrs idag med hjälp av PLC och/eller en hög med kontaktorer. Andra projekt är fortfarande bara ideer. Den fråga som fick mig att börja fundera på mC (kan någon lära mig hur man gör ett micro tecken???) är min pelletsbrännare. Jag bygde den själv och den fungerar finfint... men den är i det närmsta helt oautomatiserad. Någon här på forumet tyckte att jag skulle skrota PLC planerna och satsa på en mC i stället. Det är väl knappast ett lämpligt projekt att börja med, men ett fint mål att rikta sina "studier" mot. Blinkande LED är ju också... spännande :D

Än en gång tusen tack för alla svar, tips och ideér!
Och Sodjan... I jämförelse med kvinnan framstår det mesta som enkelt och förutsägbart :D
Einstein började visst med att försöka avkoda det kvinnliga psyket, han bytte till något lättare. KÄRNFYSIK! (Johan Rheborg; "Hur tänker hon")
Användarvisningsbild
nole
Inlägg: 651
Blev medlem: 10 januari 2006, 12:18:00
Ort: Borlänge

Inlägg av nole »

microtecken görs med att trycka altgr + m
Användarvisningsbild
Hexagon
Inlägg: 17
Blev medlem: 4 december 2007, 22:18:17
Ort: hudiksvall

Inlägg av Hexagon »

µ
Det tackar jag för nole!
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47013
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Inlägg av TomasL »

Jag har gjort ungefär som du, en gång i tiden.

Mina reflexioner och erfarenheter är:
Börja med PIC18, orsken är enkel:
  • De är lätta att lära sig.
  • Bästa dokumentationen (microchips datablad och app-notes är outtömmliga)
  • Låga priser.
  • Finns hur mycket mjukvara som helst, både kommersiell och freeware, till vettiga priser.
Det viktigaste enligt mitt sätt att se det är att lära sig hårdvaran utan och innantill, dvs läsa databladet fram och baklänges tills man kann det utantill.

Beträffande språk, så rekommenderar jag C, basic är en återvändsgränd som du snabbt kör in i.
ASM är inget språk, utan ren maskinkod, att lära sig dessa instruktioner ingår i databladsläsningen.

Utrustning att skaffa, du behöver ett utvecklingssystem, själv använder jag FED's WIZ-C, en oerhört kompetent ANSI-C kompilator med grafisk IDE.
Kostar idag nånstans run £50:- eller så.
Du behöver nån form av programmerare.
Du behöver nån form av ICD.
Beträffande programmerare och ICD använder jag PICKey från FED som gör båda, dvs både programmerar och ICD (ICD= In Circuit Debugger).
Med en ICD kan du stega dig fram i koden samtidigt som den körs i hårdvaran.

Det sista du behöver är nån form av utvecklingskort, och det finns hur många som helst att välja på (FED's är förbredda för PICKey)
Själv använder jag iofs inga färdiga kort utan tillverkar dem vid behov så de ligger så nära den tänkta konstruktionen som möjligt.


Beträffande böcker o dyl.
En bra start på PIC är "kokböckerna".
Det finns också en "gammal" svensk läroboksserie som visserligen handlade om en Motorolaprocessor, men ger en hyffsad inblick i vad man kan göra i ASM.
Som jag nämnde tidigare så är uChips datablad och App-notes det "bästa" som finns.

Beträffande C, så är K&R's "The C-Programming language" ett måste, det är C-Bibeln.
FED har ett antal väldigt bra PDF-Böcker på sin hemsida.
På nätet finns också en bra "bok", "PIC-Tutor", (får väl lägga upp den på min hemsida gissar jag.)

PIC-List är en bra kunskapskälla.
FEDPIC på Yahoo är supportgruppen för FED's verktyg.

FED hittar du på http://www.fored.co.uk
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> ASM är inget språk,

Naturligstvis helt fel.

> utan ren maskinkod,

Också det helt fel, men det vet ju alla...
Skriv svar