Mobil robot på en mikrokontroller som reagerer på lys. Velge en mikrokontroller for å lage roboten din. ressurser for den aspirerende robotisten

Sikkert, etter å ha sett nok filmer om roboter, har du ofte ønsket å bygge din egen kamerat i kamp, ​​men du visste ikke hvor du skulle begynne. Selvfølgelig vil du ikke kunne bygge en bipedal Terminator, men det er ikke det vi prøver å oppnå. Alle som vet hvordan man holder en loddebolt riktig i hendene kan sette sammen en enkel robot, og dette krever ikke dyp kunnskap, selv om det ikke vil skade. Amatørrobotikk er ikke mye forskjellig fra kretsdesign, bare mye mer interessant, fordi det også involverer områder som mekanikk og programmering. Alle komponenter er lett tilgjengelige og er ikke så dyre. Så fremgangen står ikke stille, og vi vil bruke den til vår fordel.

Introduksjon

Så. Hva er en robot? I de fleste tilfeller dette automatisk enhet, som reagerer på eventuelle miljøhandlinger. Roboter kan styres av mennesker eller utføre forhåndsprogrammerte handlinger. Vanligvis er roboten utstyrt med en rekke sensorer (avstand, rotasjonsvinkel, akselerasjon), videokameraer og manipulatorer. Den elektroniske delen av roboten består av en mikrokontroller (MC) - en mikrokrets som inneholder en prosessor, en klokkegenerator, diverse periferiutstyr, drifts- og permanent minne. Det er et stort antall forskjellige mikrokontrollere i verden for forskjellige applikasjoner, og på grunnlag av dem kan du sette sammen kraftige roboter. De er mye brukt for amatørbygninger. AVR mikrokontrollere. De er desidert mest tilgjengelige og på Internett kan du finne mange eksempler basert på disse MK-ene. For å jobbe med mikrokontrollere må du kunne programmere i assembler eller C og ha grunnleggende kunnskap om digital og analog elektronikk. I vårt prosjekt vil vi bruke C. Programmering for MK er ikke mye forskjellig fra programmering på en datamaskin, syntaksen til språket er den samme, de fleste funksjoner er praktisk talt ikke annerledes, og nye er ganske enkle å lære og praktiske å bruke.

Hva trenger vi

Til å begynne med vil roboten vår ganske enkelt kunne unngå hindringer, det vil si gjenta den normale oppførselen til de fleste dyr i naturen. Alt vi trenger for å bygge en slik robot finner du i radiobutikker. La oss bestemme hvordan roboten vår skal bevege seg. Jeg tror de mest vellykkede er sporene som brukes i tanker, dette er den mest praktiske løsningen, fordi sporene har større manøvrerbarhet enn hjulene på et kjøretøy og er mer praktiske å kontrollere (for å svinge er det nok å rotere sporene; i forskjellige retninger). Derfor trenger du en hvilken som helst leketank hvis spor roterer uavhengig av hverandre, du kan kjøpe en i en hvilken som helst lekebutikk til en rimelig pris. Fra denne tanken trenger du kun en plattform med belter og motorer med girkasser, resten kan du trygt skru av og kaste. Vi trenger også en mikrokontroller, valget mitt falt på ATmega16 - den har nok porter for å koble til sensorer og periferiutstyr, og generelt er det ganske praktisk. Du må også kjøpe noen radiokomponenter, et loddebolt og et multimeter.

Lage et brett med MK



Robotdiagram

I vårt tilfelle vil mikrokontrolleren utføre hjernens funksjoner, men vi starter ikke med den, men med å drive robotens hjerne. Riktig ernæring er nøkkelen til helse, så vi starter med hvordan vi skal mate roboten vår riktig, fordi det er her nybegynnere robotbyggere vanligvis gjør feil. Og for at roboten vår skal fungere normalt, må vi bruke en spenningsstabilisator. Jeg foretrekker L7805-brikken - den er designet for å sende ut stabil spenning 5V, som er det mikrokontrolleren vår trenger. Men på grunn av at spenningsfallet på denne mikrokretsen er ca 2,5V, må det tilføres minimum 7,5V til den. Sammen med denne stabilisatoren brukes elektrolytiske kondensatorer for å jevne ut spenningsbølger og en diode er nødvendigvis inkludert i kretsen for å beskytte mot polaritetsreversering.
Nå kan vi gå videre til mikrokontrolleren vår. Dekselet til MK er DIP (det er mer praktisk å lodde) og har førti pinner. Om bord er det en ADC, PWM, USART og mye mer som vi ikke skal bruke foreløpig. La oss se på noen viktige noder. RESET-pinnen (9. ben av MK) trekkes opp av motstand R1 til "pluss" av strømkilden - dette må gjøres! Ellers kan MK-en din utilsiktet tilbakestille eller, enklere sagt, feile. Et annet ønskelig tiltak, men ikke obligatorisk, er å koble RESET gjennom den keramiske kondensatoren C1 til jord. I diagrammet kan du også se en 1000 uF elektrolytt den sparer deg for spenningsfall når motorene går, noe som også vil ha en gunstig effekt på mikrokontrollerens drift. Kvarts resonator X1 og kondensatorene C2, C3 skal plasseres så nært som mulig til XTAL1 og XTAL2 pinnene.
Jeg vil ikke snakke om hvordan du flasher MK, siden du kan lese om det på Internett. Vi vil skrive programmet i C. Jeg valgte CodeVisionAVR som programmeringsmiljø. Dette er et ganske brukervennlig miljø og er nyttig for nybegynnere fordi det har en innebygd veiviser for kodeoppretting.


Robotbrettet mitt

Motor kontroll

En like viktig komponent i roboten vår er motordriveren, som gjør det lettere for oss å kontrollere den. Aldri og under ingen omstendigheter skal motorer kobles direkte til MK! Generelt kan kraftige belastninger ikke styres direkte fra mikrokontrolleren, ellers vil den brenne ut. Bruk nøkkeltransistorer. For vårt tilfelle er det en spesiell brikke - L293D. I slike enkle prosjekter, prøv alltid å bruke denne brikken med "D"-indeksen, siden den har innebygde dioder for overbelastningsbeskyttelse. Denne mikrokretsen er veldig enkel å kontrollere og er lett å få tak i i radiobutikker. Den er tilgjengelig i to pakker: DIP og SOIC. Vi vil bruke DIP i pakken på grunn av enkel montering på brettet. L293D har separat strømforsyning for motorer og logikk. Derfor vil vi drive selve mikrokretsen fra stabilisatoren (VSS-inngang), og motorene direkte fra batteriene (VS-inngang). L293D tåler en belastning på 600 mA per kanal, og den har to av disse kanalene, det vil si at to motorer kan kobles til en brikke. Men for å være på den sikre siden skal vi kombinere kanalene, og da trenger vi én mikro for hver motor. Det følger at L293D vil kunne tåle 1,2 A. For å oppnå dette må du kombinere micra-bena, som vist i diagrammet. Mikrokretsen fungerer som følger: når en logisk "0" brukes på IN1 og IN2, og en logisk på IN3 og IN4, roterer motoren i én retning, og hvis signalene inverteres og en logisk null brukes, da vil motoren begynne å rotere i den andre retningen. Pinne EN1 og EN2 er ansvarlige for å slå på hver kanal. Vi kobler dem og kobler dem til "pluss" av strømforsyningen fra stabilisatoren. Siden mikrokretsen varmes opp under drift, og det er problematisk å installere radiatorer på denne typen bokser, er varmefjerning sikret av GND-ben - det er bedre å lodde dem på en bred kontaktpute. Det er alt du trenger å vite om motorførere for første gang.

Hindringssensorer

For at roboten vår skal kunne navigere og ikke krasje inn i alt, vil vi installere to infrarøde sensorer på den. Den enkleste sensoren består av en IR-diode som sender ut i det infrarøde spekteret og en fototransistor som skal motta signalet fra IR-dioden. Prinsippet er dette: når det ikke er noen hindring foran sensoren, treffer ikke IR-strålene fototransistoren og den åpner seg ikke. Hvis det er en hindring foran sensoren, reflekteres strålene fra den og treffer transistoren - den åpner seg og strømmen begynner å flyte. Ulempen med slike sensorer er at de kan reagere forskjellig på forskjellige overflater og ikke er beskyttet mot forstyrrelser - sensoren kan ved et uhell utløses av fremmede signaler fra andre enheter. Modulering av signalet kan beskytte deg mot forstyrrelser, men vi vil ikke bry oss med det foreløpig. Til å begynne med er det nok.


Den første versjonen av robotens sensorer

Robot firmware

For å gjenopplive roboten, må du skrive fastvare for den, det vil si et program som tar avlesninger fra sensorer og kontrollerer motorene. Programmet mitt er det enkleste, det inneholder ikke komplekse strukturer og vil være forståelig for alle. De neste to linjene inkluderer overskriftsfiler for mikrokontrolleren vår og kommandoer for å generere forsinkelser:

#inkludere
#inkludere

Følgende linjer er betingede fordi PORTC-verdiene avhenger av hvordan du koblet motordriveren til mikrokontrolleren din:

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

Verdien 0xFF betyr at utgangen vil være logg. "1", og 0x00 er logg. "0".

Med følgende konstruksjon sjekker vi om det er en hindring foran roboten og på hvilken side den er:

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

Hvis lys fra en IR-diode treffer fototransistoren, er det installert en logg på mikrokontrollerbenet. "0" og roboten begynner å bevege seg bakover for å bevege seg bort fra hindringen, så snur den for ikke å kollidere med hindringen igjen og beveger seg så fremover igjen. Siden vi har to sensorer, sjekker vi for tilstedeværelsen av en hindring to ganger – til høyre og til venstre, og derfor kan vi finne ut hvilken side hindringen er på. Kommandoen "delay_ms(1000)" indikerer at det vil gå ett sekund før neste kommando begynner å utføres.

Konklusjon

Jeg har dekket de fleste aspektene som vil hjelpe deg å bygge din første robot. Men robotikk slutter ikke der. Hvis du setter sammen denne roboten, vil du ha mange muligheter til å utvide den. Du kan forbedre robotens algoritme, for eksempel hva du skal gjøre hvis hindringen ikke er på en eller annen side, men rett foran roboten. Det ville heller ikke skade å installere en koder - en enkel enhet som vil hjelpe deg nøyaktig å posisjonere og vite plasseringen til roboten din i verdensrommet. For klarhetens skyld er det mulig å installere en farge- eller monokrom skjerm som kan vise nyttig informasjon - batteriladenivå, avstand til hindringer, diverse feilsøkingsinformasjon. Det ville ikke skade å forbedre sensorene - å installere TSOP-er (disse er IR-mottakere som bare oppfatter et signal med en viss frekvens) i stedet for konvensjonelle fototransistorer. I tillegg til infrarøde sensorer er det ultralydsensorer, som er dyrere og også har sine ulemper, men som nylig har blitt populær blant robotbyggere. For at roboten skal reagere på lyd, vil det være lurt å installere mikrofoner med forsterker. Men det jeg synes er veldig interessant er å installere kameraet og programmere maskinsyn basert på det. Det er et sett med spesielle OpenCV-biblioteker som du kan programmere ansiktsgjenkjenning, bevegelse i henhold til fargede beacons og mange andre interessante ting med. Alt avhenger bare av din fantasi og ferdigheter.
Liste over komponenter:
  • ATmega16 i DIP-40-pakken>
  • L7805 i TO-220-pakke
  • L293D i DIP-16 hus x2 stk.
  • motstander med en effekt på 0,25 W med karakterer: 10 kOhm x 1 stk., 220 Ohm x 4 stk.
  • keramiske kondensatorer: 0,1 µF, 1 µF, 22 pF
  • elektrolytiske kondensatorer: 1000 µF x 16 V, 220 µF x 16 V x 2 stk.
  • diode 1N4001 eller 1N4004
  • 16 MHz kvartsresonator
  • IR-dioder: to av dem vil gjøre det.
  • fototransistorer, også hvilke som helst, men som bare reagerer på bølgelengden til infrarøde stråler
Fastvarekode:
/*****************************************************
Firmware for roboten

MK-type: ATmega16
Klokkefrekvens: 16,000000 MHz
Hvis kvartsfrekvensen din er forskjellig, må du spesifisere dette i miljøinnstillingene:
Prosjekt -> Konfigurer -> "C-kompilator"-fanen
*****************************************************/

#inkludere
#inkludere

Void main(void)
{
//Konfigurer inngangsporter
//Gjennom disse portene mottar vi signaler fra sensorer
DDRB=0x00;
//Slå på pull-up motstander
PORTB=0xFF;

//Konfigurer utgangsporter
//Gjennom disse portene styrer vi motorene
DDRC=0xFF;

//Programmets hovedsløyfe. Her leser vi verdiene fra sensorene
//og kontroller motorene
mens (1)
{
//La oss gå fremover
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
hvis (!(PINB & (1< {
//Gå bakover 1 sekund
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Bli ferdig
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
}
hvis (!(PINB & (1< {
//Gå bakover 1 sekund
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Bli ferdig
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
delay_ms(1000);
}
};
}

Om roboten min

For øyeblikket er roboten min nesten komplett.


Den er utstyrt med et trådløst kamera, en avstandssensor (både kameraet og denne sensoren er installert på et roterende tårn), en hindringssensor, en koder, en signalmottaker fra fjernkontrollen og et RS-232-grensesnitt for tilkobling til en datamaskin. Den opererer i to moduser: autonom og manuell (mottar kontrollsignaler fra fjernkontrollen), kameraet kan også slås på/av eksternt eller av roboten selv for å spare batteristrøm. Jeg skriver fastvare for leilighetssikkerhet (overfører bilder til en datamaskin, oppdager bevegelser, går rundt i lokalene).

I henhold til dine ønsker legger jeg ut en video:

UPD. Jeg lastet opp bildene på nytt og gjorde noen mindre korrigeringer i teksten.

For å lage din egen robot trenger du ikke å oppgradere eller lese massevis. Bare bruk trinn-for-trinn-instruksjonene som robotikkmestere tilbyr på sine nettsider. På Internett kan du finne mye nyttig informasjon om utviklingen av autonome robotsystemer.

10 ressurser for den ambisiøse robotisten

Informasjonen på nettstedet lar deg selvstendig lage en robot med kompleks oppførsel. Her kan du finne programeksempler, diagrammer, referansemateriell, ferdige eksempler, artikler og fotografier.

Det er en egen seksjon på nettstedet dedikert til nybegynnere. Skaperne av ressursen legger betydelig vekt på mikrokontrollere, utvikling av universalkort for robotikk og lodding av mikrokretser. Her kan du også finne kildekoder til programmer og mange artikler med praktiske råd.

Nettstedet har et spesialkurs "Step for Step", som i detalj beskriver prosessen med å lage de enkleste BEAM-robotene, samt automatiserte systemer basert på AVR-mikrokontrollere.

Et nettsted hvor ambisiøse robotskapere kan finne all nødvendig teoretisk og praktisk informasjon. Her legges det også ut en lang rekke nyttige aktualitetsartikler, nyheter oppdateres og du kan stille spørsmål til erfarne robotikere på forumet.

Denne ressursen er dedikert til en gradvis fordypning i verden av robotskaping. Det hele starter med kunnskap om Arduino, hvoretter nybegynnerutvikleren blir fortalt om AVR-mikrokontrollere og mer moderne ARM-analoger. Detaljerte beskrivelser og diagrammer forklarer veldig tydelig hvordan og hva du skal gjøre.

Et nettsted om hvordan du lager en BEAM-robot med egne hender. Det er en hel seksjon dedikert til det grunnleggende, samt logiske diagrammer, eksempler osv.

Denne ressursen beskriver veldig tydelig hvordan du lager en robot selv, hvor du skal begynne, hva du trenger å vite, hvor du skal lete etter informasjon og de nødvendige delene. Tjenesten inneholder også en seksjon med blogg, forum og nyheter.

Et stort live-forum dedikert til å lage roboter. Her er emner åpne for nybegynnere, interessante prosjekter og ideer diskuteres, mikrokontrollere, ferdige moduler, elektronikk og mekanikk beskrives. Og viktigst av alt, du kan stille alle spørsmål om robotikk og motta et detaljert svar fra fagfolk.

Amatørrobotikerens ressurs er først og fremst dedikert til hans eget prosjekt "Hjemmelaget robot". Men her kan du finne mange nyttige tematiske artikler, lenker til interessante nettsteder, lære om forfatterens prestasjoner og diskutere ulike designløsninger.

Arduino-maskinvareplattformen er den mest praktiske for å utvikle robotsystemer. Informasjonen på nettstedet lar deg raskt forstå dette miljøet, mestre programmeringsspråket og lage flere enkle prosjekter.

Velge en mikrokontroller for å lage roboten din. Først må du forstå konseptet om hva en mikrokontroller er og hva gjør den?

Mikrokontroller er en dataenhet som er i stand til å kjøre programmer (det vil si en sekvens av instruksjoner).

Det blir ofte referert til som "hjerne" eller "kontrollsenter" til roboten. Vanligvis er mikrokontrolleren ansvarlig for alle beregninger, beslutningstaking og kommunikasjon.

For å kommunisere med omverdenen har mikrokontrolleren en rekke pinner eller pinner for å registrere signalet elektrisk. Så signalet kan snus til maksimum (1/C) eller minimum (0/off) ved hjelp av en programmeringsinstruksjon. Disse pinnene kan også brukes til å lese elektriske signaler. De kommer fra sensorer eller andre enheter og bestemmer om signalene er høye eller lave.

De fleste moderne mikrokontrollere kan også måle spenningen til analoge signaler. Dette er signaler som kan ha et fullt spekter av verdier i stedet for to klart definerte nivåer. Dette skjer ved hjelp av en analog digital omformer (ADC). Som et resultat kan mikrokontrolleren tildele en numerisk verdi til signalet i form av en analog spenning. Denne spenningen er verken høy eller lav og er typisk i området 0 - 10 volt.

Hva kan en mikrokontroller gjøre?

Selv om mikrokontrollere kan virke ganske begrenset ved første øyekast, kan mange komplekse handlinger utføres ved å bruke høy- og lavsignalpinner for å programmere en algoritme. Men å lage svært komplekse algoritmer, for eksempel intelligent oppførsel eller veldig store programmer, kan rett og slett ikke være mulig for en mikrokontroller på grunn av begrensede ressurser og hastighetsbegrensninger.

Du kan for eksempel programmere en gjentatt sekvens for å få lysene til å blinke. Så mikrokontrolleren slår på signalnivået høyt, venter et sekund, slår det lavt, venter et sekund til og starter på nytt. Lyset er koblet til utgangspinnen til mikrokontrolleren og vil blinke uendelig i et syklisk program.


På samme måte kan mikrokontrollere brukes til å kontrollere andre elektriske enheter. Primært som stasjoner (når koblet til en motorkontroller), lagringsenheter (som SD-kort), WiFi- eller bluetooth-grensesnitt osv. Som en konsekvens av denne utrolige allsidigheten kan mikrokontrollere finnes i hverdagen.

Nesten alle husholdningsapparater eller elektroniske enheter bruker minst én mikrokontroller. Selv om flere mikrokontrollere ofte brukes. For eksempel i TV-er, vaskemaskiner, kontrollpaneler, telefoner, klokker, mikrobølgeovner og mange andre enheter.

I motsetning til mikroprosessorer (som den sentrale prosessorenheten i personlige datamaskiner), krever ikke en mikrokontroller perifere enheter. For eksempel ekstern RAM eller ekstern lagringsenhet for arbeid. Dette betyr at selv om en mikrokontroller kan være mindre kraftig enn PC-motpartene. Det er nesten alltid mye enklere og billigere å utvikle kretser og produkter basert på mikrokontrollere fordi det kreves svært få ekstra maskinvarekomponenter.

Det er viktig å merke seg at mikrokontrolleren bare kan sende ut en svært liten mengde elektrisk energi gjennom utgangspinnene. Dette betyr at det ikke er mulig å koble en kraftig elektrisk motor, solenoid, stor belysning eller noen annen stor belastning direkte til mikrokontrolleren. Forsøk på å gjøre dette kan skade kontrolleren.

Hva er mer spesialiserte funksjoner til en mikrokontroller?

Spesiell maskinvare innebygd i mikrokontrollere lar disse enhetene gjøre mer enn enkel digital I/O, grunnleggende beregninger og beslutningstaking. Mange mikrokontrollere støtter lett de mest populære kommunikasjonsprotokollene, som UART (RS232 eller annet), SPI og I2C. Denne funksjonen er utrolig nyttig når du kommuniserer med andre enheter som datamaskiner, sensorer eller andre mikrokontrollere.

Selv om disse protokollene kan implementeres manuelt, er det alltid bedre å ha dedikert maskinvare ombord som tar seg av detaljene. Dette lar mikrokontrolleren fokusere på andre oppgaver og holder programmet rent.


Analog-til-digital-omformere (ADC) brukes til å konvertere analoge spenningssignaler til digitale. Der er mengden proporsjonal med størrelsen på spenningen og dette tallet kan da brukes i mikrokontrollerprogrammet. For å gjøre den mellomliggende energiutgangen forskjellig fra høy og lav, har noen mikrokontrollere muligheten til å bruke pulsbreddemodulasjon (PWM). For eksempel lar denne metoden deg jevnt endre lysstyrken til LED-en.

Til slutt har noen mikrokontrollere en integrert spenningsregulator. Dette er ganske praktisk, siden det lar mikrokontrolleren jobbe med et bredt spenningsområde. Derfor trenger du ikke oppgi de nødvendige spenningsverdiene. Den lar deg også enkelt koble til en rekke sensorer og andre enheter uten en ekstra ekstern regulert strømforsyning.

Analog eller digital?

Hvilke inn- og utgangssignaler som må brukes avhenger av oppgaven og forholdene. For eksempel, hvis oppgaven din rett og slett er å slå noe på eller av, trenger du bare at signalet på inngangspinnen til mikrokontrolleren er digitalt. Den binære tilstanden til bryteren er 0 eller 1. Det høye nivået på signalet kan være 5 volt, og det lave nivået 0. Skal du måle for eksempel temperatur, så trenger du et analogt inngangssignal. Deretter tolker ADC-en på mikrokontrolleren spenningen og konverterer den til en numerisk verdi.


Hvordan programmere mikrokontrollere?

Programmering av mikrokontrollere har blitt enklere takket være bruken av moderne integrerte utviklingsmiljøer (IDE-er) med fullverdige biblioteker. De dekker enkelt alle de vanligste oppgavene og har mange ferdige kodeeksempler.

I dag kan mikrokontrollere programmeres i en rekke høynivåspråk. Dette er språk som C, C++, C#, Java, Python, Basic og andre. Selvfølgelig kan du alltid skrive et program på assemblerspråk. Selv om dette er for mer avanserte brukere med spesielle krav (med et snev av masochisme). Slik sett bør alle kunne finne et programmeringsspråk som passer best til deres smak og tidligere programmeringserfaring.

Programmering av mikrokontrollere blir enda enklere ettersom produsenter lager grafiske programmeringsmiljøer. Dette er ikoner som inneholder flere linjer med kode. Piktogrammene er koblet til hverandre. Som et resultat blir det laget et program som er visuelt enkelt, men som inneholder en stor mengde kode. For eksempel kan ett bilde representere motorkontroll. Brukeren trenger bare å plassere ikonet der det er nødvendig og angi rotasjonsretning og hastighet.


De utviklede mikrokontrollerbrettene er ganske praktiske å bruke. Og de er lettere å bruke i lang tid. De gir også praktisk USB-strøm og programmeringsgrensesnitt. Derfor er det mulig å koble til en hvilken som helst moderne datamaskin.

Hvorfor ikke bruke en standard datamaskin?

Åpenbart er en mikrokontroller veldig lik en datamaskinprosessor. Hvis det er tilfelle, hvorfor ikke bare bruke en datamaskin til å kontrollere roboten? Så bør du velge en stasjonær datamaskin eller en mikrokontroller?


I hovedsak, i mer avanserte roboter, spesielt de som involverer komplekse beregninger og algoritmer, blir mikrokontrolleren ofte erstattet (eller supplert) med en standard datamaskin. En stasjonær datamaskin inneholder et hovedkort, en prosessor, enhetens RAM (for eksempel en harddisk) og et skjermkort (innebygd eller eksternt).

I tillegg er det eksterne enheter som skjerm, tastatur, mus osv. Disse systemene er vanligvis dyrere, fysisk større og bruker mer strøm. De viktigste forskjellene er fremhevet i tabellen nedenfor. I tillegg har de ofte mer funksjonalitet enn nødvendig.

Hvordan velge riktig mikrokontroller?

Hvis du studerer robotikk, trenger du en mikrokontroller for ethvert robotprosjekt. For en nybegynner kan det virke som en skremmende oppgave å velge riktig mikrokontroller. Spesielt med tanke på rekkevidde, tekniske egenskaper og bruksområder. Det er mange forskjellige mikrokontrollere tilgjengelig på markedet:

  • Arduino
  • BasicATOM
  • BasicX
  • Lego EV3
  • og mange andre

For å velge riktig mikrokontroller, still deg selv følgende spørsmål:

Hva er den mest populære mikrokontrolleren for applikasjonen min?

Å lage roboter og elektroniske prosjekter generelt er selvfølgelig ikke en popularitetskonkurranse. Det er veldig bra hvis mikrokontrolleren har mye samfunnsstøtte. Og den brukes med hell i lignende eller til og med identiske situasjoner. Som et resultat kan dette i stor grad forenkle designfasen. På denne måten kan du dra nytte av erfaringene til andre brukere, både amatører og profesjonelle.

Medlemmer av robotdesignmiljøer deler resultater, koder, bilder, videoer med hverandre og snakker i detalj om suksesser og til og med fiaskoer. Alt dette er tilgjengelig materiale og muligheten til å få råd fra mer erfarne brukere. Derfor kan det vise seg å være svært verdifullt.

Har roboten din noen spesielle krav?

Mikrokontrolleren må kunne utføre alle spesialhandlingene til roboten din for at funksjonene skal utføres riktig. Noen funksjoner er felles for alle mikrokontrollere (for eksempel tilstedeværelsen av digitale innganger og utganger, muligheten til å utføre enkle matematiske operasjoner, sammenligne verdier og ta avgjørelser).

Andre kontrollere kan kreve spesifikk maskinvare (f.eks. ADC, PWM og kommunikasjonsprotokollstøtte). Også minne og hastighetskrav samt antall pinner må tas i betraktning.

Hvilke komponenter er tilgjengelige for en bestemt mikrokontroller?

Kanskje roboten din har spesielle krav eller krever en spesifikk sensor eller komponent. Og dette er avgjørende for prosjektet ditt. Derfor er det selvfølgelig veldig viktig å velge en kompatibel mikrokontroller.

De fleste sensorer og komponenter kan kommunisere direkte med mange mikrokontrollere. Selv om noen komponenter er designet for å samhandle med en spesifikk mikrokontroller. Kanskje de vil være unike og inkompatible med andre typer mikrokontrollere.

Hva bringer fremtiden for oss?

Prisen på datamaskiner stuper, og fremskritt innen teknologi gjør dem mindre og mer effektive. Som et resultat har enkeltbordsdatamaskiner blitt et attraktivt alternativ for roboter. De kan kjøre et fullt operativsystem (Windows og Linux er de vanligste).

I tillegg kan datamaskiner kobles til eksterne enheter som USB-enheter, LCD-skjermer osv. I motsetning til deres forfedre har disse enkeltbordsdatamaskinene en tendens til å bruke betydelig mindre strøm.

Praktisk del

For å velge en mikrokontroller, la oss lage en liste over kriteriene vi trenger:

  • Kostnaden for mikrokontrolleren bør være lav
  • Det skal være enkelt å bruke og godt støttet
  • Tilgjengelighet av tilgjengelig dokumentasjon er viktig
  • Den må programmeres i et grafisk miljø
  • Det skal være populært og ha et aktivt brukerfellesskap
  • Siden vår robot vil bruke to motorer og ulike sensorer, vil mikrokontrolleren trenge minst to porter for å kontrollere motorene og flere porter for å koble til sensorer. Det skal også være mulig å utvide antall tilkoblede enheter i fremtiden.

Oppfyller disse kriteriene EV3-modul fra Lego Mindstorms EV3-settet.


Oversikt over EV3-klosser

26.01.2011, 09:18
Kilde:

Vanligvis prøver jeg i artikler å presentere materialet i utviklingsrekkefølgen, men jeg tror at dette ikke er tilfelle. Derfor vil vi hoppe over stadiene med å designe et kretsskjema, PCB-layout og alt annet. I figur 1 ser vi hva slags "skam" jeg fikk.

Ved første øyekast virker det som bare en haug med jern, elektronikk og ledninger. Dette er sannsynligvis fordi deler av ulikt materiale ble brukt. La oss finne ut av det.

Nå er alt i orden. Attiny2313-mikrokontrolleren mottar et hindringssignal (logisk en eller null) fra to infrarøde sensorer. Deretter, i henhold til fastvaren, kontrollerer mikrokontrolleren L293D-motordriverbrikken (kontrollstrøm opp til 1 Ampere). Figur 3 viser et fotografi av en omvendt robot.

Grunnlaget for utformingen av en hjemmelaget robot er en metallstrimmel bøyd til en trapes. Bøyevinkelen er ca. 120°. Det er grunnleggende viktig at samme bøying oppnås på begge sider, ellers vil ikke roboten bevege seg i en rett linje. Selv om på den annen side det en mekaniker eller elektronikkingeniør gjorde dårlig kan noen ganger korrigeres av en programmerer, for eksempel ved å bruke PWM for å oppnå lineær bevegelse av roboten

Vi vet alle fra skolegeometrikurset at et plan dannes enten av tre punkter eller av en rett linje og et punkt i rommet. Det tredje punktet er et fritt roterende rullehjul.

Mottakere av IR-sensorer og fototransistorer er plassert i bunnen for å redusere belysning og minimere falske positiver. Selve IR-sensorene er montert på bevegelige hengsler, som lar deg justere skanneområdet. Interessant, forresten, var kattens reaksjon på den krypende roboten i korridoren? Katten min er svart. Jeg satte IR-sensorene til grå tapet, så roboten snudde seg foran katten nesten i siste øyeblikk, og katten hoppet et skritt tilbake med et høyt sus.

Den neste moddingen for roboten var IR-sensorer på magen, slik at roboten kunne følge en svart linje tegnet på hvitt papir med en markør. Implementeringen krevde tre sensorer og en komparator på LM339N-brikken for å avlaste mikrokontrolleren. En betydelig ulempe viste seg å være den nødvendige foreløpige justeringen av sensorene ved hjelp av trimmemotstander, avhengig av belysningen i rommet.

P.S. Belønningen for å kaste bort tid på å lage en meningsløs enhet, vil kanskje være klarheten i mikrokontrollerens operasjon og minne som vil samle støv på hyllen til noens barn kan være interessert i det.




Topp