DIY Johansson - bara en autonom Robot (10 / 14 steg)
Steg 10: Integrera skisser - del 1 (Atmega 1)
Detta steg är specifikt för Atmega 1 som kommer att kontrollera Stepper Motor endast varje skissen du gick igenom, alla av dem är tillämpas och uppdelad i 3 microcontrollers, för att göra vissa specifika uppgifter. Följ 1. diagrammet. Dess viktigaste diagrammet av alla.
Funktion millis(); gör alla magi. Gå till hjälp > referens > millis(), att veta mer om den.
Obs:- Stegen kan visa sig vara stökigt, bara vara lugn, och om du har följt alla steg, kodning inte kommer att Visa vara komplicerat.
Mål 1:- Att hålla reda på den verkliga tidsåtgången för genom att rotera en gång
Saker som behövs:-
- 1 x Arduino UNO eller vad med Atmega och en USB ansluten till datorn
- Vissa grundläggande matematik krävs som enhetlig metod och avstånd = hastighet / tid.. mycket enkel
Obs:- för denna särskilda uppgift mikrokontroller endast ger effekt så dess inte krävs att ansluta den till ULN 2003 eller Stepper Motor och den input som krävs från Atmega 2 att inleda sig initieras direkt på skissen heter ATMEGA_1_test .txt.
Förfarande:-
- Öppna skissen i IDE analysera den mycket fint. dess mycket enkel, det finns många oönskade funktion och linjer kommenteras ut som kan verka lite förvirrande men tro mig när jag säger att den slutliga skiss som ska laddas till ATMEGA 1 kommer att ha alla oönskade linjer
- Ladda upp skissen
- Snabbt öppna seriell bildskärmen och uncheck AutoScroll och kontrollera att överföringshastigheten är 4800 i ner - höger.
- Drar sedan ut USB.
- Nära den Serial monitorn. [Men Stäng inte Arduino IDE]
- Plug USB igen
- Vänta några sekunder för IDE att upptäcka COM-porten igen
- Tryck sedan på Skift + Ctrl + M.
- Visas efter en tid ett flertal värden visas en efter en.
- Behöver vi bara den första behandlingen. Det är tid som Atmega vidtagit för att rotera stepper från 0 - 4096 (ett varv), behandlingen bör vara 5150, dvs 5150 milli näst att rotera en gång
Vad vi kan se från skissen:-
- max hastighet = 1000 steg per sekund
- Max acceleration = 1000 steg per sekund
- hastighet = 1000 steg per sekund.
- flyttar till (avstånd) = 0 - 4096 steg [1 rotation]
Frågor:-
- tid = avstånd/hastighet = 4096 / 1000 = 4.096 SEK för en rotation... men från seriella monitor vi fick 5.150 SEK hur?
Svar:-
Det finns många rader av kod som behöver exekvera inte bara funktionen run() i skissen while loopar om uttalanden variabler tilldela och många fler saker, så den extra tid som krävs för att köra...
Hastigheten ändras:-
Inledningsvis hastighet var satt till 1000 steg / SEK i skissen, men enligt seriell övervaka data tid för en rotation i 5.150 SEK men avståndet täckas är det samma dvs från 0-4096 steg
Därför
tid = 5.150 SEK; steg för att vara täckt (avstånd) = 4096 steg
Hastighet = sträcka / tid = 795.34 steg / SEK
Se, från 1000 steg / SEK det kom ner till 795.34 steg / SEK
Genomförande:-
Föreställ dig vad skulle ha hänt om du skulle ha använt 4.096 SEK istället för 5.150 synkronisera närhet sensorer för att skicka data till ATMEGA 2... skulle det vara en blunder roboten skulle agera som en galen person.
Mål 2:- Att ladda upp den riktiga skissen till Atmega 1.
Saker som behövs:-
- Precis samma krav.
Förfarande:-
- Ladda upp koden, efter att ändra eller ändra pin-konfiguration vid behov och Läs kommentarerna, jag har arbetat mycket för att enklare kommentarer som långt möjligt
- måste förstå ni programmet först, det är viktigare än att köra det framgångsrikt
- Koppla ur USB
- Extrahera den Atmega 1 ut, på baksidan av de Atmega skriver upp ATMEGA -1
- Fixa Atmega 1 till din önskat läge.
- Kontrollera alla anslutningar en gång...
Slutsats:- Förstått hur viktigt är det att beräkna programmets körning. Tiden 5.150 SEK per rotation kommer att vara en stor betydelse för nästa steg
Gå vidare till nästa steg för att program Atmega 3 för trådlös dataöverföring... jag hoppas att ni alla njöt...