Seguidor de línea sin Arduino

Apenas pasa un día sin un proyecto Arduino, lo que estimula la habitual salva de comentarios. La mitad de los comentaristas se quejarán de que el proyecto no necesita un Arduino. La otra mitad insistirá en que el proyecto funcionará mejor con una computadora mucho más grande, desde una CPU ARM hasta una Cray.

[Will Moore] se interesó en la robótica BEAM: robots con hardware analógico en lugar de microcontroladores. Su último proyecto es un seguidor de línea complejo. Probablemente hayas visto líneas "bang-bang" que solo usan una fotocélula para girar el robot de una forma u otra. [Will’s] utiliza un controlador de hardware PID (derivado integral proporcional). Puedes ver un video del resultado a continuación.

Pareciéndose a [Will] Una simulación utilizada para inventar PID con opampamps y un generador PWM es ilustrativa. Como puede ver en el video, los resultados son buenos.

Miramos a BEAM antes. Incluso hemos visto mutantes que combinan circuitos BEAM tradicionales con microcontroladores. Pero sigue siendo agradable ver que la versión analógica limpia seguir sus pasos de vez en cuando.

  • RW dice:

    ¿Podría hacerlo con dos transistores? :-PAG

    Bueno, para la lógica de control, necesitaría controladores de salida.

    • Mangor dice:

      Hice esto con dos transistores BD137, pero a menudo afloja la pista con giros bruscos porque no tenía motores girando constantemente

  • Derek Tombrello (KM4JAG) dice:

    Dios ... extraño los viejos tiempos - "Construye a Emily - el robot con una mente unidireccional" - Popular Electronics - Marzo de 1962 - http://www.robotsandcomputers.com/robots/projects/Emily/Emily-PE0362. rar

    • RW dice:

      Maldita sea, una forma de demostrar que estoy equivocado, un transistor. Un robot que recordaba era de una época similar, usaba 2 en un flip-flop LDR sesgado por todos lados, motorizado por todos lados.

    • Dan # 942164212 dice:

      Buen hallazgo, gracias! Lo convertí a PDF para ti, https://document.li/1PSP/

      • Derek Tombrello (KM4JAG) dice:

        Oh ... en realidad lo tengo de ambas formas. Tenía la intención de escribir un PDF. ¡Creo que vi el archivo RAR y apareció en mis dedos! lol .. Gracias 🙂

    • Michael Black dice:

      Lo pensé cuando la pieza comenzó con el Arduino un poco innecesario. Cualquiera lo suficientemente mayor recordaría la época antes de los microprocesadores cuando Emily vagaba por la tierra.

      Creo recordar que Carl y Jerry tuvieron una aventura relacionada con "Emily" o una variante.

      Miguel

    • Dave Davidson dice:

      Wow, este artículo es increíble, imagina la controversia sobre la redacción si se usara hoy en día, todo el escuadrón feminista de cerdos voladores de pelo rosa y azul estaría en todas partes.

  • No se requiere Arduino dice:

    Este proyecto no necesitaba un Arduino.

  • Utilice una computadora más grande. dice:

    Este proyecto estaría mejor servido por una computadora mucho más grande. Yo entre ARM-CPU a Cray.

    • Erik Johnson dice:

      ¿Cuántos núcleos necesitaré para leer el valor del LDR? ¿Discos RAM para descifrar el valor ADC?

      • Elliot Williams dice:

        Por lo general, usamos un núcleo para un sensor de luz. De esa manera, no tendrá que preocuparse por leerlos uno tras otro. Simplemente encienda cuatro subprocesos asincrónicos, uno en cada proceso, y déjelos correr.

        Pero sí, como @lol sugiere a continuación, es mejor si puede descargar los cálculos matemáticos en la nube. Este proyecto podría _sólo_ funcionar con Raspberry Pi si lo overclockeó, pero probablemente sea mejor usar AWS o algo similar.

    • jajaja dice:

      necesitamos una fibra gigante en una plataforma posterior, con una línea alquilada para que podamos tomar prestado el tiempo de la máquina de los servidores de Google, lanzar simulaciones de todas las formas posibles, ya que se podría trazar una línea en una mesa y lanzar algoritmos de pronóstico para volver al robot; )

      • Dan dice:

        ¿Puedo usar la fibra para enviar la luz analógica y dejar que AWS maneje el ADC por mí?

  • ROBÓ dice:

    Bueno, eso fue un placer.

    Una mirada al circuito OP Amp y ahora finalmente tengo una comprensión completa de las matemáticas PID.

  • richfiles dice:

    Hombre, es genial ver un análogo todavía vivo y coleando. No hay nada de malo en hacer las cosas de manera diferente de vez en cuando.

    Este cachorro es un "Spyder", y tiene 4 patas, 8 motores, 0 CPU y 16 osciladores RC.
    http://www.dailymotion.com/video/x1d65em

    La disposición de los osciladores forma un anillo central de 4 núcleos que se repite, y luego cuatro ramas que se separan de cada uno de los osciladores de 4 núcleos. El paso de marcha está determinado por el tiempo y el orden en que los osciladores "disparan", con un plus que se extiende en el anillo central, y ventilan a medida que llega a cada rama.

    • Olivier dice:

      Muy genial 🙂

  • MichalKob dice:

    Creo que construir un controlador PID a partir de OpAmps pesa más que arrastrar bloques en MatLab todos los días. Ciertamente me habla mejor. Los efectos de las constantes modificaciones regulatorias son visibles en tiempo real. ¡Muy hermoso!

    • ROBÓ dice:

      Ese fue un momento de bombilla para mí. Aproximadamente sabía cómo funcionan las matemáticas PID al usar las bibliotecas PID de otras personas para microcontroladores y nunca comprenderlas y volver a usar las leyes de la física de todos modos porque dejé de intentar `` configurarlas '' para el propósito previsto.

      El circuito operativo explicaba todo lo que no entendía sobre las matemáticas PID.

      No le digas a nadie que el circuito del amplificador es en realidad una computadora matemática analógica y que podemos mantener nuestro secreto a salvo de los ingenieros jóvenes.

      • RW dice:

        ¡No solo matemáticas, cálculo! ... Cada vez que toco algo para un sistema pequeño o microcontrolador que necesita integración o diferencial, termino pensando en lo fácil que sería agregar un par de amplificadores funcionales ... solo realmente útil si aún puedes procesar tu señal como eso o elegir.

        • ROBÓ dice:

          Sí, bueno, la banda ancha es la diferencia. Un microcontrolador puede justificar 16 millones de veces por segundo, pero una computadora analógica (amplificadores operativos) puede justificar * siempre *.

          • RW dice:

            Bueno, probablemente dividido por un factor de al menos cien, terminará con métodos iterativos para hacer una suposición bastante precisa sobre una solución.

          • Dax dice:

            Prácticamente el reloj del microcontrolador destruye tu precisión.

            Hice un controlador de cinta para un sintetizador y tuve la brillante idea de medir la cinta como una constante RC, de modo que cuando la cinta de resistencia se acorta a tierra, provoca un cambio lineal en el tiempo necesario para descargarla. Hasta ahora todo bien, así que pensé que podría leerlo en ambos sentidos con el mismo esfuerzo colocando el R y C en paralelo y conectándolo entre dos pines IO, de izquierda a derecha, y emitir dos voltajes de control para dos osciladores o un arpegio. en un solo oscilador. Multitouch-moog-tape, básicamente

            Pero entonces, la otra señal de CV sería inversa, por lo que tendría que medir de alguna manera la "longitud" de la cinta en el software y restar uno de los retrasos medidos del valor total, menos compensar el ancho de su dedo, para obtener el dos CV para acordar dónde toca la cinta.

            Y eso resultó ser un problema, ya que el voltaje del reloj y el movimiento en el micrófono a 8 MHz en el oscilador interno significaba que la ejecución del código nunca estuvo completamente de acuerdo con la longitud de la cinta y los dos CV siguieron saltando. Si pone el dedo en el chip, los valores cambiarán.

            Así que hice exactamente lo mismo, pasando una corriente constante a través de ambos extremos de la cinta, a tierra por el medio donde el usuario la toca, y amplifiqué los voltajes en los extremos de la cinta con amperios operativos: uno de ellos era un inversor. amplificador con compensación de uso ajustable con un potenciómetro simple, y esa fue una solución de 75 centavos desarrollada y probada por la tarde. También tenía salidas para izquierda, derecha, promedio en el medio, y agregué 555 para hacer una función de "oscilación" que puede activar un sonido de arpegio fragmentado desconectando un capacitor, simplemente cambiando entre las señales CV izquierda y derecha.

            Si bien la solución del microcontrolador me llevó todo un fin de semana hasta el punto en que no funcionó del todo, tenía una resolución deficiente, un voltaje terrible y ninguna interfaz de usuario para cambiar las compensaciones o la calibración, ya que eso habría tomado un día completamente diferente para rehacer el código estrictamente cronometrado para incluir medidas adicionales.

          • danjovic dice:

            Sin embargo, es completamente factible con un microcontrolador, como con el robot de próxima línea del Sr. Chan, que usa un algoritmo PD, ¡escrito en forma compuesta!
            http://elm-chan.org/works/ltc/report.html

            El control analógico es excelente: los ingenieros y los técnicos deben prestarle más atención, ya que brinda soluciones más simples. Pero hacer una analogía con los sistemas no lineales no es una tarea fácil. Ahí es cuando entra en juego lo digital, porque proporciona una manera fácil de lidiar con las respuestas no lineales y también lidiar con las discontinuidades como un campeón. Sin mencionar la flexibilidad para cambiar los parámetros o incluso cambiar las leyes de control por completo sin la necesidad de volver a cablear.
            Pero nuevamente, cada problema tiene su mejor solución, que está literalmente dictada por las circunstancias del problema.

      • Congreso Nacional Africano dice:

        Este concepto de "computadora matemática analógica" sería un artículo interesante. No recuerde que aprendí algo así sobre los amplificadores operacionales; por supuesto, tampoco soy un EE.

        • ROBÓ dice:

          El PID significa Proporcional, Integrado, Derivado y estas son funciones matemáticas.

          Uno es solo una proporción determinada de la entrada.
          Uno es el área debajo de una línea si la entrada se transformó en un gráfico de líneas durante un período definido.
          Uno es la fuerza requerida para acelerar una masa dada hasta un punto especificado por la entrada.

          Por eso es tan universal.

  • Chris dice:

    BEAM es un sabor específico de la electrónica analógica. Este es un proyecto muy bueno, pero si tiene topologías de control formales como PID, no es BEAM.

    • richfiles dice:

      BEAM es una filosofía de proyecto, y aunque algunos circuitos específicos se consideran tradicionalmente tecnologías centrales de BEAM, no excluye otras tecnologías ... ni siquiera circuitos operativos, ordenadores analógicos e incluso microcontroladores (sin aliento) (como los que se utilizan en la denominada topología de "caballo y jinete"). Anteriormente he visto amplificadores operacionales utilizados en robots BEAM. Decir algo no está en línea con la filosofía del proyecto porque “tiene topologías de control formales como PID” es algo que hemos escuchado una y otra vez a lo largo de los años de jóvenes que llegan pensando que los únicos robots BEAM “oficiales” eran basado en motores solares, bicicletas y micronúcleos.

      He estado jugando con BEAM desde la década de 1990 y siempre he estado abierto a nuevas ideas. Mis pares de conceptos más recientes se han diversificado con micro núcleos con chips Xilinx CPLD para crear diseños de red temporalmente extraíbles. Los circuitos osciladores de relajación analógicos Nv y Nu aceptan señales del CPLD y de los sensores. Las salidas se pueden redirigir digitalmente dentro del CPLD (no olvide que la salida de estos circuitos es una señal digital). Esta diferenciación siempre ha sido un tema crucial en las primeras filosofías de proyectos BEAM / neurales / analógicos. Si explora el trabajo a fines de la década de 1980, a principios de la década de 1990, Misha Mahowald con sus chips de retina de silicio. Eran una investigación importante en esos días, pero necesitaba una forma de obtener una gran cantidad de datos analógicos de dos chips y en un tercer chip para crear su chip estereoscópico. Incluso entonces hubo un debate sobre qué constituía una tecnología "válida" ... En su caso, trató de recrear neuronas biológicas con su chip retiniano. La forma más sencilla de operar era enviar digitalmente una "dirección" para indicar que se está disparando una neurona en particular. El dispositivo receptor recrearía ese disparo de neurona con un pico neuronal apropiado generado en el objetivo previsto. En aquellos días, la gente discutía apasionadamente si tales sistemas de direcciones digitales son "aceptables" o incluso podrían incorporarse a un sistema neuronal inspirado biológicamente. Al igual que esa situación, la robótica BEAM a menudo ha sido testigo de tales debates semánticos. Diablos, incluso hemos tenido personas discutiendo el significado del nombre BEAM, a lo largo de los años.

      La verdad es que NINGUNA tecnología está explícitamente prohibida o incluso desalentada por BEAM. Ya es bastante difícil que cada robot Arduino se llame BEAM ... No grita exactamente las filosofías del proyecto BEAM, pero si recreó las filosofías del proyecto, codifique el programa para que se ajuste a la naturaleza particular del proyecto BEAM, yo diría que hay sin motivo de exclusión. Diablos, incluso el propio Mark Tilden usó una copia basada en microcontroladores de proyectos BEAM usando los juguetes BioBugs y RoboSapien.

      Ya sea un simple kit de robot BEAM fotovoltaico de Solarbotics, el circuito de amplificador operacional PID usado en esta línea después de un robot, la amplia variedad de amplificador operacional analógico y circuito BEAM tradicional usado en el increíblemente complejo Hider de Bruce Robinson (2 Monocores, 5 Bicores, Tricore, un par de neuronas Single Nv, una cadena de 7 neuronas, 11 neuronas Nu individuales, 2 generadores de voltaje basados ​​en amplificador operacional, 2 amplificadores basados ​​en amplificador operacional, 6 comparadores basados ​​en amplificador operacional y subcontratista de voltaje basado en amplificador operacional ), o Scoutwalker 3 con su microcore 4 Nv y placa de microcontrolador enchufable, o uno de mis circuitos que mapea las conexiones entre una gran cantidad de nodos Nv y Nu, sensores, etc. usando CPLDs ... Es perfectamente justo llámalo todo BEAM.

    • richfiles dice:

      Si. Olvidé mencionar mi robot OLD Quadrapod, que usaba un nodo "Hexcore" de 6 Nv en un modo de proceso único, alimentado por una máquina de estado de 15 chips que dirigía las señales hexagonales a los motores correctos a través de una placa de enrutador y un estado de paso lógico . Junta. Estas dos placas eran todas digitales, excepto el hexágono en sí, ubicado en un extremo de la placa del enrutador. El proyecto tenía el circuito tradicional de un chip y 14 chips con lógica puramente digital ... Eso seguía siendo 100% BEAM. Solo digo.

  • Stan dice:

    ¿Cray-1 podría hacer qué, 240 MFLOPS con encadenamiento de tuberías instructivo? ¿Estás seguro de que es suficiente con seguir una línea? Estoy seguro de que necesitaremos un FPGA Altera con al menos dos millones de unidades lógicas para que podamos cargar diez Cray-1 escritos en VHDL ... 2.5GFLOPS es mucho, ¿verdad?

    • ROBÓ dice:

      ¿¿Un Cray-1s ???

      Me gusta ver eso sobre ruedas.

  • NewCommentor1283 dice:

    pero esas demandas son REALES,
    ¿Ha mirado los requisitos del sistema de entornos de desarrollo integrados profesionales (es decir, pagos) recientes utilizados para freakn 2mb 50mhz micrones?

    mínimos:
    1 ram de un giga (para el instalador, se puede bajar después de la instalación)
    2 espacio de disco duro para dos conciertos (instalación de 1 vez, instalación de 1 extremo)
    3 excelente tarjeta de video (requisito para el logotipo de video después de iniciar el software)
    4 velocidad de Internet suficiente para que Timley descargue todo un concierto de monstruos
    5 paciente porque descarga "truncar", luego de nuevo en el descargador independiente
    6 actualizaciones de dotnet java flash directx, cualquier cosa que se use para fingir que este software es sagrado
    7 Estoy seguro de que me he perdido algo, siempre hay algo

    ni siquiera mencioné los puertos de comunicación

    • ROBÓ dice:

      Es fácil !!!

      Eche un vistazo a Xilinx ISE para FPGA: aproximadamente 8 gigabytes de descarga y aproximadamente 17 gigabytes para instalar.

      Luego, debe presentar sus genitales en bandeja de plata para obtener una clave de registro.

      • MichalKob dice:

        Debe haber un puntero torpe en algún lugar de la sede de Xilinx.

        • ROBÓ dice:

          "Ciertamente que hay", dijo con una voz muy fuerte y chillona.

      • richfiles dice:

        ^ ¡Oh, gracias por señalar lo absurdo del software ISE de Xilinx! Utilizo ese monstruo para mis chips CPLD (que emparejo con los circuitos BEAM). Creo que el EULA tiene más de 1000 páginas.

        • ROBÓ dice:

          Si alguna vez está considerando actualizar, investigue primero, ya que una versión más nueva admite mucho menos que los CPLD anteriores.

      • richfiles dice:

        Ah, y el glaseado de la tarta ... A los 3 días de iniciada la instalación, hasta obtener una clave funcional ...
        CTD cada vez que hago clic en "Abrir" o "Guardar" ... De verdad. Uuuuuuuuuhhhhh ... –______–

        Intenté simplemente arrastrar el antiguo P4 con Windows XP, solo para ver si la versión TIA todavía funciona ...> _>

        • ROBÓ dice:

          El ISE era más estable en XP, pero incluso entonces se necesitaron muchos pirateo para alimentarlo. Tengo un archivo por lotes en mi escritorio llamado Fix_Xilinx.bat y cada vez que el ISE crea un nuevo problema para resolver, agrego la solución al archivo por lotes.

          La otra cosa es fingir su espalda en la década de 1980 y ponerla en C: XILINX con solo 8.3 (cortos) archivos y nombres de archivo o su cordura terminará.

          No me importaría arrastrar el viejo P4. Utilizo un núcleo cuádruple para reducir el tiempo de "compilación".

          Incluso con un doble núcleo, compilar tiempo como, tomar café, ducharse, visitar a un amigo que no has visto en un tiempo, caminar por el parque, volver para comprobar el progreso, vacaciones ...

Maya Lorenzo
Maya Lorenzo

Deja una respuesta

Tu dirección de correo electrónico no será publicada.