Stap 49:
Programmering
Voer deze code in de editor, en druk op F5 terwijl de robot is verbonden:
belangrijkste:
ReadADC 0, b0
debug
goto belangrijkste
Neem uw hand voor de robot´s hoofd nu en hoe de variabele b0 waarde verandert. U kunt de kennis opgedaan om te beslissen wat er moet gebeuren wanneer (hoe sluiten dingen moeten krijgen voordat..)
Ziet u hoe de dingen beginnen te gaan "verkeerde" als spullen is te dicht bij de "ogen"; De Sharp is gemaakt met spullen die is vanaf 10-80 CM weg te werken. Dingen die zich dichter lijkt verder weg, dat kan een hele uitdaging naar programma.
Kunt u vele andere afstand sensoren die dit probleem niet hebben. Echter de Sharp is de goedkoopste, en easiset naar programma, dus dat is waarom ik heb zo'n een "slechte" keuze gemaakt voor u, sorry ;) Kijk rond en zie wat iedereen gebruikt, voordat u besluit voor een upgrade.
Nu adviseren ik u om te zetten uw robot op een luciferdoosje of gelijkaardig, zoals de wielen zal beginnen draaien.
Voer deze code in de editor, en druk op F5 terwijl de robot is verbonden:
hoge 4
lage 5
Een van de wielen moet in een bepaalde richting wenden. Draait je wielen naar voren? Zo ja, is dit de instructie voor dat wiel om te schakelen naar voren.
Als het wiel achteruit draait, kun je dit proberen:
lage 4
hoge 5
Schakel het andere wiel, moet u invoeren
hoge 6
laag 7
(of de andere manier rond voor de tegenovergestelde richting.)
Wat hier gebeurt dat met behulp van alleen de beschikbare opties voor de microcontroller; Power in- of uitschakelen (hoog / laag) op het heeft pinnen, is het commandant van de motorcontroller motor A of B in forward of reverse-modus instellen.
lage 4
lage 5
laag 6
laag 7
stopt alle motoren
De servo die u al hebt geprobeerd.
Helemaal aan de ene kant is:
Servo 0, 75 wachten 2
de andere zijde is:
Servo 0, 225 wachten 2
- en center:
Servo 0, 150 wachten 2
Hier is een klein programma dat zal (moeten, als alles goed is en u de juiste parameters voor hoog/laag aan de bedrading naar de motors) maken de robot rondrijden, halte voor dingen kijken naar iedere kant om te beslissen welke de beste is, zet op die manier en rijd richting nieuwe avonturen. In de code heb ik zogenaamde opmerkingen gemaakt: dingen geschreven aan u uitleggen wat er gaande is.
U kunt schrijven dergelijke reacties of opmerkingen dat zelf in de code, is het een goed idee om te blijven volgen.
Ze zijn geschreven met een ' teken. Echter deze tekst kopiëren vanaf hier kan veranderen naar iets anders, en u zult moeten bevestigen dat handmatig, sorry. Uw programmering editor heeft kleurcodes, die zullen helpen u tonen wat het herkent als opmerkingen en wat als code.
Symbool dangerlevel = 70' hoe ver zijn moet, voordat we reageren?
symbool beurt = 300' Hiermee wordt ingesteld hoeveel moet worden omgezet
symbool servo_turn = 700' Dit stelt voor hoe lang we op de servo wachten moeten te schakelen (afhankelijk van de snelheid van de it´s) voordat we de afstand meten
belangrijkste: ' de hoofdlus
ReadADC 1, b1 ' hoeveel afstand vooruit lezen
Als b1 < dangerlevel dan
GOSUB nodanger ' als niets vooruit, vooruit rijden
anders
GOSUB whichway ' als obstakel vooruit dan beslissen welke kant is beter
eind als
goto belangrijkste ' dit eindigt de lus, de rest zijn alleen subroutines
nodanger:' Dit moet uw combinatie te maken van de robot rijden vooruit, dit u waarschijnlijk wilt aanpassen aan de manier waarop u uw robots motoren hebben bedraad
hoge 5: hoge 6: lage 4: lage 7
terugkeer
whichway:
GOSUB totalhalt ' eerste stop!
' Unidirectioneel kijken:
GOSUB lturn ' kijken naar één kant
servo_turn onderbreken ' wachten voor de servo af draaien
ReadADC 1, b1
GOSUB totalhalt
' De andere kant opkijken:
GOSUB rturn ' kijken naar een andere kant
servo_turn onderbreken ' wachten voor de servo af draaien
ReadADC 1, b2
GOSUB totalhalt
' Beslissen welke is de betere manier:
Als b1
GOSUB body_lturn
anders
GOSUB body_rturn
eind als
terugkeer
body_lturn:
hoge 6: laag 5: laag 7: hoge 4' Dit moet uw combinatie die de robot unidirectioneel verandert
pauze beurt: gosub totalhalt
terugkeer
body_rturn:
hoge 5: lage 6: lage 4: hoge 7' Dit moet uw combinatie die de robot de andere kant verandert
pauze beurt: gosub totalhalt
terugkeer
rturn:
Servo 0, 100' kijken naar één kant
terugkeer
lturn:
Servo 0, 200' kijken naar de andere kant
terugkeer
totalhalt:
laag 4: laag 5: lage 6: lage 7' laag op alle 4 de robot stopt!
Servo 0,150' gezicht naar voren
1' bevriezen allemaal gedurende één seconde wachten
terugkeer
Met enkele slimme programmering en tweaken, u kunt de robot drive it´s hoofd draaien, beslissingen, kleine aanpassingen, draai naar "interessante gaten" zoals deuropeningen, alle werken op hetzelfde moment, tijdens het rijden. Het ziet er vrij koel als u de rotatie van de robot terwijl het hoofd draait ;)
Leuke tijd
U kunt ook een lamp of LED hechten aan pin 2 & grond en schrijven (onthoud LED´s nodig om de juiste manier omdraaien)
Hoog 2
inschakelen van de lamp, en
Laag 2
voor zwenking op vandoor ;)