Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
BrazoRobot 1
Uso de brazo robótico para selección y almacenamiento de cajas de colores por medio de mbed¶
Integrantes: Morales Mateo, Moreno Bryan, Pérez Camilo, Rojas Elkin¶
Sistemas Embebidos - Corte 1¶
Universidad ECCI¶
INTRODUCCIÓN¶
En el siguiente documento se describe el ensamblaje y programación inicial del brazo que se utilizará para la clasificación y almacenamiento de las cajas de colores. Dicho robot se moverá por medio de servomotores y a partir del programa generado se podrá controlar por medio de tele-comandos las posiciones del robot en cada una de las celdas y ademas cada uno de los motores individualmente.¶
ENSAMBLE¶
El diseño y ensamble del brazo robótico se realizo a partir de uno ya propuesto en diferentes paginas, el PocketSized RobotArm Versión 4. Los planos fueron modificados para utilizar servo motores más robustos, referencia MG 995. Todo el instructivo correspondiente a ensamble, planos de corte y materiales se encuentran en el enlace a continuación:¶
https://www.instructables.com/id/Pocket-Sized-Robot-Arm-meArm-V04/¶

PROGRAMACIÓN¶
Para programar el robot se utilizó una tarjeta nucleo STM-L433RC-P y los comandos correspondientes para el funcionamiento del robot son ingresados a través del programa CoolTerm.¶
El codigo de programacion se realizó asignando puertos PWM a cada uno de los servomotores, variables de entrada con las cuales se inicializa el programa y la comunicación serial. Se crean funciones en las cuales estan guardados los parametros a ejecutar por el programa el principal dependiendo del valor de entrada.¶
A continuación los aspectos mas importantes a tener en cuenta en el programa:¶
Lectura de datos
void leer_datos(){
while(command.getc()!= INITCMD); // Inicio de programa
TC=command.getc(); // Tipo de movimiento a ejecutar
PA=command.getc(); // Posición de los actuadores para cada movimiento
Programa principal
int main() {
setup_uart();
setup_servo();
//command.printf("inicio de programa");
while(1){
leer_datos();
switch(TC){
case 0x01:
mover_brazo(PA);
break;
case 0x02:
mover_pinza(PA);
break;
default: // Movimientos independientes de actuadores
if(TC<=06)
mover_servo(TC-2, PA);
break;
}
Los valores de entrada de los telecomandos estan definidos en lenguaje hexadecimal y estos son ingresados a traves de CoolTerm asi:¶
