Me pregunto cómo se programa una máquina en particular para realizar tareas particulares. Conozco los útiles paquetes de comandos disponibles disponibles en varios lenguajes de programación. Pero, ¿cómo se puede comunicar con el hardware de la máquina?

Un microcontrolador generalmente incluye una unidad central de procesamiento, memoria y periféricos.

Algunos de los periféricos pueden ser “pines de E / S” o “Entrada / salida de uso general (GPIO)”. Para la CPU, estos periféricos parecen ubicaciones de memoria, o en algunas arquitecturas, como direcciones en un espacio de direcciones de E / S dedicado. Cada bit del periférico GPIO establece el voltaje de un cable dedicado o “pin” que sale del microcontrolador, ya sea a cero voltios o a un nivel más alto (por ejemplo, 2.5 – 5 voltios), pero con muy poca “unidad” o corriente -Capacidad de abastecimiento.

Un fabricante de robots conectará un circuito de “controlador” a este pin. Se parece a esto:

A veces no hay una resistencia de 4.7K, a veces hay una resistencia en serie entre el pin del puerto del microcontrolador y la base (2) del transistor Q1: depende de cómo, exactamente, el circuito del pin del puerto del microcontrolador está construido dentro del microcontrolador.

En este circuito, cuando el bit de memoria es “1”, el transistor Q1 se enciende y conduce corriente a través de la bobina (1,2) del RELÉ y los pines de conexión (3,4) del RELÉ, que luego pueden activarse -motor de potencia, luz u otra carga. Cuando el bit de memoria es “0”, el transistor Q1 se apaga, no hay corriente a través de la bobina (1,2) del RELÉ, y los pines (3,4) del relé se desconectan, apagando la carga de alta potencia.

El diodo de conmutación 1N4148 básicamente evita que el transistor Q1 explote cuando el relé se apaga (el último bit de energía en la bobina RELAY fluye a través de él).

Puede encontrar variantes de este circuito que usan un “Opto-aislador” en lugar de Q1, o que usan un “Rectificador controlado por silicio (SCR)” en lugar del RELÉ, o que conectan otra lógica digital directamente al Pin del puerto del microcontrolador. Todos ellos trabajan en los mismos principios básicos.

Aunque una computadora es la agregación de componentes, memoria, CPU, almacenamiento, por ejemplo, podría ser más útil para la computadora no como algo con lo que se comunica para lograr un objetivo, sino para considerar un programa de computadora, almacenado en la memoria, ejecutado por la computadora como parte temporal de los circuitos de la máquina. Considere los contenidos de la memoria no como datos, sino como un conjunto de estados y el resto de la máquina como un motor cuyo comportamiento está determinado por esos estados. Entonces, si puede imaginar qué necesitaría hacer el motor para realizar una tarea en particular, simplemente escriba el conjunto de ‘estados de memoria’ necesarios para que haga el trabajo. Pero lo importante es que el programa no está separado de la computadora, se convierte en parte de la computadora mientras dura su ejecución.

Tengo poca conexión con la robótica ‘real’, pero he estado usando microprocesadores durante un tiempo y construyendo dispositivos pequeños, por lo que puedo responder desde esa perspectiva.

En pocas palabras, el hardwae tiene una tarea que realizar. Realiza esa tarea como resultado de una serie de instrucciones codificadas.

Esas instrucciones pueden almacenarse en la memoria y ejecutarse secuencialmente o pueden transmitirse, generalmente de forma inalámbrica, ‘sobre la marcha’ a través de un transmisor de algún tipo. Muy parecido a un modelo de avión. El microprocesador es la interfaz entre las instrucciones codificadas y la maquinaria. Para, ve, gira a la izquierda, etc.
Las máquinas son universalmente estúpidas. Solo hacen lo que se les dice. ¡Eso incluye computadoras!
Un poco como estar casado, de hecho!

Hay registros de hardware que lee o escribe para obtener datos o emitir comandos. O se asignan a direcciones que lees y escribes como si fuera memoria, o bien son puertos a los que emites instrucciones de “entrada” o “salida”. Por lo general, hay rutinas preparadas para manejar esta E / S de registro (entrada / salida). Llamaría a estas rutinas con parámetros que especifican lo que se debe hacer. La mayoría de las cosas llevan tiempo; la rutina vuelve cuando se completa la operación.