Stap 3: Code
In het hoofdbestand van de arduino schets, worden elk van de vijf flex sensoren toegewezen aan analoge ingangen van 0 tot en met 4, terwijl de bijbehorende servo's zijn toegewezen aan de analoge pinnen op de digitale kant 5,6,9,10, en 11 respectievelijk. Zoals u zien kunt, verklaart het hoofdbestand objecten duim, index, midden, ring en pinky gebaseerd op de klasse vinger. In de setup-functie initialiseert elk object de servo initialiseren functie van vinger terwijl in de looping functie elk object voortdurend de positie van elke servo volgens de flex sensorgegevens bijgewerkt.
Het headerbestand van klasse vinger bevat alle verklaringen die zijn gekoppeld aan de klasse. De flexSensorPin en servoPin pinnen en servo cijfers zijn gedefinieerd, samen met de variabele flexSensorReading waarin de toewijzing van de ruwe weerstand lezingen van de flex-sensoren. De variabele flex bevat de toewijzing van flexSensorReading die zijn toegewezen aan een meer gestroomlijnde paramater. De functies attachServoPin en updateFinger zijn ook verklaard. De constructor is aanwezig zonder een parameter gewoon om de verklaring van objecten.
Het klassebestand voor klasse vinger bevat alle functiedefinities voor elke vinger-object. In eerste instantie wordt de constructor geïnitialiseerd. Na dat, is de attachServoPin-functie die een servoPin hecht aan een bijbehorende servo en initialiseert dat servo. De volgende functie is updateFinger die gebaseerd is op de parameter flexSensorPin. Om te begrijpen wat de functie doet, moet u eerst begrijpen wat er gaande is in het controlesysteem. Elke flex-sensor heeft een weerstand lezen gevoed in de arduino. Zonder code, de flex sensor doesn feed niets behalve in lezingen. Wat de arduino is gecodeerd om te doen is lezen de weerstand elk flex sensor output wanneer gebogen of unbent en deze waarden worden toegewezen aan de servo's.
Houd in gedachten dat elke sensor een 22 kilo-ohm weerstand om te voeden in beheersbaar en glad input voor de arduino, dat is heeft waarom de schets parameters zeer zijn ten opzichte van wat weerstand aanwezig in elk circuit is. Dus de updateFinger functioneren kaarten deze flex weerstand van de sensor lezingen aan een variabele flex, afhankelijk van het pin-nummer. Dit is omdat elke vinger-object een eigen weerstand variëren van heeft gebogen unbent wegens de unieke aard van de structuur van de vingers op een hand. Dit is waar als voorwaardelijke verklaringen in komen. De variabele flex wijst deze varieert van de weerstand van de willekeurige waarden 0 tot en met 100. Dit, meer gestroomlijnd wordt lezen, vervolgens ingevoerd in de toewijzing van de servo-lijn, die te op het einde, zien is om het verplaatsen van de servo's van 0 graden tot 180 graden wanneer de sensor is unbent en gebogen.