MobBob :Robot Arduino DIY contrôlé par smartphone Android
Composants et fournitures
Applications et services en ligne
À propos de ce projet
J'ai réalisé ce robot selon les instructions du site Une excellente idée de symbiose entre Arduino et Android.
MobBob est un robot contrôlé par smartphone. En exploitant la puissance de votre smartphone, MobBob est un robot qui marche et qui parle avec reconnaissance vocale et vision par ordinateur.
Pièces imprimées en 3D :https://www.thingverse.com/thing:715688
Fichier Android.apk :https://apkpure.com/mobbob/com.cevinius.MobBob
Dans le code, vous voudrez :
- Mettez à jour les variables d'épingle pour qu'elles correspondent à votre build
- Ajustez le centre du servo, les valeurs min et max
- Réglez "FRONT_JOINT_HIPS" sur 1 ou -1 selon la façon dont vos servos de hanche sont montés. Je le monte avec le servo axe à l'avant de MobBob. Pour cette configuration, définissez cette valeur sur 1.
Code
codeArduino
/* * =============================================================* Programme de contrôle MobBob - Version du logiciel Bluetooth série * par Kevin Chan (alias Cevinius) * ==============================================================* * Ce programme permet à MobBob d'être contrôlé à l'aide de commandes série. Dans cette version du code, les commandes * sont reçues via un port série logiciel, avec des broches définies dans le #define près du haut. * Cela signifie que vous pouvez utiliser n'importe quelle carte compatible Arduino et brancher une carte Bluetooth dans les broches définies pour * la série logicielle. (Par opposition à l'autre version de celui-ci conçu pour la carte Bluno de DFRobot.) * * Ce programme est long et contient 2 composants principaux - un programme d'animation servo fluide et un programme d'analyseur de commandes * série. * * Système d'animation * ================* Le programme d'animation est conçu pour animer les tableaux d'images clés servo en douceur. Le code essaie de faire de son mieux pour être facile à utiliser. * * Le système d'animation ne mettra en file d'attente qu'une seule commande. c'est-à-dire qu'une commande peut être en cours d'exécution, * et une commande peut être mise en file d'attente. Si vous envoyez plus de commandes, elles écraseront la commande en file d'attente. * * Le système d'animation attendra par défaut la fin de l'animation en cours avant de commencer la suivante. Cela * signifie que si les données d'animation se terminent avec le robot dans sa pose de base, les choses se joindront en douceur. Pour * prendre en charge cela, le système d'animation dispose également d'une fonctionnalité où une animation peut avoir une "séquence de fin" * pour remettre le robot dans la pose de base. Cette fonctionnalité est utilisée pour les animations de marche avant/arrière. * Ces animations ont une séquence finale qui remet le robot dans la pose de base. * * Lorsqu'une animation est terminée, le système d'animation émet une chaîne de réponse sur le port série. * Cela permet aux appelants de savoir quand les animations qu'ils ont demandées sont terminées. C'est utile * pour les utilisateurs de séquencer des animations - en attendant la fin de l'une avant d'en commencer une autre. * * Le code d'animation a de nombreuses variables pour permettre aux choses d'être modifiées. Par exemple. Fréquence de mise à jour, broches arduino, etc. * * Le format de tableau de données d'animation est également conçu pour être facile à modifier à la main. * * Command Parser * ==============* Ce système analyse les commandes reçues via série et les traite. Les commandes incluent une * pour régler directement les positions des servos, ainsi que des commandes pour déclencher des animations et des promenades prédéfinies. * * Ainsi, les utilisateurs qui ne veulent pas se soucier des détails de la marche peuvent simplement utiliser les promenades/animations prédéfinies. * Et les utilisateurs qui souhaitent un contrôle total sur les servos (pour créer de nouvelles animations à la volée) peuvent également le faire. * * Comme mentionné ci-dessus, ces commandes peuvent être utilisées de manière interactive à partir du moniteur série Arduino. Ils peuvent également être * envoyés via Bluetooth LE (lorsqu'un Bluno est utilisé). L'application pour téléphone enverra les commandes via Bluetooth LE au * Bluno. * * Commandes générales :* ----------------- * Vérification Prêt/OK : * Vérification de l'état. La réponse est renvoyée immédiatement pour vérifier si le contrôleur fonctionne. * * Set Servo : * temps - temps d'interpolation aux angles spécifiés, 0 sautera immédiatement aux angles * leftHip - microsecs du centre. -ve est hip in, +ve est hip out * leftFoot - microsecs de plat. -ve est le pied vers le bas, +ve est le pied vers le haut * rightHip - à quelques microsecondes du centre. -ve est hip in, +ve est hip out * rightFoot - microsecs de plat. -ve est le pied vers le bas, +ve est le pied vers le haut * Cette commande est utilisée pour obtenir un contrôle total sur les servos. Vous pouvez interpoler le robot de sa * pose actuelle à la pose spécifiée sur la durée spécifiée. * * Stop/Reset : * Arrête le robot après l'animation en cours. Peut être utilisé pour arrêter les animations définies en boucle * indéfiniment. Cela peut également être utilisé pour mettre le robot dans sa pose de base (debout droit) * * Arrêt immédiat : * Arrête le robot immédiatement sans attendre la fin de l'animation en cours. Ce * interrompt l'animation en cours du robot. Potentiellement, le robot peut être à mi-animation * et dans une pose instable, alors soyez prudent lorsque vous l'utilisez. * * Commandes de marche standard :* ----------------------- * Avant :, -1 signifie continu, 0 ou aucun paramètre n'est le même que 1 fois. * En arrière :, -1 signifie continu, 0 ou aucun paramètre équivaut à 1 fois. * Tourner à gauche :, -1 signifie continu, 0 ou aucun paramètre équivaut à 1 fois. * Tourner à droite : Schémas