Ik heb deze robot gemaakt volgens de instructies op de website. Een geweldig idee voor symbiose tussen Arduino en Android.
MobBob is een smartphone-gestuurde robot. Door de kracht van je smartphone te benutten, is MobBob een lopende, pratende robot met spraakherkenning en computervisie.
- Stel "FRONT_JOINT_HIPS" in op 1 of -1, afhankelijk van de manier waarop uw heupservo's zijn gemonteerd. Ik monteer hem met de servo-as aan de voorkant van MobBob. Stel voor deze configuratie deze waarde in op 1.
Code
codeArduino
/* * =============================================================* MobBob-besturingsprogramma - Software Seriële Bluetooth-versie * door Kevin Chan (ook bekend als Cevinius) * =============================================================* * Dit programma stelt MobBob in staat om te worden bestuurd met behulp van seriële opdrachten. In deze versie van de code worden de *-opdrachten ontvangen via een seriële softwarepoort, met pinnen gedefinieerd in de #define bovenaan. * Dit betekent dat u elk Arduino-compatibel bord kunt gebruiken en een Bluetooth-kaart kunt aansluiten op de pinnen die zijn ingesteld voor * softwareserieel. (In tegenstelling tot de andere versie hiervan die is ontworpen voor het Bluno-bord van DFRobot.) * * Dit programma is lang en bevat 2 hoofdcomponenten - een soepel servo-animatieprogramma en een serieel * commando-parserprogramma. * * Animatiesysteem * ================* Het animatieprogramma is ontworpen om servo keyframe-arrays soepel te animeren. De code probeert zijn * best te doen om gemakkelijk te gebruiken te zijn. * * Het animatiesysteem zal slechts 1 commando in de wachtrij plaatsen. d.w.z. één opdracht kan worden uitgevoerd, * en één opdracht kan in de wachtrij worden geplaatst. Als u meer opdrachten verzendt, zullen ze de opdracht in de wachtrij overschrijven. * * Het animatiesysteem wacht standaard tot de huidige animatie is voltooid voordat de volgende wordt gestart. Dit * betekent dat als de animatiegegevens eindigen met de robot in zijn basishouding, alles soepel zal aansluiten. Om * dit te ondersteunen, heeft het animatiesysteem ook een functie waarbij een animatie een "afwerkingssequentie" * kan hebben om de robot terug in de basishouding te brengen. Deze functie wordt gebruikt voor de voorwaartse/achterwaartse animaties. * Die animaties hebben een laatste reeks die de robot terug in de basishouding brengt. * * Wanneer een animatie klaar is met afspelen, stuurt het animatiesysteem een antwoordreeks naar de seriële poort. * Hierdoor weten de bellers wanneer de gevraagde animaties zijn afgespeeld. Dit is handig * voor gebruikers om animaties in volgorde te zetten - wachten tot de ene klaar is voordat ze aan de andere beginnen. * * De animatiecode heeft veel variabelen om dingen aan te passen. bijv. Updatefrequentie, arduino-pinnen, enz. * * Het animatiegegevensarrayformaat is ook ontworpen om gemakkelijk met de hand te kunnen worden bewerkt. * * Command Parser * ==============* Dit systeem ontleedt de seriële commando's en verwerkt ze. De commando's omvatten een voor het direct * instellen van servoposities, evenals commando's voor het activeren van vooraf gedefinieerde animaties en wandelingen. * * Gebruikers die zich geen zorgen willen maken over de details van het lopen, kunnen dus gewoon de vooraf gedefinieerde wandelingen/animaties gebruiken. * En gebruikers die volledige controle over de servo's willen (om on-the-fly nieuwe animaties te maken) kunnen dat ook doen. * * Zoals hierboven vermeld, kunnen deze commando's interactief worden gebruikt vanaf de Arduino Serial Monitor. Ze kunnen ook * worden verzonden via Bluetooth LE (bij gebruik van een Bluno). De telefoon-app stuurt de opdrachten via Bluetooth LE naar de * Bluno. * * Algemene opdrachten:* ----------------- * Gereed/OK-controle: * Statuscontrole. Het antwoord wordt onmiddellijk teruggestuurd om te controleren of de controller werkt. * * Servo instellen: * tijd - tijd om te tween naar gespecificeerde hoeken, 0 springt onmiddellijk naar hoeken * leftHip - microsecs vanaf het midden. -ve is heup in, +ve is heup uit * leftFoot - microsecs van plat. -ve is voet naar beneden, +ve is voet omhoog * rechterheup - microsecs vanaf het midden. -ve is heup in, +ve is heup uit * rightFoot - microsecs van plat. -ve is voet omlaag, +ve is voet omhoog * Dit commando wordt gebruikt om volledige controle over de servo's te krijgen. U kunt de robot gedurende de opgegeven duur van zijn * huidige pose naar de opgegeven pose tween. * * Stop/Reset: * Stopt de robot na de huidige animatie. Kan worden gebruikt om animaties die op loop * zijn ingesteld, voor onbepaalde tijd te stoppen. Dit kan ook worden gebruikt om de robot in zijn basishouding te zetten (recht staand) * * Onmiddellijk stoppen: * Stopt de robot onmiddellijk zonder te wachten om de huidige animatie te voltooien. Dit * onderbreekt de huidige animatie van de robot. Mogelijk is de robot midden in een animatie * en in een onstabiele houding, dus wees voorzichtig bij het gebruik hiervan. * * Standaard Walk-commando's:* ----------------------- * Vooruit:, -1 betekent continu, 0 of geen parameter is hetzelfde als 1 keer. * Achteruit:, -1 betekent continu, 0 of geen parameter is hetzelfde als 1 keer. * Draai naar links:, -1 betekent continu, 0 of geen parameter is hetzelfde als 1 keer. * Draai naar rechts:
Schema's