Sida 1 av 2
Oerfaren men vill lära sig, tips?
Postat: 11 augusti 2012, 20:28:56
av nergal
Hej!
Mitt mål: Jag vill bygga en liten (likt crazybug) quadcopter. Men, jag vill använda IR/Sonar samt koda den att flyga själv och känna av vart den är samt utan att flyga in i något.
Men först lite bakgrund....
Jag har en magister examen i datavetenskap, har jobbat som programmerare i 7år, har programmerat i 15+år. Så, programmering är jag haj på! Men, elektroniken på både gymnasiet och universitetet var väl inte det jag tyckte var roligast och därför har jag väl inte så mycket kunskap om det heller. Programmeringsmässigt så har jag ingen större erfarenhet av microprocessesorer utan det är mest x86 arch som jag utvecklat på. (Jag kommer dock pinsamt dåligt ihåg elektroniken :( )
Så lite frågor till er elektronikproffs:
- Tror ni jag kan lyckas med ett sådant projekt själv?
- Vad behöver jag lära mig?
- Vad ska jag hugga tag i först?
- Hur lär jag mig skapa kretsdiagram som jag vet fungerar vad gäller spänning/ström etc?
- Vart köper man prylar, hur vet man att prylar fungerar ihop?
- Vilken microprocessor tror ni är enklast att jobba med?
Jag har nog fler frågor sen, men jag vore tacksam för råd, länkar till bra sidor där man kan fräscha upp minnet. Hur jag går tillväga. etc.
Var inte rädda för att säga att jag lika gärna kan lägga ner projektet, men det vore tråkigt att döda den här "lilla" drömmen jag har ;)
Tacksam för svar!
Re: Oerfaren men vill lära sig, tips?
Postat: 11 augusti 2012, 20:36:06
av TomasL
- Tror ni jag kan lyckas med ett sådant projekt själv?
Ja.
- Vad behöver jag lära mig?
Ellära, Elektronik och digitalteknik/Microprocessorteknik
- Vad ska jag hugga tag i först?
Elektronik och ellära
- Hur lär jag mig skapa kretsdiagram som jag vet fungerar vad gäller spänning/ström etc?
Genom att lära sig ovanstående och lämplig programvara
- Vart köper man prylar, hur vet man att prylar fungerar ihop?
Elfa, Digikey, Farnel mfl
- Vilken microprocessor tror ni är enklast att jobba med?
Personligen jobbar jag med PIC32/MIPS, andra kommer att föreslå nått ARM-baserat, spelar nog egentligen inte så stor roll.
Det handlar mer om vad man gillar själv. och kravspecen.
Dock eftersom du kommer från x86-världen, glöm allt vad OOP, C++ C# osv, man jobbar i standard C samt möjligtvis i sällsynta fall i ASM
För att snabbt komma igång, finns det diverse sk Demo-kits man kan köpa.
ELFA har det mesta när det gäller PIC32 till exempel.
Re: Oerfaren men vill lära sig, tips?
Postat: 11 augusti 2012, 21:42:17
av dar303
Jag tror att det är enklast att du köper en färdig quad-plattform eller kit som typ kkmultikopter eller ardupilot (eller kloner) och sedan börjar labba med mjukvaran. Då slipper du lära dig hela flygprogrammeringen från grunden, har färdig hårdvara (både flygfarkost och processor/sensorkort) och kan ägna dig åt det du är bra på, dvs programmering. Dessa har väl lediga i/o portar och i2c-bussar redo att haka på egna byggen.
Detta är nog den enkla vägen så att säga!

Lycka till och glöm inte att posta bilder, filmer och kod!
Re: Oerfaren men vill lära sig, tips?
Postat: 12 augusti 2012, 11:51:35
av nergal
Tack för era svar! Jag har kollat lite på mikrocopter och andra sidor där man kan köpa "färdiga" kit. Men även om mitt tycke för eltektronik var vagt förr så är det något jag vill ändra på. Så att köpa ett färdigt kit tror jag inte skulle fylla mitt behov av att lösa den här uppgiften
Jag vill helst att det ska vara så billiga komponenter som möjligt, så jag har råd att göra misstag. Min tanke var att göra som crazyfly (inte crazybug som jag skrev i första inlägget), där de etsat ett kretskort som även är själva kroppen. Det är i den storleken jag vill skapa en quadcopter. Skillnaden ska dock vara att kretsen på kortet skall styra den så min tanke är att inte ha någon R/C styrning.
Jag vill även koda själva styrningen av den också (motorer, inputs etc), även om det är svårt, så är det en del av mitt behov att lösa uppgiften. Det jag älskar med programmering är att jag blir så tillfredsställd av det lilla minsta. Att bara lyckas läsa av input från en komponent skulle göra mig tillfredsställd för den dagens utveckling
Hur som helst, lite fler frågor:
- När ni väljer komponenter att använda, tittar ni på specifikationen för dem för att avgöra om de är lämpliga? Nu tänker jag främst på microprocessor.
- Finns det någonstans man kan rita kretskortet (i något bra program, tips?) samt bestämma komponenter, sedan beställa ett färdigt kort där de har fabrikslött det? Som jag förstår kan det bli väldigt svårt att löda om det är ett litet kretskort och små komponenter? (helst till en billig peng)
- Vad tror ni det skulle gå på att göra ett sådant här projekt i komponentkostnad, med den "specifikation" jag skrev i tidigare inlägg (ir/sonar samt kontrollhantering på kort).
Re: Oerfaren men vill lära sig, tips?
Postat: 12 augusti 2012, 12:20:31
av TomasL
När ni väljer komponenter att använda, tittar ni på specifikationen för dem för att avgöra om de är lämpliga? Nu tänker jag främst på microprocessor.
Ja naturligtvis, man sätter upp en krav/funktions-spec och jobbar utifrån den.
- Finns det någonstans man kan rita kretskortet (i något bra program, tips?) samt bestämma komponenter, sedan beställa ett färdigt kort där de har fabrikslött det? Som jag förstår kan det bli väldigt svårt att löda om det är ett litet kretskort och små komponenter? (helst till en billig peng)
Finns många bra och dåliga EDA-system, både kostnadsfria sådana och professionella (även sk NC-versioner till lågt pris).
http://elektronikforumet.com/wiki/index.php/EDA-System
Själv använder jag EDWinXP, finns även i en NC-version utan restriktioner till bra pris.
Köpa färdiga kort från egen konstruktion är svårt när det gäller en-stycks-projekt, de företag som monterar bruka r vilja ha åtminstånde ett 50-tal kort eller så, å andra sidan vet Swech mer om detta, vore bra att veta var i landet du finns, för att kunna råda mera.
Tillverka kretskortet i sig är inga problem, dock gissar jag att kortet kommer att bli minst 4-lagers, men det finns tillverkare som kan fixa detta åt dig, själv använder jag COGRA-Pro rätt mycket, då de har en bra prototypservice
http://elektronikforumet.com/wiki/index ... illverkare
- Vad tror ni det skulle gå på att göra ett sådant här projekt i komponentkostnad, med den "specifikation" jag skrev i tidigare inlägg (ir/sonar samt kontrollhantering på kort).
Ett par tusenlappar i komponentkostnad (helt beroende på vad givarna kostar).
.
Ett fyrlagers kort hamnar väl på kanske 2-3k beroende på vem som tillverkar det, i enstycksutförande
Skall du ha konsulthjälp får du räkna med 600-1200:-/timma
Re: Oerfaren men vill lära sig, tips?
Postat: 12 augusti 2012, 12:30:50
av wapper
Hej nergal,
Jag är liksom du ganska ny i forumet men har läst i en väldans massa olika trådar. Generellt sett verkar det inte framgångsrikt för projekt att inleda med en massa frågor på forumet om olika saker. Det verkar som om många som ställer frågor om projekt får en massa svar men som inte leder till lösningar nittionio gånger av hundra. Har man däremot kommit en bit på egen hand i ett projekt verkar det som om man kan få mycket fin input och stöd om frågorna och problemen inte är för komplicerade förstås.
Jag vet inte om denna iaktagelse är rätt men för mig förefaller det så. Ett tips till dig kan då vara att du själv sätter igång och skissar på projektet samt sätter upp mål för vad du behöver komplettera din kunskap med. Efterhand som du upptäcker kunskapsluckor täpper du dessa med studier inom de områden du saknar tillräcklig kompetens.
Mitt förslag är att du scannar av Internet så mycket som möjligt när det gäller quadrakopter. Jag är själv sugen på att starta ett sådant projekt och har hunnit med att hitta en del matnyttigt. Skall du skriva styrprogrammet själv bör du veta att det ingår en hel del reglerteori med mer eller mindre komplicerade algoritmer. Kolla in korkens projekt här i forumet så får du en liten bild av vilka problemområden som kan ingå i ett styrsystem för en quadrakopter. Räkna med en projekttid på minst ett par tre år för en quadrakopter som du bygger från grunden där både elektronikutveckling, utveckling av mjukvara och mekanik ingår.
En fördel med att läsa websidor som handlar om det projekt man avser satsa på är att det framgår ganska klart vilka komponenter som ingår i de lösningar som redan finns. Där får man betydligt bättre och detaljerade svar än här i forumet då man ställer frågor liknande de du har ställt i denna tråd.
Vad tror du nergal, verkar ovanstående rimligt?
Re: Oerfaren men vill lära sig, tips?
Postat: 12 augusti 2012, 12:53:21
av Icecap
wapper har rätt i väldigt mycket.
Orsak? Alla frågor visar att en lösning inte är på plats. Man kan inte fatta rätt beslut på osäkert eller okänd underlag, ska man alltså ha input på alla (eller de flesta) aspekter kring ett projekt har man alltså plötsligt en massa byggklosser - men de tillhör olika byggsystem. Vissa är LEGO-klossar, andra är Meccano, andra är pusselbitar osv. Var för sig är de helt OK men ändå passar de inte ihop och ingen lösning är alltså närmre även om det har inkommit ett större antal svar.
"Mitt mål: Jag vill bygga en liten (likt crazybug) quadcopter. Men, jag vill använda IR/Sonar samt koda den att flyga själv och känna av vart den är samt utan att flyga in i något."
OK, då är det dags att bena upp lite:
* Vad är en "crazybug" quadcopter? Jag vet mycket väl vad en quadcopter men "crazybug"???
* IR och sonar är ganska olika, vad vill du uppnå? Vilken avstånd ska kunde mätas? Vilka dimensioner?
* "koda den att flyga själv och känna av vart den är". OK, vilka sensorer har du tänkt dig för det? Det kräver ganska enkelt ett synnerligt bra inertinavigationssystem, gärna ihopkopplat med en GPS-mottagare.
* "utan att flyga in i något." Hedersvärd - men hur har du tänkt dig att den ska klara det? Jo, såklart med sensorer men du har ju inte ens beslutat vilken sorts du vill använda...
Som jag ser det är bågen spänt mycket hårt - men pilen fattas. Undersöka en bit åt gången, hitta rätt lösning, väga fördelar och nackdelar mot varandra och är det svårt att fatta ett beslut kan man kolla andra saker/delar som har betydelse och väga med in. På detta vis kommer alla byggklossarna att tillhöra samma byggsystem och det blir möjligt att köra vidare med det hela, väl vetande om att det faktisk kan fungera.
Och det blir många frågor på vägen, många kan man få svar på här. Oftast en del motstridande svar men alla innehåller en hel del sanning men kommer från lite olika verkligheter varav ingen är ifrån din verklighet... Kan du hålla det i huvudet kommer det mesta att lösa sig och när du har löst programmeringen är iaf. jag intresserat av att känna till resultatet - även om det inte skulle lösa sig...
EDIT:
Så lite frågor till er elektronikproffs:
- Tror ni jag kan lyckas med ett sådant projekt själv?
Ganska säkert - med tiden i ditt ägo...
- Vad behöver jag lära mig?
Att specificera vad du vill uppnå och hur du vill uppnå det.
- Vad ska jag hugga tag i först?
Att känna de byggstenar du vill använda, t.ex. data på quadcopter osv.
- Hur lär jag mig skapa kretsdiagram som jag vet fungerar vad gäller spänning/ström etc?
jobbar hårt och länge, jag har bara 30+ års erfarenhet men håller fortfarande på att lära mig.
- Vart köper man prylar, hur vet man att prylar fungerar ihop?
Jag köper en del prylar på Biltema, JULA, Clas Ohlson, Kjell & Co, ICA Maxi och många andra ställen. Eller menar du specifika prylar?
- Vilken microprocessor tror ni är enklast att jobba med?
Alla man "kan"! Nu för tiden är själva mikroprocessorn (µC) en mindre del av utvecklingssystemet, det mest avgörande är IDE, programmeringsspråk, debug-funktioner och sist kommer faktisk den fysiska µC. Datablad som är till att fatta, bra exempel osv. är mycket viktigare för en "bra upplevelse". Själv använder jag PIC, Renesas och Fujitsu processoreroch de är i grunden ganska lika i användandet: Man ställer registre i rätt läge för att aktiver de hårdvarufunktiomer man vill komma åt, skriver de "drivrutiner" som behövs för att t.ex. sända på en UART eller så, skriver interruptrutiner så att data styrs i enlighet med programmets struktur - och sedan skriver man programmet. Detta är så lika på alla µC fastän de ska ha olika värden i olika register men i grunden är det otroligt lika ändå.
Så din fråga är ung. lika vettig som "vilken bil är bäst: en röd eller en gul?"
Igen: Vad behöver du? Måste den klara en viss mängd beräkningar per sekund? Måste den ha ett visst minimum antal portar? Ett visst minimum antal UART? osv. När detta är klart kan man välja µC och börja titta på IDE och priser för kompiler (många är ju gratis - men inte alla...) osv.
Re: Oerfaren men vill lära sig, tips?
Postat: 12 augusti 2012, 12:55:50
av TomasL
Jag är liksom du ganska ny i forumet men har läst i en väldans massa olika trådar. Generellt sett verkar det inte framgångsrikt för projekt att inleda med en massa frågor på forumet om olika saker. Det verkar som om många som ställer frågor om projekt får en massa svar men som inte leder till lösningar nittionio gånger av hundra. Har man däremot kommit en bit på egen hand i ett projekt verkar det som om man kan få mycket fin input och stöd om frågorna och problemen inte är för komplicerade förstås.
Problemet är väl att det i princip är omöjligt att ge vettiga svar på sådana vaga formuleringar.
Till exempel "hur väljer man komponenter?", tja inte fan vet jag, det sitter förmodligen i ryggmärgen på något sätt.
Generellt sett så tycker jag personligen att man skall starta med lite mindre ambitiösa projekt, så man får lite känsla för det först.
Till exempel, köpa något vettigt demo-kort/starter-kit, börja labba med det, blinka dioder osv, flytta upp till att driva en display, mäta temperatur osv.
Re: Oerfaren men vill lära sig, tips?
Postat: 13 augusti 2012, 12:49:28
av nergal
Tack för era svar!
Jag förstår att jag är vag i min formulering av frågor, men det är väl alltid så i början av projekt där man inte har någon som helst koll på saker som ingår. Min tanke med den här tråden var nog mest att få en uppskattning av hur mycket jobb/studier som kan ligga bakom ett sådant här projekt och om det ens är någon idé att försöka.
(crazybug = crazyflie, det var jag som fick för mig fel namn på deras projekt, se länk nedan)
Vad jag är ute efter att bygga är något i stil med detta:
http://www.daedalus.nu/2010/06/crazyfli ... scription/
Min första tanke var att komponenterna till detta bygge borde inte vara allt för dyra? (Eller är det fortfarande en kostnad på c:a 3000kr som någon av er skrev?)
Min andra tanke var, vad kul det vore om man byggde en sådan utan handkontroll, som styrde sig själv (innomhus, utan GPS). Är processorn för klen för att hantera sådan logik?
Tycker ni att jag gör helt fel om jag ger mig på ett sådant projekt?
Jag ska rota fram min gamla Digitalteknik bok från universitetet och läsa på lite ikväll. Bör nog även ta fram min elektronikbok. Kanske kan ett sådant här projekt lära mig krypa för att till sist bokstavligen kunna flyga?
Re: Oerfaren men vill lära sig, tips?
Postat: 13 augusti 2012, 13:00:00
av Icecap
Den mojäng är mycket liten och ska du klämma dit extra sensorer och grejer behöver du mer plats och energi, alltså en större enhet/plattform.
Men om processorn klarar jobbet? Ptjoo, det beror ju faktisk på den som skriver programmet, vilken klantskalle som helst kan göra ineffektiva program med dålig funktion, det svåra är att göra snabba program som fungerar rätt.
Sedan frågor:
* Du vill inte fjärrstyra den då den ju ska kunde hitta vägen själv - men hur ska den veta var den ska?
* Hur kan den veta var den är?
Re: Oerfaren men vill lära sig, tips?
Postat: 13 augusti 2012, 13:06:58
av nergal
Sedan frågor:
* Du vill inte fjärrstyra den då den ju ska kunde hitta vägen själv - men hur ska den veta var den ska?
Min tanke är att den inte ska veta vart den ska ta vägen, den ska bara åka baserat på om den stöter i något eller ej (eller helst innan den stöter i något såklart). Eller att jag ställt in viss höjd och sedan baserat på sensorer inte åka in i något. Detta under hårdkodad tid eller batteristatus.
* Hur kan den veta var den är?
Den behöver inte veta var den är. Det ska vara väldigt basic.
Saken är den att jag troligen aldrig kommer nyttja den för något speciellt. Jag vill utveckla och ha kul under projektets gång. Det är därför jag vill koda själv och se vad jag lyckas åstakomma och inte använda något färdigt projekt. Det är resan dit jag är sugen på. Att bara få lite fart på motorerna vore t.ex. en framgång, eller som jag skrev tidigare, bara lyckas läsa ouput från t.ex. ett gyro.
Re: Oerfaren men vill lära sig, tips?
Postat: 13 augusti 2012, 13:28:17
av dar303
Den är verkligen häftig men jag tror att det är ett ganska saftigt projekt att tackla själv och från scratch! Denna maskin var ju utvecklad av tre professionella elektronikkonsulter (på sin fritid visserligen) men ändå sponsrat av deras arbetsgivare. Nu verkar de ha startat ett eget företag för den och ska släppa den som kit med full dokumentation och kod!
http://www.bitcraze.se/about/
De verkar ju ha lite resurser, kameratillsatsen verkar vara utvecklad av några på LIU:
http://liu.diva-portal.org/smash/record ... 4744&rvn=1
Dock så har man ju sett ett flertal helt j-a galna projekt gjorda av EF:forumister förrut så inget är omöjligt! Om du visar intresse för Crazyflie så kanske du kan få betatesta och använda den som plattform för att göra en autonom UAV, de har lämnat alla bussar och sådant öppna för expansion.
Re: Oerfaren men vill lära sig, tips?
Postat: 13 augusti 2012, 13:56:02
av Icecap
nergal: "Saken är den att jag troligen aldrig kommer nyttja den för något speciellt. Jag vill utveckla och ha kul under projektets gång."
OK, respekt! Faktisk (i mina ögon) en fullständig legitim anledning!
Men vill du göra det "riktigt" köper du ingen färdig pryl men bygger själv.
Re: Oerfaren men vill lära sig, tips?
Postat: 16 augusti 2012, 20:39:28
av blueint
Om man är osäker är det väl vettigt att fråga om det man behöver veta mer om?
Re: Oerfaren men vill lära sig, tips?
Postat: 16 augusti 2012, 22:59:34
av MiaM
Hur kraschsäkra är en sån helikopter?
Jag skulle nog börjat med något "säkrare" men som på många sätt kan fixas snarlikt, d.v.s. t.ex. en bil. Om du mest vill lära dig elektronik men inte så mycket mekanik så kan det kanske vara en bra idé att köpa en billig radiostyrd bil och byta ut elektroniken. Ett tips då är väl att sätta kontakter mellan bilens motorer, batterihållare o.s.v. som du vill fortsätta använda och dels mellan orginalelektroniken och dels den elektronik du utvecklar själv. På så sätt kan du enkelt växla till orginalelektroniken om du vill prova att "bilhårdvaran" i sig fortfarande fungerar ifall du misstänker att något fungerar dåligt. Dessutom kan du kanske återanvända radiostyrningen för att styra funktioner på ditt eget bygge (vilket visserligen nog är överkurs).
Det beror förstås mycket på vilken sorts person man är - vissa lyckas få de mest avancerade projekt att fungera mer eller mindre på första försöket medan andra behöver öva upp lite erfarenhet. Jag tillhör nog den sistnämnda kategorin
En fråga angående programmering: Vad (ungefär) har du jobbat med? Det är en del skillnad mellan att skriva "vanliga" applikationer som körs under vanliga operativsystem (framförallt sådana som kör batchjobb som inte har några timingkrav alls) och skriva kod för mikrokontrollers. Räkna t.ex. inte med att det finns minnesskydd, virtuellt minne och annat som vanliga dator-OS har. För vissa mikrokontrollers kör man oftast sitt eget program "rakt av" utan något OS alls. En enda tråd, vill man göra fler saker samtidigt får man simulera cooperative multitasking eller göra prioriterade saker som interruptkod och mindre prioriterade saker som "vanlig" kod. En variant är väl att ha en slags hemsnickrad event-loop för allt som inte är direkt akut att köra, och se till att skriva koden så att varje väg programmet kan ta inte tar för lång tid att köra.
TomasL skrev:Problemet är väl att det i princip är omöjligt att ge vettiga svar på sådana vaga formuleringar.
Till exempel "hur väljer man komponenter?", tja inte fan vet jag, det sitter förmodligen i ryggmärgen på något sätt.
Det här är en intressant fråga i sig, som en slags sidospår. Jag tror att det finns rätt dålig forskning på vad som gör att vissa har koll på elektronik, medan andra antingen försökt lära sig och inte lyckats så bra eller inte ens varit intresserade alls.
Jämför t.ex. att forskningen på vilka metoder som faktiskt är bra för programmering och hur man avgör vilka studenter som har talang att bli programmerare till stor del är på åderlåtningsnivå än idag. Jag har för övrigt läst vettigt formulerad kritik nån stans kring programmeringsmetoder där idéer som i sig kan vara bra "kidnappas" av folk som inte själva programmerar, och tas över av "management"-folk som ska trycka in programmerare i olika metodfåror dels utan större hänsyn till vad som fungerar bäst för en viss programmerare och dels utan den kunskap som den som leder det hela verkligen bör ha...
"The camel has two humps (working title)" är förträfflig forskning, troligtvis det första och enda riktigt lyckade experimentet att urskilja vilka som har programmeringstalang. Med tanke på att det funnits hygglig tillgång till datorer rätt länge och programmering också utförts av relativt många under lång tid så är det nästan skrämmande att det dokumentet släpptes 2006. Före det var kunskapen om just den grejen på åderlåtningsnivå.
TomasL skrev:Generellt sett så tycker jag personligen att man skall starta med lite mindre ambitiösa projekt, så man får lite känsla för det först.
Till exempel, köpa något vettigt demo-kort/starter-kit, börja labba med det, blinka dioder osv, flytta upp till att driva en display, mäta temperatur osv.
Medhåll++
Även om "rätt" processor väljs från början så är det nog ändå en bra idé att börja med just att blinka med en lysdiod. Den där blinkande lysdioden vill man för övrigt ha kvar även när allt annat blir mycket mer avancerat, debugutgång
