Stap 16: programmeren
belangrijkste:
ReadADC 0, b0
debug goto main
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 en 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 om te werken met objecten 10-80 cm afstand. Dingen die zich dichter dan 10 cm (4 inch) lijken te zijn van verdere manier, 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 makkelijkst te programma, dus dat is waarom ik zo'n "slechte" keuze gemaakt voor u, sorry ;) Kijk rond en zie wat iedereen anders gebruikt, voordat u op een upgrade besluit. 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 (High / Low) op de 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
wacht 2
-de andere kant is:
Servo 0, 225
wacht 2
- en centrum:
Servo 0, 150
wacht 2
Hier is een klein programma dat zal (moeten, als alles goed is, en als u de juiste parameters voor hoog/laag aan de bedrading naar de motors hebt ingevoegd) 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 die ik heb gemaakt, zogenaamde opmerkingen: u uit te leggen 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 apostrof (of enkel aanhalingsteken) 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 kleurencodes, 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 gedraaid 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 0, b1' lezen hoeveel afstand vooruit als b1 < dangerlevel dan gosub nodanger 'als er niets vooruit, rijden naar voren anders gosub whichway' als obstakel vooruit dan welke kant is beter einde beslissen als belangrijkste goto ' 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 hebt bekabeld uw robots motoren hoge 5: hoge 6: lage 4: lage 7 terugkeer
whichway: gosub totalhalt ' eerste stop!
' Kijk unidirectioneel: gosub lturn 'look aan de ene kant onderbreken servo_turn' wachten voor de servo moeten worden afgewerkt readadc 0, b1 gosub totalhalt draaien
' De andere kant opkijken: gosub rturn 'kijken naar een andere kant onderbreken servo_turn' wachten voor de servo moeten worden afgewerkt readadc 0, b2 gosub totalhalt draaien
' Beslissen welke is de betere manier: als b1
body_lturn: hoge 6: laag 5: laag 7: hoge 4' Dit moet uw combinatie dat de robot een weg onderbreken bochten draaien: gosub totalhalt terugkeer
body_rturn: hoge 5: lage 6: lage 4: hoge 7' Dit moet uw combinatie die verandert de robot die de andere manier pauze zet: gosub totalhalt terugkeer
rturn: servo 0, 100' kijken naar één kant terug
lturn: servo 0, 200' kijken naar de andere kant terug
totalhalt: lage 4: laag 5: lage 6: lage 7' laag op alle 4 de robot stopt! Servo 0,150' gezicht toekomen wacht 1' bevriezen alle gedurende één seconde retourneren
Met enkele slimme programmering en tweaken, u kunt de robot drive draai zijn hoofd, 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 LEDs nodig om de juiste manier omdraaien)
Hoog 2
inschakelen van de lamp, en
Laag 2
voor zwenking op vandoor ;) - hoe zit een Laser-pen, gemonteerd op een extra servo? Dan kon je de robot, schakelt de laser rond en het in- en uitschakelen, wijzen plaatsen... u kunt om het even wat nu doen :) Druk op "Help" in de programmering redactie brengt allerlei interessante tutorials en info!
Misschien probeer dit: Trek de servo, en nemen de gele chip. Plaats de Darlington die u eerder haalde. Haak de luidspreker op de 2 pinnen hierboven waar de servo was, tat is uitgang 1. En gooi in de LED, of wat het ook was dat u gevonden op uitgang 2. Vervolgens het programma iets als dit:
geluid 1 (100, 30) hoge 2 wacht 1 laag 2 geluid 1 (105, 60)
Die maken een geluid en iets inschakelen, maak een nieuw geluid en weer uitschakelen.
Of de meer interessant, zorg ervoor dat de scherpe is nog steeds in een spreker tot pin 1 haak en vervolgens dit programma:
ruis: readadc 0, b0 geluid 1, (b0, 2) goto lawaai.
Please vote voor mij.
(naam-Arische
Age-13)
SUCCES