Arduino Micro Quadcopter: 6 pasos

Arduino Micro Quadcopter: 6 pasos

Tabla de contenido:

Anonim

(Proyecto EN CURSO, actualmente necesita soldar el circuito)

Este es un proyecto micro Quadcopter impreso en 3D basado en Arduino para motores de CC de 8,5 mm de diámetro. Sin embargo, si tiene algo de experiencia (o solo tiene una hora de tiempo libre) puede adaptar el diseño para que se ajuste a motores de diferentes tamaños.

Estoy haciendo esto durante mi tiempo libre mientras estudio en la universidad, por lo que creo que debería llevar bastante tiempo terminar (¡los exámenes se acercan!).

Decidí controlar el Quadcopter a través de Bluetooth usando un teléfono / tableta Android. En el futuro podría rediseñar un poco para controlarlo usando Wifi o alguna comunicación por radio. También escribiré y publicaré una aplicación de Android para el control mediante bluetooth.

Así que vamos a empezar @!

PD El robot está dedicado para M.O.N.T.E. (Neutralización omnidireccional móvil y erradicador de terminación) robot asesino de La teoría del Big Bang: D

Suministros:

Paso 1: Marco y plástico

Quería que el marco fuera liviano y fuerte, así que decidí usar una impresora 3D. Esto también me ahorró un montón de tiempo. La impresora que usaré, la dejaré en la mano, ya que no soy dueño de una impresora 3D y utilizo la que está en la Universidad. El peso total del diseño fue de alrededor de 10 a 15 g (la Universidad no tenía escalas …) pero variará según la impresora y el plástico.

Para el diseño utilicé una herramienta de diseño web gratuita TinkerCAD, que es probablemente la mejor herramienta de diseño para principiantes o para proyectos más pequeños.

Agregué los archivos aquí para que pueda imprimirlos inmediatamente. Sin embargo, si desea ver el diseño desde todos los ángulos, visite Thingiverse. Del mismo modo, puede visitar TinkerCAD para modificar mi diseño anterior a su gusto (¿cambiar el nombre del Quadcopter?).

Para un solo quadcopter necesitas imprimir uno Quadcopter_bottom_3.stl y uno Quadcopter_top_2.stl. Intenté imprimir todo por mi cuenta y noté que la impresora que tenía no imprimía los tornillos muy bien (no podía colocar los tornillos en los orificios), por lo que ni siquiera sugiero imprimirlos también … Por supuesto, podría intentar hacerlo. que asi tambien agrego Quadcopter_screw_2.stl si tienes curiosidad … Rediseñé la parte inferior para que pudieras pegar en la parte superior y luego simplemente podrías usar algunos lazos de plástico para mantener todo unido.

Paso 2: El resto de las piezas + precio

Microcontrolador

Necesitamos una pequeña placa de chip / microcontrolador para este Micro Quadcopter. Una opción barata es usar Arduino Nano, que desde China cuesta ~ £ 1-2. Además, para reducir el peso, las alternativas podrían ser el Arduino Beetle o el chip Arduino USB, que es una copia china del Beetle original (más barato, funciona (probado) de la misma forma y los conectores son más fáciles de soldar). También puede seguir este tutorial para programar los chips completos de ATMEL ATmega328 / 168, que puede obtener de forma gratuita en el sitio web de ATMEL (si es un estudiante, visite Atmel -> muestras -> solicite una muestra) o ebay de lo contrario. En cuanto a la creación de prototipos, usaré Arduino Nano, ya que es más fácil de manejar. Creo que la siguiente etapa sería usar un chip Atmel de metal desnudo o buscar en Arduino Beetle BLE, ya que también puede encontrarlos a buen precio en algunos lugares, sin embargo, solo tienen una salida de 2xPWM, por lo que es posible que también deba usarse un selector de cambios. El peso de cada chip varía según el microcontrolador: Arduino Micro ~ 13g, Arduino Beetle ~ 5g, chip desnudo + cristal ~ 4-5g (?).

Motores

Yo mismo he usado motores un poco más caros de aquí. Se supone que son mucho más rápidos que los motores originales Hubsan X4. Planeo usar hardware a medida, por lo que necesito motores rápidos para levantar el peso. Si tuviera que comprar un nuevo juego de motores ahora, lo más probable es que los compre en la misma tienda, sin embargo los que dicen velocidad: demencia. También hay algunos tipos de estos, así que elige los que tengan las mejores críticas. La diferencia es bastante significativa con la velocidad: locos, ya que pueden alcanzar un máximo de 3.2 A en lugar de 2.75 A con la velocidad: rápido (de alguna manera aún se dice que el empuje es de 40 g / motor para ambos tipos de motor). Para aquellos que no pueden costear un motor costoso, siempre hay una alternativa desde ebay o incluso más barata desde China. Ellos, por supuesto, no vuelan tan rápido, al menos supongo que desde las curvas de rendimiento. No lo he intentado, pero la corriente máxima es de 1.85 A y el empuje es de 34 g / motor, que es menor que en los motores anteriores. (Peso total ~ 20 g)

Bluetooth

Para el proyecto utilicé el habitual módulo HC-06 Bluetooth. Solo funciona como esclavo, que es lo que necesitamos si queremos controlarlo con un teléfono inteligente. Como puede ver en la imagen agregada, doblé los conectores y luego los acorté. Podría considerar la opción de agregar un módulo Bluetooth 4.0 más adelante, que tiene conexiones opuestas, por lo que no tendrá que hacerlo. (Peso total ~ 5 g)

MPU

Para el proyecto utilicé MPU6050, que ya había comprado hace mucho tiempo. Tiene giroscopio de 3 ejes y un acelerómetro de 3 ejes solamente. En versiones posteriores podría usar un MPU más caro, que tendría un barómetro y un magnetómetro. (Peso total ~ 1.4 g)

Baterias

Para los motores y la electrónica necesitará dos baterías 1S 3.7V LiPo. Uno se usa para encender los motores y otro solo para la electrónica. Encontrar una batería para la electrónica es fácil. Simplemente elija la batería disponible más pequeña del mercado (por ejemplo, 1s 3.7V 100mAh (3g)). También puedes comprarlos a HobbyKing a un precio muy económico.

Conseguir una batería para los motores es más complicado. Hay algunos puntos importantes a tener en cuenta al comprarlos, capacidad (mAh), descarga máxima permitida (C) y tasa de descarga promedio (C). Cuanto mayor sea la capacidad, más tiempo funcionará el quadcopter con una sola carga y cuanto mayor sea la velocidad de descarga, mayor será la potencia que podrá proporcionar a los motores (corrientes mayores para tiempos constantes y máximos). A menudo hay una regla general de que la multiplicación de ambos, la velocidad de descarga y la capacidad, dará la corriente que las baterías pueden suministrar. Por ejemplo, usted tiene una batería con 500 mAh y 10 C de descarga promedio / constante. 500 mAh * 10 C = 5 A. Por lo tanto, en promedio, una batería de este tipo puede suministrar 5 A. Luego, agregue un margen de seguridad de alrededor del 20% y estará listo. Bueno, esto podría funcionar en algunos casos, sin embargo, tenemos motores extremadamente potentes, por lo que la tasa de descarga DEBE ser mucho más alta que eso. Anteriormente probé Turnigy nano-tech 650mAh 1S 15c (13g) sin ninguna suerte. Solo lograron alimentar completamente un solo motor y ni siquiera subieron 4 motores un poco, lo que significaba que la velocidad de descarga era simplemente demasiado pequeña (la capacidad seguramente era suficiente). Luego miré las baterías Turnigy nano-tech 1s 260mAh 35-70C (14g). Se las arreglaron para encender los 4 motores, sin embargo, en el momento en que los compré cuestan la mitad del precio que ves aquí. Sugiero que busques en HobbyKing baterías similares o alternativas, p. Ej. Turnigy nano-tech 300mah 1S 45 ~ 90C (9g) o incluso Turnigy Graphene 600mAh 1S 65C (15g) que parecen ser muy prometedores. Si tiene unos pocos $ / £ extra, compre baterías Graphene, ya que son más livianas que las baterías alternativas con la misma capacidad y ofrecen tasas de descarga mucho más altas (al menos en el papel). No los probé yo mismo, pero sería realmente interesante ver cómo se comparan en la realidad, ya que creo que la tasa de descarga de 35C que se proporciona actualmente también es un poco pequeña.

Vamos a calcular cuánto durarán las baterías. Digamos que, aparte de los motores, el resto de la electrónica utiliza alrededor de 100 mA de corriente constantemente. Corriente total = 2.75 * 4 + 0.1 = 11.1 A = 11.1 * 1000 = 11100 mAh. Las baterías que compré tienen una capacidad de 260 mAh, por lo tanto, el tiempo (min) = 260 * 60/11100 = 1.4 min. No parece mucho, ¿verdad? Probé cuando conecté el quadcopter con los hilos al suelo y parece que los números son razonables, realmente no pude sostener el quadcopter en el aire ni siquiera 2min. Bueno, para tasas de vuelo más largas, tendrá que agregar baterías más grandes, usar motores Hubsan X4 más baratos o, de alguna manera, reducir el peso de todo. (Peso total ~ 16 g)

Conectores de motor

Los motores generalmente usan conectores tipo mini JST, por lo que necesitaría obtener algunos (4 unidades) de Farnell o ebay para poder conectar los motores a todo el circuito. Asegúrate de comprar los conectores como los de la imagen. Hay muy similares (por ejemplo, micro JST), sin embargo, son diferentes.

Conectores de bateria

Muchas de las baterías de eBay y HobbyKing utilizan conectores micro JST. El cargador que utilicé (dado en secciones posteriores) tiene un conector JST ligeramente diferente (lo sé, un poco confuso ya que todos tienen el mismo nombre), así que decidí pedir algunos de estos a eBay y soldarlos en cada batería.. Esto también permitió más tarde conectar bien la batería a la PCB.

Hélices

Muchos de ustedes pueden querer usar hélices Hubsan X4 y pueden hacerlo si lo desean, sin embargo usaré los accesorios de Walkera LadyBird. Son un poco caros si los compra en el Reino Unido (alrededor de 5 veces más en comparación con los accesorios originales de Hubsan X4), sin embargo es realmente barato en China. Si todavía no tienes accesorios, entonces recomendaría usarlos. Si estoy en lo cierto, leí en alguna parte que proporcionan más empuje, lo que le da a nuestra pequeña bestia más velocidad (Bueno, después de todo, Walkera LadyBird es la más conocida. ¡el mejor micro quadcopter actualizado! Me pregunto quién probó eso, pero solo confiemos en ellos por ahora …) (Unos pocos gramos en total ~ 3-5 g)

Transistores

Necesitamos 4x transistores MOSFET y elegir uno puede ser complicado. En primer lugar, deben soportar la potencia y la corriente utilizadas por los motores y, en segundo lugar, el voltaje de umbral debe ser bastante bajo, de lo contrario, Arduino no podrá encenderlos por completo (en el caso de MOSFET de tipo N). En mi caso, la corriente máxima es de 2.75 A con un voltaje de 3.7 V. Esto significa que necesito un MOSFET, que al menos resistirá alrededor de 4 - 5 A por si acaso (también se calentará menos). Pedí algo a Farnell (Transistor MOSFET, Canal N, 6 A, 20 V), pero tienes la libertad de buscar alternativas como el Transistor MOSFET, Canal N, 8 A, 20 V (en realidad son idénticos a los anteriores, pero tiene patas adicionales para ser soldadas al suelo para trabajar como un disipador de calor. Esto no es necesario ya que las anteriores no se calentaron en absoluto). Ambos tenían voltajes de umbral de 600 mV, lo cual es bueno. Si tiene que buscar alternativas, intente no usar más de 1 V, pero también si desea usar la PCB provista, asegúrese de que el tamaño sea el mismo, y los transistores dados aquí ya tienen un diodo de rueda libre en el interior. ahorrará algo de espacio en el PCB. (Peso total <1g).

Resistencias

Para el proyecto necesitaba un resistor de 6x10 kOhm y 2x56 kOhm (que se decidirá, pero esto no es necesario hasta el final), que puede encontrar en cualquier tienda de electrónica. (Peso total <1g)

Condensadores

Se utilizará un solo condensador electrolítico para suavizar el voltaje de la batería utilizada para los motores de tamaño 47uF, 50V. Se puede comprar en cualquier tienda de electrónica. (Peso total <1g)

Cargador

Es posible que ya tenga buenos cargadores, sin embargo, en caso de que no, siempre puede obtener algo como esto. Utiliza conectores de tipo JST, por lo que tendrá que obtener los conectores mencionados anteriormente. Alternativamente, podría obtener un módulo de cargador basado en chip como este. Esto podría ser útil en proyectos posteriores, ya que el chip puede formar parte del circuito en ese caso.

Precio

Probablemente a muchos de ustedes les gustaría saber el precio de la cosa. Bueno, simplemente calculemos que utilizando algunos cálculos aproximados, ya que el precio dependerá del proveedor:

Motores caros:

£ 2 (Arduino) + £ 3 (MPU6050) + £ 20 (Motores) + £ 3 (Batería del motor) + £ 2 (Batería electrónica) + £ 2 (Hélices) + £ 2 (MOSFETs) + £ 5 (HC-06)) + £ 2 (El resto de electrónica + plástico) + £ 1 (Conectores) + £ 3 (Cargador) = £45 (Añadiendo solo los componentes usados, cuando se compran en múltiplos)

£45 - £15 = £30

El precio general no es tan grande y si tiene los conectores y el cargador, ¡se reducirá significativamente! Usando una implementación muy rápida del motor, logré ajustarme al rango de precio de £ 50 si todas las piezas tenían que comprarse.

Paso 3: Cálculos de peso

Motores caros:

Para que nuestro quadcopter vuele bien, hay una regla general de que el 50% del empuje máximo de los motores debe ser igual al peso del propio quadcopter. Por lo tanto, significa que el quadcopter estará en la altura constante cuando dé el 50% de su potencia total. Los motores que compré tienen 40g / motor de empuje. En total que suma hasta 160g. 50% de eso es 80g. Ahora vamos a sumar todos los componentes electrónicos + el marco:

15g (cuadro) + 20g (motores) + 23g (batería) + 5g (módulo bluetooth) + 5g (microcontrolador) + 1.4g (MPU) + 2g (transistores) + 1g (diodos) + 1g (resistencias) = ​​73.4g, Que es más o menos lo que necesitamos! Por supuesto, habrá un poco de peso adicional de los cables, etc., pero son pequeños y, como máximo, aumentarán el peso hasta 75 g, lo que es aún un 6% más liviano de lo que podríamos pagar.

Motores baratos

El empuje total de los motores es 4 * 34g / motor = 136g. 50% de eso es 68g. La electrónica total será más o menos igual, solo que la batería será 10 g más liviana, lo que da como resultado un total de 65 g en todo, ¡que aún es más ligero que el 50% del empuje! En realidad, no volará tan bien como con los motores más rápidos, pero bueno, ¡estás usando motores al menos 4 veces más baratos!

Conclusión:

¡El quadcopter debería volar! Con motores más caros, volará mejor / más rápido, pero aún así ambos quadcopter deberían volar.

Paso 4: Diagrama del circuito

Dejé el circuito anterior usando Arduino Beetle pero también agregué conexiones Arduino nano. La mayoría de las cosas deberían ser iguales simplemente usando Beetle, encontré varios problemas. En primer lugar, no hay suficiente de pines dedicados. Entonces, por ejemplo, algunos pines PWM se están utilizando como I2C, por lo tanto, es difícil decidir cuál de las conexiones se debe arreglar con un código y cuáles con los pines provistos. Además, solo tenía la opción de hacer una PCB de un solo lado, por lo que era difícil hacer conexiones para la placa Beetle. Terminé usando Arduino nano.

Arduino nano tiene una solución de dos baterías y Beetle no. Esto es muy importante ya que Bluetooth no funcionará con una sola batería. Además, si se usa la placa Beetle, usando dos baterías, se debe agregar otro capacitor> 10uF entre los pines positivos y negativos.

En la parte inferior del circuito nano de Arduino, agregué las conexiones alternativas para el transistor que se estaba utilizando para la PCB en lugar de para las conexiones.

Paso 5: PCB

Es mucho más fácil soldar todos los componentes en una PCB ya preparada (placa de circuito impreso). Lamentablemente, no siempre es posible tener acceso a una máquina para hacer una. Tuvimos uno en la universidad, así que diseñé un PCB usando Objetivo 3001! Software. Para abrir el archivo *.T3001, deberá descargar el software Target 3001, que lamentablemente solo es compatible con Windows. Podría exportar el proyecto a Eagle más tarde. Agregar Target3001,.xps,.tif y.src (exportar a Eagle) para aquellos que tienen la intención de hacer una PCB en casa.

El resultado impreso y soldado se ve como en la imagen proporcionada. Agregué círculos rojos que muestran los transistores soldados, círculos amarillos que muestran los conectores JST para los motores, círculos verdes que marcan los conectores de la batería, suministrando energía SOLAMENTE al motor, y círculos azules que marcan los conectores de la batería, suministrando energía al resto de los componentes electrónicos (Arduino, MPU6050, etc.). Como puede ver, hay algunos arreglos hechos junto a ambos conectores de alimentación. No es necesario hacerlo ya que la PCB se actualizó después de realizar el primer modelo de trabajo. Básicamente, el problema era que al principio la PCB solo tenía una fuente de alimentación única. Durante las pruebas, pareció que el módulo Bluetooth seguía desconectándose constantemente del teléfono a medida que el voltaje de la batería descendía a niveles bajos (<3V). No solo eso, sino que Arduino también tuvo problemas con eso, que se solucionaron al disminuir el voltaje de apagón. Puede hacerlo con facilidad, ya que solo se requiere la modificación de un solo archivo en el IDE de Arduino, sin embargo, es más complicado ya que cuanto más alta es la frecuencia, más voltaje se necesita. Al final, algo más podría romperse en el futuro o podría perder toda la energía disponible, etc. De todos modos, la implementación del sistema de dos baterías funcionó muy bien, especialmente que la batería, que alimenta los componentes electrónicos, solo pesa alrededor de 3 g.

Al soldar los conectores del motor, asegúrese de que estén soldados de la manera correcta. En cada lado, uno de los conectores está orientado hacia un lado y otro hacia otro. Puede verificar cuál es positivo, que es negativo o conectar los motores antes de soldar y soldar según la imagen (el color del cable rojo / blanco es positivo y los terminales negro / azul son negativos)

En el otro lado del PCB, agregué un cuadrado verde que muestra los conectores no obligatorios 1x02. Pensé que sería bueno poder conectar algo al quadcopter en el futuro, por lo que hice accesibles los pines analógicos y PWM disponibles. También marcé el conector positivo en ambas baterías.

Paso 6: Código

Escribí una biblioteca y un programa de ejemplo usando mbed para un quadcopter que puedes encontrar aquí. Mbed es mucho más rápido que Arduino y tiene más memoria, por lo que podría usarse para un quadcopter más grande. Aquí adapté todo a Arduino, y usé las bibliotecas disponibles.

Voltaje de la batería de lectura

Como punto de referencia, Arduino usa la tensión de la fuente de alimentación, por lo tanto, si conectamos dos resistencias en serie entre la potencia y la tierra y leemos la tensión en el medio, siempre será constante. Aquí utilizamos un sistema de dos baterías, por lo que hay dos enfoques para leer el voltaje en la batería del motor.

1) Siempre podemos mantener la batería, alimentando la electrónica cargada. Esto significa que siempre nos aseguramos de que el voltaje en él sea de alrededor de 4.2V. Este enfoque requeriría cargar las dos baterías todo el tiempo. Además, ¿qué pasaría si también quisiéramos monitorear la batería electrónica?

2) Utilice la referencia de voltaje de intervalo. Esto es igual a 1.1V en Atmega328, sin embargo, debemos asegurarnos de que todo lo que esté conectado a A0 no supere los 1.1V. Por lo tanto, agregué la resistencia X kOhm en serie con la resistencia Y kOhm para crear un circuito divisor de potencial. El código para leer y suavizar el voltaje de la batería es:

# definir ALFA 0.1 # definir MULTIPLICADOR 6.67 flotador motorBatería; void setup () {pinMode (A0, INPUT); referencia analógica (interna); // Establezca la fuente de referencia interna de 1.1V // float tmp = analogRead (A0) / 1023.0 * MULTIPLICADOR; // hacer unidades Voltage motorBattery = 5.0; } void loop () {motorBattery = smoothBattery (motorBattery, analogRead (A0) / 1023.0 * MULTIPLICADOR, ALPHA); } float smoothBattery (float prevEntry, float newEntry, float alpha) {return (1-alpha) * prevEntry + alpha * newEntry; }

MPU6050

La biblioteca MPU6050 está disponible por Jeff Rowberg 2012. El código de ejemplo proporcionado MPU6050_DMP6 se ​​usa como el código principal para el proyecto.

Si decide usar mi marco y motores, lo más probable es que ya no necesite modificar el código, ya que el controlador PID ya estaba configurado para un rendimiento más o menos bueno. Sin embargo, si utiliza un marco diferente, deberá establecer nuevos valores para el controlador PID. Lleva bastante tiempo si lo haces por primera vez.

Motores estabilizadores

En los sistemas de control, un controlador PID es una forma muy popular de estabilizar el sistema. Aquí querremos estabilizar el tono y el rollo de MPU6050. Usé la biblioteca PID_v1 para este propósito. En el código que figura a continuación, configuraré los motores y el controlador PID. Luego agregaré una función para estabilizar los motores dependiendo de la velocidad requerida.

#define FL_MOTOR 3 #define FR_MOTOR 9 #define BR_MOTOR 10 #define BL_MOTOR 11 // -------------------------------- -PID ------------------------------------ // Definir variables que se conectarán a double rollSetpoint, rollInput, rollOutput; doble pitchSetpoint, pitchInput, pitchOutput; // Definir los parámetros de ajuste agresivos y conservadores

doble consKp = 1, consKi = 0.05, consKd = 0.25; PID pitchPID (& rollInput, & rollOutput, & rollSetpoint, consKp, consKi, consKd, DIRECT); PID rollPID (& pitchInput, & pitchOutput, & pitchSetpoint, consKp, consKi, consKd, DIRECT); configuración de vacío () {// ------------------------------ PID ------------ ---------------------- pitchInput = 0.0; rollInput = 0.0; pitchSetpoint = 0.0; rollSetpoint = 0.0; // gira el PID en pitchPID.SetMode (AUTOMATIC); rollPID.SetMode (AUTOMÁTICO); pitchPID.SetOutputLimits (-20, 20); rollPID.SetOutputLimits (-20, 20); // ------------------------------------------------ ------------------- para (int i = 0; i <4; i ++) {targetSpeed ​​i = 0; } pinMode (FL_MOTOR, SALIDA); pinMode (FR_MOTOR, SALIDA); pinMode (BR_MOTOR, SALIDA); pinMode (BL_MOTOR, SALIDA); void loop () {pitchPID.Compute (); rollPID.Compute (); int actSpeed ​​4; estabilizar (targetSpeed, actSpeed, rollOutput, pitchOutput); // targetSpeed ​​= actSpeed; // debería estar aquí o no} void estabilize (int * currSpeed, int * actSpeed, float rollDiff, float pitchDiff) {// real Speed ​​se calcula de la siguiente manera + - half rollDiff + - half pitchDiff actSpeed ​​0 = (int) currSpeed ​​0 + (rollDiff / 2) - (pitchDiff / 2); actSpeed ​​1 = (int) currSpeed ​​1 + (rollDiff / 2) + (pitchDiff / 2); actSpeed ​​2 = (int) currSpeed ​​2 - (rollDiff / 2) + (pitchDiff / 2); actSpeed ​​3 = (int) currSpeed ​​3 - (rollDiff / 2) - (pitchDiff / 2); para (int i = 0; i <4; i ++) {if (actSpeed ​​i <0) actSpeed ​​i = 0; }} void runIndividual (int * actSpeed) {analogWrite (FL_MOTOR, actSpeed ​​0); analogWrite (FR_MOTOR, actSpeed ​​1); analogWrite (BR_MOTOR, actSpeed ​​2); analogWrite (BL_MOTOR, actSpeed ​​3); }

Módulo bluetooth

La comunicación desde el quadcopter al teléfono se realizará a través del módulo Bluetooth HC-06. Lo bueno de esto es que no hay necesidad de piratear nada ya que el módulo usa comunicación serial RS232 para hablar con Arduino, por lo tanto, lo usarás de la misma manera que lo harías con la biblioteca Serial de Arduino. Para este propósito necesitarás la librería Arduino SoftwareSerial. En el código que figura a continuación, enviaré la velocidad que se debe configurar para todos los motores.

SoftwareSerial mySerial (7, 8); // RX, TX void setup () {mySerial.begin (9600); } void loop () {if (mySerial.available ()) {myReading = mySerial.parseInt (); para (int i = 0; i <4; i ++) {targetSpeed ​​i = myReading; } // descargando todo lo que no se leyó mientras (mySerial.available ()) mySerial.read (); }}

Añadiendo bits juntos

En cuanto al código completo, siempre estoy trabajando en él, así que decidí no agregarlo aquí. Puedes encontrar la última versión del código en GitHub. Notificaré en este Instructable cuando el código esté terminado. En este momento necesito configurar las constantes PID correctas …