Mobil robot på en mikrokontroller som reagerar på ljus. Att välja en mikrokontroller för att skapa din robot. resurser för den blivande robotisten

Visst, efter att ha sett tillräckligt många filmer om robotar, har du ofta velat bygga din egen kamrat i strid, men du visste inte var du skulle börja. Naturligtvis kommer du inte att kunna bygga en bipedal Terminator, men det är inte vad vi försöker uppnå. Alla som vet hur man håller en lödkolv korrekt i sina händer kan montera en enkel robot och detta kräver inte djup kunskap, även om det inte kommer att skada. Amatörrobotik skiljer sig inte mycket från kretsdesign, bara mycket mer intressant, eftersom det också involverar områden som mekanik och programmering. Alla komponenter är lättillgängliga och är inte så dyra. Så framstegen står inte stilla, och vi kommer att använda dem till vår fördel.

Introduktion

Så. Vad är en robot? I de flesta fall detta automatisk enhet, som reagerar på eventuella miljöåtgärder. Robotar kan styras av människor eller utföra förprogrammerade åtgärder. Vanligtvis är roboten utrustad med en mängd olika sensorer (avstånd, rotationsvinkel, acceleration), videokameror och manipulatorer. Den elektroniska delen av roboten består av en mikrokontroller (MC) - en mikrokrets som innehåller en processor, en klockgenerator, olika kringutrustning, drift- och permanent minne. Det finns ett stort antal olika mikrokontroller i världen för olika applikationer, och på grundval av dem kan du sätta ihop kraftfulla robotar. För amatörbyggnader används de ofta AVR mikrokontroller. De är överlägset mest tillgängliga och på Internet kan man hitta många exempel baserade på dessa MK:er. För att arbeta med mikrokontroller behöver du kunna programmera i assembler eller C samt ha grundläggande kunskaper om digital och analog elektronik. I vårt projekt kommer vi att använda C. Programmering för MK skiljer sig inte mycket från programmering på en dator, språkets syntax är densamma, de flesta funktioner är praktiskt taget inte annorlunda, och nya är ganska lätta att lära sig och bekväma att använda.

Vad behöver vi

Till att börja med kommer vår robot helt enkelt att kunna undvika hinder, det vill säga upprepa det normala beteendet hos de flesta djur i naturen. Allt vi behöver för att bygga en sådan robot finns i radiobutiker. Låt oss bestämma hur vår robot ska röra sig. Jag tror att de mest framgångsrika är de spår som används i tankar, detta är den mest bekväma lösningen, eftersom banden har större manövrerbarhet än hjulen på ett fordon och är bekvämare att kontrollera (för att svänga räcker det att rotera spåren; åt olika håll). Därför behöver du vilken leksakstank som helst vars spår roterar oberoende av varandra, du kan köpa en i vilken leksaksaffär som helst till ett rimligt pris. Från denna tank behöver du bara en plattform med band och motorer med växellådor, resten kan du säkert skruva loss och slänga. Vi behöver också en mikrokontroller, mitt val föll på ATmega16 - den har tillräckligt med portar för att ansluta sensorer och kringutrustning och i allmänhet är det ganska bekvämt. Du måste också köpa några radiokomponenter, en lödkolv och en multimeter.

Att göra en tavla med MK



Robotdiagram

I vårt fall kommer mikrokontrollern att utföra hjärnans funktioner, men vi börjar inte med den, utan med att driva robotens hjärna. Rätt näring är nyckeln till hälsa, så vi börjar med hur vi matar vår robot på rätt sätt, eftersom det är här nybörjare robotbyggare brukar göra misstag. Och för att vår robot ska fungera normalt måste vi använda en spänningsstabilisator. Jag föredrar L7805-chippet - det är utformat för att mata ut stabil spänning 5V, vilket är vad vår mikrokontroller behöver. Men på grund av att spänningsfallet på denna mikrokrets är ca 2,5V måste minst 7,5V tillföras till den. Tillsammans med denna stabilisator används elektrolytiska kondensatorer för att jämna ut spänningsrippel och en diod ingår nödvändigtvis i kretsen för att skydda mot polaritetsomkastning.
Nu kan vi gå vidare till vår mikrokontroller. Höljet till MK är DIP (det är bekvämare att löda) och har fyrtio stift. Ombord finns en ADC, PWM, USART och mycket mer som vi inte kommer att använda för tillfället. Låt oss titta på några viktiga noder. RESET-stiftet (9:e benet på MK) är anslutet med motstånd R1 till strömkällans "plus" - detta måste göras! Annars kan din MK oavsiktligt återställas eller, enklare uttryckt, fela. En annan önskvärd åtgärd, men inte obligatorisk, är att ansluta RESET via den keramiska kondensatorn C1 till jord. I diagrammet kan du också se en 1000 uF elektrolyt, den sparar dig från spänningsfall när motorerna är igång, vilket också kommer att ha en gynnsam effekt på mikrokontrollerns funktion. Kvartsresonator X1 och kondensatorerna C2, C3 bör placeras så nära XTAL1- och XTAL2-stiften som möjligt.
Jag kommer inte att prata om hur man flashar MK, eftersom du kan läsa om det på Internet. Vi kommer att skriva programmet i C Jag valde CodeVisionAVR som programmeringsmiljö. Detta är en ganska användarvänlig miljö och är användbar för nybörjare eftersom den har en inbyggd guide för att skapa kod.


Min robotbräda

Motor kontroll

En lika viktig komponent i vår robot är motorföraren, vilket gör det lättare för oss att kontrollera den. Motorer får aldrig och under inga omständigheter anslutas direkt till MK! I allmänhet kan kraftfulla belastningar inte styras direkt från mikrokontrollern, annars kommer den att brinna ut. Använd nyckeltransistorer. För vårt fall finns det ett speciellt chip - L293D. I sådana enkla projekt, försök alltid att använda just detta chip med "D"-index, eftersom det har inbyggda dioder för överbelastningsskydd. Denna mikrokrets är mycket lätt att kontrollera och är lätt att få tag på i radiobutiker. Den finns i två paket: DIP och SOIC. Vi kommer att använda DIP i paketet på grund av den enkla monteringen på brädet. L293D har separat strömförsörjning för motorer och logik. Därför kommer vi att driva själva mikrokretsen från stabilisatorn (VSS-ingång) och motorerna direkt från batterierna (VS-ingång). L293D tål en belastning på 600 mA per kanal, och den har två av dessa kanaler, det vill säga två motorer kan kopplas till ett chip. Men för att vara på den säkra sidan kommer vi att kombinera kanalerna, och då kommer vi att behöva en mikrofon för varje motor. Det följer att L293D kommer att klara 1,2 A. För att uppnå detta måste du kombinera micra-benen, som visas i diagrammet. Mikrokretsen fungerar enligt följande: när en logisk "0" appliceras på IN1 och IN2, och en logisk en appliceras på IN3 och IN4, roterar motorn i en riktning, och om signalerna inverteras och en logisk nolla tillämpas, då kommer motorn att börja rotera åt andra hållet. Stiften EN1 och EN2 är ansvariga för att slå på varje kanal. Vi ansluter dem och ansluter dem till "plus" av strömförsörjningen från stabilisatorn. Eftersom mikrokretsen värms upp under drift, och det är problematiskt att installera radiatorer på denna typ av fall, säkerställs värmeavlägsnande av GND-ben - det är bättre att löda dem på en bred kontaktdyna. Det är allt du behöver veta om motorförare för första gången.

Hindersensorer

För att vår robot ska kunna navigera och inte krascha in i allt kommer vi att installera två infraröda sensorer på den. Den enklaste sensorn består av en IR-diod som sänder ut i det infraröda spektrumet och en fototransistor som ska ta emot signalen från IR-dioden. Principen är denna: när det inte finns något hinder framför sensorn träffar inte IR-strålarna fototransistorn och den öppnas inte. Om det finns ett hinder framför sensorn, reflekteras strålarna från den och träffar transistorn - den öppnar och ström börjar flyta. Nackdelen med sådana sensorer är att de kan reagera olika på olika ytor och inte är skyddade från störningar - sensorn kan av misstag triggas av främmande signaler från andra enheter. Modulering av signalen kan skydda dig från störningar, men vi kommer inte att bry oss om det för tillfället. Till att börja med räcker det.


Den första versionen av min robots sensorer

Robot firmware

För att få liv i roboten måste du skriva firmware för den, det vill säga ett program som skulle ta avläsningar från sensorer och styra motorerna. Mitt program är det enklaste, det innehåller inga komplexa strukturer och kommer att vara begripligt för alla. De följande två raderna innehåller rubrikfiler för vår mikrokontroller och kommandon för att generera fördröjningar:

#omfatta
#omfatta

Följande rader är villkorade eftersom PORTC-värdena beror på hur du anslutit motordrivrutinen till din mikrokontroller:

PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;

Värdet 0xFF betyder att utgången blir log. "1", och 0x00 är log. "0".

Med följande konstruktion kontrollerar vi om det finns ett hinder framför roboten och på vilken sida det är:

Om (!(PINB & (1< {
...
}

Om ljus från en IR-diod träffar fototransistorn, installeras en logg på mikrokontrollerbenet. "0" och roboten börjar röra sig bakåt för att ta sig bort från hindret, vänder sig sedan för att inte kollidera med hindret igen och rör sig sedan framåt igen. Eftersom vi har två sensorer kontrollerar vi om det finns ett hinder två gånger – till höger och till vänster, och därför kan vi ta reda på vilken sida hindret är på. Kommandot "delay_ms(1000)" indikerar att en sekund kommer att gå innan nästa kommando börjar köras.

Slutsats

Jag har täckt de flesta aspekter som hjälper dig att bygga din första robot. Men robotteknik slutar inte där. Om du monterar den här roboten kommer du att ha många möjligheter att utöka den. Du kan förbättra robotens algoritm, till exempel vad du ska göra om hindret inte är på någon sida, utan precis framför roboten. Det skulle inte heller skada att installera en kodare - en enkel enhet som hjälper dig att exakt positionera och veta var din robot befinner sig i rymden. För tydlighetens skull är det möjligt att installera en färg- eller monokrom display som kan visa användbar information - batteriladdningsnivå, avstånd till hinder, olika felsökningsinformation. Det skulle inte skada att förbättra sensorerna - installera TSOP:er (detta är IR-mottagare som uppfattar en signal endast med en viss frekvens) istället för konventionella fototransistorer. Förutom infraröda sensorer finns det ultraljudssensorer, som är dyrare och som också har sina nackdelar, men som på senare tid har vunnit popularitet bland robotbyggare. För att roboten ska svara på ljud skulle det vara en bra idé att installera mikrofoner med en förstärkare. Men det jag tycker är riktigt intressant är att installera kameran och programmera maskinseende utifrån den. Det finns en uppsättning speciella OpenCV-bibliotek med vilka du kan programmera ansiktsigenkänning, rörelse enligt färgade beacons och många andra intressanta saker. Allt beror bara på din fantasi och färdigheter.
Lista över komponenter:
  • ATmega16 i DIP-40-paket>
  • L7805 i TO-220-paket
  • L293D i DIP-16 hölje x2 st.
  • motstånd med en effekt på 0,25 W med värden: 10 kOhm x 1 st., 220 Ohm x 4 st.
  • keramiska kondensatorer: 0,1 µF, 1 µF, 22 pF
  • elektrolytiska kondensatorer: 1000 µF x 16 V, 220 µF x 16 V x 2 st.
  • diod 1N4001 eller 1N4004
  • 16 MHz kvartsresonator
  • IR-dioder: vilka två som helst duger.
  • fototransistorer, också vilka som helst, men som bara svarar på våglängden hos infraröda strålar
Firmware-kod:
/*****************************************************
Firmware för roboten

MK-typ: ATmega16
Klockfrekvens: 16,000000 MHz
Om din kvartsfrekvens är annorlunda måste du ange detta i miljöinställningarna:
Projekt -> Konfigurera -> Fliken "C-kompilator".
*****************************************************/

#omfatta
#omfatta

Void main(void)
{
//Konfigurera ingångsportar
//Genom dessa portar tar vi emot signaler från sensorer
DDRB=0x00;
//Slå på pull-up motstånd
PORTB=0xFF;

//Konfigurera utportar
//Genom dessa portar styr vi motorerna
DDRC=0xFF;

//Programmets huvudslinga. Här läser vi av värdena från sensorerna
//och kontrollera motorerna
medan (1)
{
//Låt oss gå framåt
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
om (!(PINB & (1< {
//Gå bakåt 1 sekund
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Linda upp den
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
}
om (!(PINB & (1< {
//Gå bakåt 1 sekund
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Linda upp den
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
delay_ms(1000);
}
};
}

Om min robot

Just nu är min robot nästan komplett.


Den är utrustad med en trådlös kamera, en avståndssensor (både kameran och denna sensor är installerade på ett roterande torn), en hindersensor, en kodare, en signalmottagare från fjärrkontrollen och ett RS-232-gränssnitt för anslutning till en dator. Den fungerar i två lägen: autonom och manuell (tar emot styrsignaler från fjärrkontrollen), kameran kan även slås på/av fjärrstyrt eller av roboten själv för att spara batteri. Jag skriver firmware för lägenhetssäkerhet (överför bilder till en dator, upptäcker rörelser, går runt i lokalerna).

Enligt dina önskemål lägger jag upp en video:

UPD. Jag laddade upp bilderna igen och gjorde några smärre korrigeringar i texten.

För att skapa din egen robot behöver du inte ta examen eller läsa massor. Använd bara de steg-för-steg-instruktioner som robotikmästare erbjuder på sina webbplatser. På Internet kan du hitta mycket användbar information om utvecklingen av autonoma robotsystem.

10 resurser för den blivande robotisten

Informationen på webbplatsen låter dig självständigt skapa en robot med komplext beteende. Här kan du hitta programexempel, diagram, referensmaterial, färdiga exempel, artiklar och fotografier.

Det finns en separat sektion på webbplatsen tillägnad nybörjare. Skaparna av resursen lägger stor vikt vid mikrokontroller, utvecklingen av universella kort för robotik och lödning av mikrokretsar. Här kan du också hitta källkoder för program och många artiklar med praktiska råd.

Webbplatsen har en speciell kurs "Steg för steg", som i detalj beskriver processen för att skapa de enklaste BEAM-robotarna, samt automatiserade system baserade på AVR-mikrokontroller.

En sida där blivande robotskapare kan hitta all nödvändig teoretisk och praktisk information. Här läggs också ett stort antal användbara aktuella artiklar, nyheter uppdateras och du kan ställa frågor till erfarna robotister på forumet.

Denna resurs är tillägnad en gradvis fördjupning i robotskapandets värld. Allt börjar med kunskap om Arduino, varefter nybörjarutvecklaren får veta om AVR-mikrokontroller och modernare ARM-analoger. Detaljerade beskrivningar och diagram förklarar mycket tydligt hur och vad man ska göra.

En sida om hur man gör en BEAM-robot med egna händer. Det finns ett helt avsnitt dedikerat till grunderna, logiska diagram, exempel etc. tillhandahålls också.

Denna resurs beskriver mycket tydligt hur du skapar en robot själv, var du ska börja, vad du behöver veta, var du ska leta efter information och nödvändiga delar. Tjänsten innehåller även en sektion med blogg, forum och nyheter.

Ett enormt liveforum dedikerat till skapandet av robotar. Här är ämnen öppna för nybörjare, intressanta projekt och idéer diskuteras, mikrokontroller, färdiga moduler, elektronik och mekanik beskrivs. Och viktigast av allt, du kan ställa alla frågor om robotik och få ett detaljerat svar från proffs.

Amatörrobotistens resurs är i första hand tillägnad hans eget projekt "Homemade Robot". Men här kan du hitta många användbara tematiska artiklar, länkar till intressanta webbplatser, lära dig om författarens prestationer och diskutera olika designlösningar.

Arduino-hårdvaruplattformen är den mest bekväma för att utveckla robotsystem. Informationen på webbplatsen låter dig snabbt förstå denna miljö, behärska programmeringsspråket och skapa flera enkla projekt.

Att välja en mikrokontroller för att skapa din robot. Först måste du förstå begreppet vad en mikrokontroller är och vad gör den?

Mikrokontrollerär en datorenhet som kan köra program (det vill säga en sekvens av instruktioner).

Det kallas ofta för robotens "hjärna" eller "kontrollcenter". Vanligtvis är mikrokontrollern ansvarig för alla beräkningar, beslutsfattande och kommunikation.

För att kunna kommunicera med omvärlden har mikrokontrollern en serie stift eller stift för att elektriskt känna av signalen. Så signalen kan vridas till maximum (1/C) eller minimum (0/off) med hjälp av en programmeringsinstruktion. Dessa stift kan också användas för att läsa elektriska signaler. De kommer från sensorer eller andra enheter och avgör om signalerna är höga eller låga.

De flesta moderna mikrokontroller kan också mäta spänningen för analoga signaler. Det här är signaler som kan ha ett helt spektrum av värden istället för två tydligt definierade nivåer. Detta händer med en analog digitalomvandlare (ADC). Som ett resultat kan mikrokontrollern tilldela signalen ett numeriskt värde i form av en analog spänning. Denna spänning är varken hög eller låg och ligger vanligtvis i intervallet 0 - 10 volt.

Vad kan en mikrokontroller göra?

Även om mikrokontroller kan verka ganska begränsade vid första anblicken, kan många komplexa åtgärder utföras med hjälp av hög- och lågsignalstift för att programmera en algoritm. Men att skapa mycket komplexa algoritmer, som intelligent beteende eller mycket stora program, kanske helt enkelt inte är möjligt för en mikrokontroller på grund av begränsade resurser och hastighetsbegränsningar.

Du kan till exempel programmera en upprepad sekvens för att få lamporna att blinka. Så mikrokontrollern sätter på signalnivån hög, väntar en sekund, sänker den, väntar ytterligare en sekund och startar igen. Ljuset är anslutet till utgångsstiftet på mikrokontrollern och kommer att blinka oändligt i ett cykliskt program.


På samma sätt kan mikrokontroller användas för att styra andra elektriska enheter. Främst såsom enheter (när de är anslutna till en motorstyrenhet), lagringsenheter (som SD-kort), WiFi eller bluetooth-gränssnitt, etc. Som en konsekvens av denna otroliga mångsidighet kan mikrokontroller hittas i vardagen.

Nästan alla hushållsapparater eller elektroniska enheter använder minst en mikrokontroller. Även om flera mikrokontroller ofta används. Till exempel i tv-apparater, tvättmaskiner, kontrollpaneler, telefoner, klockor, mikrovågsugnar och många andra enheter.

Till skillnad från mikroprocessorer (som den centrala processorenheten i persondatorer) kräver en mikrokontroller inte kringutrustning. Såsom externt RAM-minne eller extern lagringsenhet för arbete. Detta innebär att även om en mikrokontroller kan vara mindre kraftfull än sina PC-motsvarigheter. Det är nästan alltid mycket enklare och billigare att utveckla kretsar och produkter baserade på mikrokontroller eftersom det krävs väldigt få extra hårdvarukomponenter.

Det är viktigt att notera att mikrokontrollern endast kan mata ut en mycket liten mängd elektrisk energi genom dess utmatningsstift. Detta innebär att det inte är möjligt att ansluta en kraftfull elmotor, solenoid, stor belysning eller någon annan stor belastning direkt till mikrokontrollern. Försök att göra detta kan skada styrenheten.

Vilka är mer specialiserade funktioner hos en mikrokontroller?

Särskild hårdvara inbyggd i mikrokontroller gör att dessa enheter kan göra mer än bara digital I/O, grundläggande beräkningar och beslutsfattande. Många mikrokontroller stöder lätt de mest populära kommunikationsprotokollen, såsom UART (RS232 eller annat), SPI och I2C. Den här funktionen är otroligt användbar när du kommunicerar med andra enheter som datorer, sensorer eller andra mikrokontroller.

Även om dessa protokoll kan implementeras manuellt, är det alltid bättre att ha en dedikerad hårdvara ombord som tar hand om detaljerna. Detta gör att mikrokontrollern kan fokusera på andra uppgifter och håller programmet rent.


Analog-till-digital-omvandlare (ADC) används för att omvandla analoga spänningssignaler till digitala. Där är kvantiteten proportionell mot spänningens storlek och detta nummer kan sedan användas i mikrokontrollerprogrammet. För att göra den mellanliggande energiutgången annorlunda än hög och låg, har vissa mikrokontroller förmågan att använda pulsbreddsmodulering (PWM). Till exempel låter den här metoden dig smidigt ändra ljusstyrkan på lysdioden.

Slutligen har vissa mikrokontroller en integrerad spänningsregulator. Detta är ganska bekvämt, eftersom det gör att mikrokontrollern kan arbeta med ett brett spänningsområde. Därför behöver du inte ange de erforderliga spänningsvärdena. Det låter dig också enkelt ansluta en mängd olika sensorer och andra enheter utan en extra extern reglerad strömförsörjning.

Analog eller digital?

Vilka in- och utsignaler som behöver användas beror på uppgiften och förutsättningarna. Till exempel, om din uppgift helt enkelt är att slå på eller stänga av något, behöver du bara att signalen vid ingångsstiftet på mikrokontrollern är digital. Switchens binära tillstånd är 0 eller 1. Den höga nivån på signalen kan vara 5 volt, och den låga nivån 0. Om du behöver mäta till exempel temperatur, behöver du en analog insignal. Därefter tolkar ADC på mikrokontrollern spänningen och omvandlar den till ett numeriskt värde.


Hur programmerar man mikrokontroller?

Programmering av mikrokontroller har blivit enklare tack vare användningen av moderna integrerade utvecklingsmiljöer (IDE) med fullfjädrade bibliotek. De täcker enkelt alla de vanligaste uppgifterna och har många färdiga kodexempel.

Nuförtiden kan mikrokontroller programmeras i en mängd olika högnivåspråk. Dessa är språk som C, C++, C#, Java, Python, Basic och andra. Naturligtvis kan du alltid skriva ett program på assemblerspråk. Även om detta är för mer avancerade användare med speciella krav (med en antydan till masochism). I denna mening bör vem som helst kunna hitta ett programmeringsspråk som bäst passar deras smak och tidigare programmeringserfarenhet.

Programmering av mikrokontroller blir ännu enklare när tillverkare skapar grafiska programmeringsmiljöer. Det här är ikoner som innehåller flera rader kod. Piktogrammen är kopplade till varandra. Som ett resultat skapas ett program som är visuellt enkelt, men som innehåller en stor mängd kod. Till exempel kan en bild representera motorstyrning. Användaren behöver bara placera ikonen där det behövs och ange rotationsriktning och hastighet.


De utvecklade mikrokontrollerkorten är ganska bekväma att använda. Och de är lättare att använda under lång tid. De tillhandahåller även bekväma USB-ström- och programmeringsgränssnitt. Därför är det möjligt att ansluta till vilken modern dator som helst.

Varför inte använda en vanlig dator?

Uppenbarligen är en mikrokontroller väldigt lik en datorprocessor. Om så är fallet, varför inte bara använda en dator för att styra roboten? Så ska du välja en stationär dator eller en mikrokontroller?


I huvudsak, i mer avancerade robotar, särskilt de som involverar komplexa beräkningar och algoritmer, ersätts mikrokontrollern ofta (eller kompletteras) av en standarddator. En stationär dator innehåller ett moderkort, en processor, enhetens RAM (till exempel en hårddisk) och ett grafikkort (inbyggt eller externt).

Dessutom finns det kringutrustning som bildskärm, tangentbord, mus, etc. Dessa system är vanligtvis dyrare, fysiskt större och förbrukar mer ström. De huvudsakliga skillnaderna framhävs i tabellen nedan. Dessutom har de ofta mer funktionalitet än nödvändigt.

Hur väljer man rätt mikrokontroller?

Om du studerar robotik behöver du en mikrokontroller för alla robotprojekt. För en nybörjare kan det verka som en skrämmande uppgift att välja rätt mikrokontroller. Speciellt med tanke på utbudet, tekniska egenskaper och användningsområden. Det finns många olika mikrokontroller tillgängliga på marknaden:

  • Arduino
  • BasicATOM
  • BasicX
  • Lego EV3
  • och många andra

För att välja rätt mikrokontroller, ställ dig själv följande frågor:

Vilken är den mest populära mikrokontrollern för min applikation?

Att skapa robotar och elektroniska projekt i allmänhet är naturligtvis ingen popularitetstävling. Det är mycket bra om mikrokontrollern har mycket stöd från samhället. Och det används framgångsrikt i liknande eller till och med identiska situationer. Som ett resultat kan detta avsevärt förenkla designfasen. På så sätt kan du dra nytta av andra användares erfarenheter, både amatörer och proffs.

Medlemmar i robotdesigngemenskaper delar resultat, koder, bilder, videor med varandra och pratar i detalj om framgångar och till och med misslyckanden. Allt detta är tillgängligt material och möjligheten att få råd från mer erfarna användare. Därför kan det visa sig vara mycket värdefullt.

Har din robot några speciella krav?

Mikrokontrollern måste kunna utföra alla speciella åtgärder för din robot för att funktionerna ska kunna utföras korrekt. Vissa funktioner är gemensamma för alla mikrokontroller (till exempel närvaron av digitala ingångar och utgångar, förmågan att utföra enkla matematiska operationer, jämföra värden och fatta beslut).

Andra styrenheter kan kräva specifik hårdvara (t.ex. ADC, PWM och kommunikationsprotokollstöd). Även minnes- och hastighetskrav samt antalet stift måste beaktas.

Vilka komponenter finns tillgängliga för en viss mikrokontroller?

Kanske har din robot speciella krav eller kräver en specifik sensor eller komponent. Och detta är avgörande för ditt projekt. Därför är det naturligtvis mycket viktigt att välja en kompatibel mikrokontroller.

De flesta sensorer och komponenter kan kommunicera direkt med många mikrokontroller. Även om vissa komponenter är designade för att interagera med en specifik mikrokontroller. Kanske kommer de att vara unika och inkompatibla med andra typer av mikrokontroller.

Hur ser framtiden ut för oss?

Priset på datorer rasar och teknikens framsteg gör dem mindre och effektivare. Som ett resultat har enkortsdatorer blivit ett attraktivt alternativ för robotar. De kan köra ett helt operativsystem (Windows och Linux är de vanligaste).

Dessutom kan datorer ansluta till externa enheter som USB-enheter, LCD-skärmar etc. Till skillnad från sina förfäder tenderar dessa enkortsdatorer att förbruka betydligt mindre ström.

Praktisk del

För att välja en mikrokontroller, låt oss göra en lista över de kriterier vi behöver:

  • Kostnaden för mikrokontrollern bör vara låg
  • Det ska vara lätt att använda och ha bra stöd
  • Tillgång till tillgänglig dokumentation är viktigt
  • Det måste programmeras i en grafisk miljö
  • Det måste vara populärt och ha en aktiv användargemenskap
  • Eftersom vår robot kommer att använda två motorer och olika sensorer kommer mikrokontrollern att behöva minst två portar för att styra motorerna och flera portar för att ansluta sensorer. Det ska även vara möjligt att utöka antalet anslutna enheter i framtiden.

Uppfyller dessa kriterier EV3-modul från Lego Mindstorms EV3 set.


EV3 Brick Översikt

26.01.2011, 09:18
Källa:

Vanligtvis försöker jag i artiklar presentera materialet i den ordning som det utvecklas, men jag tror att så inte är fallet. Därför kommer vi att hoppa över stadierna med att utforma ett kretsschema, PCB-layout och allt annat. I figur 1 ser vi vilken typ av "skam" jag fick.

Vid första anblicken verkar det bara vara en hög med järn, elektronik och sladdar. Detta beror förmodligen på att bitar av olika material användes. Låt oss ta reda på det.

Nu är allt i sin ordning. Attiny2313 mikrokontroller tar emot en hindersignal (logisk etta eller noll) från två infraröda sensorer. Sedan, enligt den fasta programvaran, styr mikrokontrollern L293D-motordrivrutinen (styrström upp till 1 Ampere). Figur 3 visar ett fotografi av en inverterad robot.

Grunden för designen av en hemmagjord robot är en metallremsa böjd till en trapets. Böjningsvinkeln är ca 120°. Det är fundamentalt viktigt att samma böj erhålls på båda sidor, annars kommer roboten inte att röra sig i en rak linje. Även om, å andra sidan, vad en mekaniker eller elektronikingenjör gjorde dåligt ibland kan korrigeras av en programmerare, säg, med hjälp av PWM för att uppnå linjär rörelse av roboten

Vi vet alla från skolans geometrikurs att ett plan bildas antingen av tre punkter eller av en rät linje och en punkt i rymden. Den tredje punkten är ett fritt roterande rullhjul.

Mottagare av IR-sensorer och fototransistorer är placerade i botten för att minska belysningen och minimera falska positiva. Själva IR-sensorerna är monterade på rörliga gångjärn, vilket gör att du kan justera skanningsområdet. Intressant, förresten, var min katts reaktion på den krypande roboten i korridoren? Min katt är svart. Jag ställde in IR-sensorerna på grå tapet, så roboten vände sig framför katten nästan i sista stund, och katten hoppade tillbaka ett steg med ett högt sus.

Nästa modding för roboten var IR-sensorer på dess mage, så att roboten kunde följa en svart linje ritad på vitt papper med en markör. Implementeringen krävde tre sensorer och en komparator på LM339N-chippet för att avlasta mikrokontrollern. En betydande nackdel visade sig vara den nödvändiga preliminära justeringen av sensorerna med hjälp av trimningsmotstånd, beroende på belysningen i rummet.

P.S. Belöningen för att slösa tid på att skapa en meningslös enhet kommer kanske att vara klarheten i mikrokontrollerns funktion och minne som kommer att samla damm på hyllan tills någons barn kan vara intresserad av det.




Topp