Stap 1: Maken van een Platform
Het platform dat ik gebruikt om te bouwen van deze robot was het Cherokey 4WD platform. De eerste stap was om de robot te gaan-dit is het makkelijke gedeelte.
Het grote ding over deze kit is dat het bevat alles wat die u nodig hebt om het bewegen te krijgen-het heeft een eigen set van motoren en motor drivers en een Romeo V2 microcontroller, dus alles wat u hoeft te doen is het toevoegen van extra modules te laten doen wat u wilt doen. Om het platform samen moet je soldeer wat draden aan elke motor en dan draad aan op de ingangen van de schroef op het bord van de motor stuurprogramma (M1, M2, M3 en M4). De microcontroller om aan te sluiten de kit, moet u verbinden D4, D5, D6, D7 pinnen op het Cherokey platform op pinnen 4, 5, 6, 7 op de microcontroller met jumper draden (of u kunt hen soldeer als u liever voor een permanente oplossing). U bent nu klaar om te programmeren van de microcontroller om het bewegen te krijgen! Er is een steekproefcode opgenomen op de DFRobot Wiki-pagina, die kan worden gevonden hier.
Er zijn vier basisfuncties gecontroleerd door belangrijke input in de seriële monitor in de voorbeeldcode. Druk op "w" om te gaan, drukt u op 'a' linksaf, druk op "d" om rechtsaf, druk op "x" om te stoppen en druk op "z" afdrukken "Hallo" in de seriële monitor. Dit is een goede test om te zien als het platform werkt als u het nodig hebt en alle de motor richtingen kloppen. Als je problemen met een motor van richting hebt, kunt u proberen te hoog of laag in de code wijzigen in de richting pinnen of voor een low-tech oplossing u eenvoudig kunt omkeren de polariteit van de bedrading in de motor bindende posten op het Cherokey platform.
De code die ik gebruikt is als volgt:
<p>int E1 = 5; //M1 Speed Control<br>int E2 = 6; //M2 Speed Control int M1 = 4; //M1 Direction Control int M2 = 7; //M1 Direction Control void stop(void) //Stop { digitalWrite(E1,0); digitalWrite(M1,LOW); digitalWrite(E2,0); digitalWrite(M2,LOW); } void advance(char a,char b) //Move forward { analogWrite (E1,a); //PWM Speed Control digitalWrite(M1,HIGH); analogWrite (E2,b); digitalWrite(M2,HIGH); } void back_off (char a,char b) //Move backward { analogWrite (E1,a); digitalWrite(M1,LOW); analogWrite (E2,b); digitalWrite(M2,LOW); } void turn_L (char a,char b) //Turn Left { analogWrite (E1,a); digitalWrite(M1,LOW); analogWrite (E2,b); digitalWrite(M2,HIGH); } void turn_R (char a,char b) //Turn Right { analogWrite (E1,a); digitalWrite(M1,HIGH); analogWrite (E2,b); digitalWrite(M2,LOW); } void setup(void) { int i; for(i=4;i<=7;i++) pinMode(i, OUTPUT); Serial.begin(19200); //Set Baud Rate Serial.println("Run keyboard control"); digitalWrite(E1,LOW); digitalWrite(E2,LOW); } void loop(void) { if(Serial.available()){ char val = Serial.read(); if(val != -1) { switch(val) { case 'w'://Move Forward advance (255,255); //move forward in max speed break; case 's'://Move Backward back_off (255,255); //move back in max speed break; case 'a'://Turn Left turn_L (100,100); break; case 'd'://Turn Right turn_R (100,100); break; case 'z': Serial.println("Hello"); break; case 'x': stop(); break; } } else stop(); } }</p>