SSC-32, ¿puedo y cómo puedo programarlo?

Un amigo me regaló hace poco esta placa que nunca había usado y no sabía nada al respecto. Tenía un cable USB a serie conectado con el software del controlador que instalé y tenía un servomotor incluido. Pregunta 1: ¿es este un microcontrolador (sé que tiene algo que ver con los servomotores, pero es programable?)? Pregunta 2: si esto es programable, ¿cómo puedo programarlo (qué idioma, qué herramientas) y, de ser así, puedo DESCONECTARLO de la computadora y seguir ejecutándolo (memoria flash o algo así)? Y por último, ¿tiene esto entradas ( digital, analógico) para que pueda realizar acciones en función de las entradas? Veo algunos pines en el medio que no parecen ser para servos.

Respuestas (3)

El SSC-32 es un controlador de servomotor dedicado con un microcontrolador integrado, el ATmega168 .

Respuesta 1: Tiene un microcontrolador y, por lo tanto, es una placa de microcontrolador.

El microcontrolador en esto se puede reprogramar: se puede acceder a los pines ICSP en la placa, aunque no en un encabezado ICSP conveniente. Sin embargo, viene preprogramado con interfaz serial y lógica de control de servo, cambiar la programación eliminará el propósito de esta placa.

Respuesta 2: Puede programarlo en C usando AVR-GCC, o cualquier otra herramienta de programación compatible con los microcontroladores Atmel ATmega. También necesitará un dispositivo programador, uno que admita ICSP.

Sí, la placa puede funcionar cuando se desconecta de la computadora, siempre que se le proporcione una fuente de alimentación adecuada. El microcontrolador contiene internamente memoria Flash, así como almacenamiento RAM y EEPROM. Consulte la hoja de datos vinculada anteriormente para obtener más detalles.

Por último: el microcontrolador tiene pines de entrada/salida analógicos y digitales, pero es posible que no todos se dividan convenientemente en pines en la placa. Entonces, sí, si sacrifica la función de servocontrolador de la placa, puede usarla para realizar acciones basadas en entradas.

Esos pines que observa en el medio son, de hecho, pines de entrada utilizados por la programación predeterminada para activar funciones relacionadas con el servo.

¿Pero puedo programarlo con su interfaz serial?
La interfaz serial es para enviar comandos como se define en el manual del servocontrolador, no para programar.
Es posible que pueda flashear un cargador de arranque Arduino y usarlo como tal, el ATmega168 ciertamente está a la altura. Lo más probable es que necesite un programador de alto voltaje, pero eso suena más complicado de lo que realmente es.
@jippie Si OP tiene el programador y la cadena de herramientas para la programación HV, o para la instalación del cargador de arranque ICSP, entonces ya tienen la capacidad de programar el dispositivo, por lo que la consulta ya está resuelta adecuadamente en esa etapa.

Descargo de responsabilidad: Este es un complemento desvergonzado para un amigo/ex empleador.

Como señala Anindo, no puede reprogramar el SSC-32 sin borrar su funcionalidad normal del servocontrolador. Si lo programa con el encabezado ISCP, es solo una placa ATMega168 con encabezados divididos para conexiones de servo, pero ha eliminado el código de control del servo. Sin embargo, el Servotor32 está diseñado para hacer exactamente eso. El microcontrolador integrado es un ATMega32U4 que ejecuta el cargador de arranque Arduino Leonardo.

Utiliza un montón de tiempo de CPU (y el bus SPI) para la parte de control del servo, pero la mayor parte de las E/S de repuesto están rotas y puede escribir código en el IDE normal de Arduino que funciona junto con la biblioteca de control del servo.

Tanto el SSC-32 como el Servotor32 funcionan principalmente aceptando comandos a través de un UART serie (USB también para el Servotor32 en lugar del gran conector DB-9 antiguo). El UART Servotor32 se desglosa en el encabezado de E/S y se puede usar con un módulo Bluetooth externo (se vende por separado).

La placa es un servocontrolador basado en Atmel ATMEGA168. Las herramientas y los documentos relevantes están disponibles aquí .

El tablero en sí tiene documentación.

No veo ningún ADC ni nada más. Mire el manual sobre si es alimentado por USB o si puede ser alimentado de otra manera (debería serlo).

¿Pero aún puedo programarlo solo con su interfaz serial?