Make: it Robotics starterskit - begrip Bitwise Math (2 / 3 stap)

Stap 2: Ontleden ReadOptical() methode


Zoals ik al zei er zijn een paar typefouten in het commentaar van de code in linefollow.ino.Every loop de programma-aanroepen de volgende function:sensor_in=line_following.read_optical();

De commentaren voor deze read_optical()-methode leest het volgende:

Rendement

0 × 000 optical1 zwart

0x0ff optical1 wit

0 × 100 optical1 wit

0x1ff optical1 zwart

0x2XX niet klaar; geen gebruik maken van deze waarde

Eigenlijk moet de volgende

Rendement

0 × 000 optical1 zwart

0xFF optical1 wit

0 × 100 optical2 wit

0x1ff optical2 zwart

0x2XX niet klaar; geen gebruik maken van deze waarde (ofwel sensor kan deze waarde retourneren)

Eigenlijk moeten 0x0ff 0xff

Verwijs naar blogpost Software deel 3

U zult zien in de paragrafen hieronder het belang van deze typefouten. (heeft te maken met het lezen van elke andere sensor) Op de regel na robot zijn er twee optische sensoren, telkens als de loop-functie de linefollow.ino schets oproepen een methode om te zien voert als een van de sensoren ziet licht of donker.

Op een micro-controller, zoals de Arduino, is één seconde een zeer lange tijd. De loop-functie kunt uitvoeren veel duizend keer per seconde. Hoe lang elke lus duurt, hangt af van hoeveel programmaopdrachten plaatsvinden. Sommige instructies duurt langer dan andere instructies uitvoeren.

Instructie (wat functies en methoden zijn samengesteld uit) uitvoeringstijd wordt gemeten in cycli van CPU-klok. De Arduino standaard werkt bij 16 MHz of 16 miljoen klok cycli een seconde. De schets van de linefollow.ino voert sommige vrij eenvoudige logica.

Na het opzetten van sommige variabelen, roept de loop een functie om te zien of een sensor licht is of donker, afhankelijk van het antwoord wat fancy logica wordt uitgevoerd om het antwoord op een waarde van 0, 1, 2 of 3. Deze waarden worden vervolgens gebruikt om te vertellen van de motoren te ofwel gaan naar voren, links of rechts.

Elke 15 milliseconden de lus-programma wordt verteld om te schakelen en te lezen van de andere sensor. Dus vertel hebt u een programma dat lussen lezen van de eerste sensor, converteert het antwoord op 0, 1, 2 of 3, de motoren wat te doen, de andere sensor Lees, converteer vervolgens het antwoord op 0, 1, 2 of 3 en dan de motoren vertellen wat te doen. In veel gevallen, afhankelijk van de waarden van de variabelen Actie1 en Actie2, worden de instructies voor het controleren van de motoren overgeslagen. Verwijzen naar een latere blogpost.

Deze operaties zijn weer gedaan op duizenden keren per seconde. De rest van deze blog en later blogs gaan om je te leren wat er gebeurt met de fancy logica die leest de sensor en converteert het antwoord op 0, 1, 2 of 3. Het volgende codesegment is de fancy code die de sensor lezingen worden omgezet in een waarde-of0, 1, 2 of 3. Deze code omvat sommige programma-instructies die nogal verwarrend voor newmicro-controller programmeurs kunnen.

Raadpleeg een andere blog post dat ik schreef "Tutorial – beetje bonzen en Booleaanse Math zonder the Math" deze tutorial gaat hand in hand met het begrip van het volgende codesegment:

Als ((sensor_in & 0xf00) == 0)

sensorValue1 = sensor_in & 0xff;

anders als ((sensor_in & 0xf00) >> 8 == 1)

sensorValue2 = sensor_in & 0xff;

Als (sensorValue1 == 0x00) Actie1 = Actie1 & 0xfe;

Als (sensorValue1 == 0xFF) Actie1 = Actie1 | 0x01;

Als (sensorValue2 == 0x00) Actie1 = Actie1 | 0x02;

Als (sensorValue2 == 0xFF) Actie1 = Actie1 & 0xfd;

Dit segment van code maakt gebruik van drie speciale operators (instructies die op bepaalde waarden werken) de code gebruikt de volgende binaire operatoren: & operator, bitsgewijze AND, | Bitsgewijze OR operatorand de >> Bitwise recht Shift exploitant.

(Lees de handleiding)

http://joepitz.WordPress.com/

Gerelateerde Artikelen

Make: it Robotics starterskit-Driver board vertrouwd

Make: it Robotics starterskit-Driver board vertrouwd

In deze blogpost zullen we een kijkje op de kaart die bij de zorg: it Robotics Starter Kit wordt geleverd. Er is geen documentatie die wordt geleverd met de Start kit betreffende het bestuur van de bestuurder dan het schema.Tenzij u al enige ervaring
Make: it Robotics starterskit - Sensor Data draadloos verzenden

Make: it Robotics starterskit - Sensor Data draadloos verzenden

In dit Instructable we willen nemen wat we geleerd hebben in "Make: it Robotics Starter Kit – draadloze connectiviteit" en "Make: it Robotics Starter Kit – vastleggen van Sensor Data" en combineert deze gegevens vastleggen van de senso
Make: it Robotics starterskit-draadloze connectiviteit

Make: it Robotics starterskit-draadloze connectiviteit

In dit blog bericht wij gaan nemen van de informatie die we geleerd hebben in de eerdere blogpost getiteld "Make: it Robotics starterskit-Software deel 2″ Real-time sensorgegevens vastleggen en verzenden van deze gegevens draadloos naar onze computer
Make: it Robotics starterskit - analyseren van de LineFollowing.ino deel 1

Make: it Robotics starterskit - analyseren van de LineFollowing.ino deel 1

In onze laatste blogpost we bepaalde sensorgegevens uit de drie verschillende posities die onze robot tegenkomen kunt wanneer na de zwarte lijn, (links sensor zwart, links sensor/sensor wit, juiste sensor zwart) gevangen.In deze blogpost wij gaan nem
Make: it Robotics starterskit - analyseren van de LineFollowing.ino deel 2

Make: it Robotics starterskit - analyseren van de LineFollowing.ino deel 2

In de laatste Instructable begonnen we analyseren de bitsgewijze bewerkingen in de schets van de lineFollow.ino. We keken hoe de sensor lezingen worden geïnterpreteerd zodat de robot vooruit gaan.In deze tutorial zullen we blijven onze analyse bij he
Make: it Robotics Starter Kit

Make: it Robotics Starter Kit

Ik heb fijn wat vrije tijd om te beginnen werken aan C/C++ ingesloten systemen en robots. Dus in het surfen rond op Radio Shack struikelde ik over de zorg: it Robotics Starter Kit. Blijkbaar een gezamenlijke samenwerking tussen Radio Shack en de mens
Make: it Robotics Starter Kit vastleggen van Sensor Data

Make: it Robotics Starter Kit vastleggen van Sensor Data

Laatste Instructable bespraken we een beetje over wat er in het linefollow.ino-programma doet. Ik heb gepresenteerd een Python-script dat ons toelaten zal om het analyseren van de bit-gewijze if verklaringen om te zien hoe de waarde die de methode re
Arduino tutorial Arduino Tutorial bundel.: Arduino experimenten Kit:. (ARDX)

Arduino tutorial Arduino Tutorial bundel.: Arduino experimenten Kit:. (ARDX)

Geïnteresseerd in maken nette projecten met een Arduino maar niet weet waar te beginnen?Hier is een gemakkelijk te volgen gids op hoe te connect & gebruiken een schare van elektronische componenten.(schaamteloze plug)Geïnteresseerd in het doen het al
Basic Line Na Robot met Arduino

Basic Line Na Robot met Arduino

09/07/2015Een paar jaar geleden dat we aanvankelijk gepost deze elementaire regel volgende Robot met Arduino tutorial, en lijkt zo veel mensen vonden het nuttig dat we een update die loopt van de huidige Arduino Bibliotheken, moet post bevat de nieuw
De volgende Robot lijn met Basic PD (evenredige-derivaat) controle

De volgende Robot lijn met Basic PD (evenredige-derivaat) controle

Dit Instructable demonstreer PD (Proporational-derivaat) besturingselement gebruiken in een eenvoudige lijn volgeling. In het voorbeeld gebruikt de volgeling van de lijn in de Basic Line volgeling Instructable ontwikkeld:De volgende onderdelen worden
Laser gegevensoverdracht, part2-Binary overbrengen.

Laser gegevensoverdracht, part2-Binary overbrengen.

Ik heb een eenvoudige manier om gegevens te verzenden via laser aangetoond in part1. het afhangen van oorspronkelijk tijd, zodat als we 1 het laserlicht voor 200ms verzenden en 3 het laserlicht voor 400ms en de ontvanger meten van de tijd van de pols
Hoe maak je een Minecraft KIT PVP minigame

Hoe maak je een Minecraft KIT PVP minigame

Hey Instructables en Welkom bij mijn tweede instructable! Ik zal u tonen hoe te maken van Kit pvp!Aanbevolen maken in creatieve en overschakelen naar overleving bij het afspelen vanHebt u nodig:opdracht blokkenDroppersDruk platenEen fatsoenlijke Kit
How To Make Cheap Chassis voor Robotica voertuig en projecten

How To Make Cheap Chassis voor Robotica voertuig en projecten

er zijn vele Chassis beschikbaar in het lokale en Online markt en natuurlijk velen van hen zijn geweldig en goed ontworpen. Maar velen van hen zijn ook kostbaar. Maar ik heb een beter idee dat zeker wat geld bespaart en het zal ook een nieuw leven ge
How to Make de Knock-Lock voor Arduino starterskit

How to Make de Knock-Lock voor Arduino starterskit

In dit instructable ik zal tonen u een video over hoe ik een knock-slot met behulp van de arduino uno starterskit gemaakt. Ik heb lopen in een paar problemen langs de weg, maar een oplossing bedacht na het denken. Dit is het eerste arduino project he