Está en la página 1de 8

Universidad Mayor de San Andrés

NOMBRE : CASTILLO AGUILAR MELANIE DANIELA


PROYECTO: CONEXIÓN PYTHON Y ARDUINO
CARRERA: INGENIERIA MECATRÓNICA
FECHA DE ENTREGA: 02 DE OCTUBRE DEL 2020
LA PAZ- BOLIVIA
2020

Laboratorio Electrónica Industrial Página 1


Universidad Mayor de San Andrés

PYTHON Y ARDUINO

1. Objetivos

1.1.Objetivo General

Realizar el enlace entre Python y Arduino para la recepción y envió de datos

1.2.Objetivos específicos

 Realizar la descarga y la instalación del programa Python

 Programar en el IDE de Arduino para obtener datos de un sensor de distancia y mandar

datos para mover dos motores

 Realizar el programa usando Visual Code, instalar las librerías necesarias, para realizar

el enlace

2. Materiales

Modulo l298d Motor CC Sensor Ultrasónico

Arduino

Laboratorio Electrónica Industrial Página 2


Universidad Mayor de San Andrés

3. Marco Teorico

Python es un lenguaje de scripting independiente de plataforma y orientado a objetos,

preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a

servidores de red o incluso, páginas web. Es un lenguaje interpretado, lo que significa que

no se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como

la rapidez de desarrollo e inconvenientes como una menor velocidad.

Python es un lenguaje de programación orientado a objetos, interpretado, indentado,

multitipado, y de fácil entendimiento. Al ser un lenguaje orientado a objetos, nos brinda la

oportunidad de generar un código bastante cercano a cómo se describirían las cosas en la

vida real. Esto se hace a través de un modelo conocido como clase, y dentro de esta clase se

define lo que se conoce como atributos y métodos que al crear un objeto definirán la

característica única de ese mismo objeto.

PySerial es una librería de python que permite comunicarse a través de comunicaciones

por serial. Esto es útil para mandar o recibir datos de periféricos que sean comunes o que

uno mismo haya hecho de una manera sencilla.

4. Procedimiento

Se realizó la descarga y la instalación del programa y las librerías necesarias para realizar el

enlace de Python con Arduino, desues se procedio con la programación en Arduino y

posteriormente con Python usando el diseñador Visual Code

SCKETCH ARDUINO

int trigger=8;
int echo=9;
int tiempo; //variables para guardar el tiempo
int distancia;
int vel =250;
//motor A
int ena = 2;
int in1 = 3;
int in2 = 4;
//motor B
int enb = 7;

Laboratorio Electrónica Industrial Página 3


Universidad Mayor de San Andrés

int in3 = 6;
int in4 = 5;
//funciones creadas
void adelante();
void atras();
void derecha();
void izquierda();
void parar();
void setup() {
Serial.begin(9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(13,OUTPUT);
//declaramos pines de los motores como salidas
pinMode(ena,OUTPUT);
pinMode(enb,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
}

void loop() {
digitalWrite(trigger, HIGH); //la señal trigger es el que mandara la señal para
que el sensor detecte
delay(1); //la señal sera activada 1 milisegundo
digitalWrite(trigger, LOW); //despues la señal sera baja
tiempo = pulseIn(echo,HIGH); //haciendo uso del comando pulseIn
determinamos el tiempo
distancia=tiempo/58.2; //realizando la respectiva operación obtenemos la
distancia
Serial.print("Distancia: ");
Serial.println(distancia);
if(Serial.available()){
int a=Serial.read();
switch(a){

case '1':
Serial.println("Arriba");
adelante();
break;

case '2':

Laboratorio Electrónica Industrial Página 4


Universidad Mayor de San Andrés

Serial.println("Izquierda");
izquierda();

break;

case '3':
Serial.println("Atras");
atras();

break;

case '4':
Serial.println("Derecha");
derecha();

break;

case '5':
Serial.println("Parar");
parar();

break;
}
}
delay (100);
}
void adelante(){
//Dirección motor A
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
analogWrite(ena,vel); //velocidad motor A
//dirección motor B
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(enb,vel); //velocidad motor B
}
void atras(){
//Dirección motor A
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
analogWrite(ena,vel); //velocidad motor A
//dirección motor B
digitalWrite(in3,LOW);

Laboratorio Electrónica Industrial Página 5


Universidad Mayor de San Andrés

digitalWrite(in4,HIGH);
analogWrite(enb,vel); //velocidad motor B
}
void derecha(){
//Dirección motor A
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
analogWrite(ena,vel); //velocidad motor A
//dirección motor B
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
analogWrite(enb,vel); //velocidad motor B
}
void izquierda(){
//Dirección motor A
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
analogWrite(ena,vel); //velocidad motor A
//dirección motor B
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(enb,vel); //velocidad motor B
}
void parar(){
//Dirección motor A
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
analogWrite(ena,0); //velocidad motor A
//dirección motor B
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
analogWrite(enb,0); //velocidad motor B
}
PROGRAMA EN PYTHON
import serial, time
arduino = serial.Serial("COM3",9600)
print("Envio de datos al arduino")

time.sleep(1)
num =int(input('Introduzca la opcion: '))
print("1 (datos de distancia)")
print("2 (Movimiento motor)")
if(num==1):
i=0

Laboratorio Electrónica Industrial Página 6


Universidad Mayor de San Andrés

while 1:
while(arduino.inWaiting()==0):
pass
datoString = arduino.readline()
a = datoString.splitlines()

## para una variable


b = str(a[0])
c=b.replace("b","")
d = c.replace("'","")
e=str(d)
print(e)

if(num==2):
print("Introduzca un valor ")
print("1 (adelante)")
print("2 (atras)")
print("3 (giro a la derecha)")
print("4 (giro a la izquierda)")
print("5 (parar)")
while 1:
b=input()
b=str(b)
arduino.write(b.encode('ascii'))

RESULTADOS

Laboratorio Electrónica Industrial Página 7


Universidad Mayor de San Andrés

5. Conclusiones

a) Se cumplió con el objetivo del trabajo, se realizó el enlace de python con arduino,

también se logró realizar la transmisión y recepción de datos, se realizó el código a

través de Visual Code, y finalmente se usó el “Símbolo del sistema” para ejecutar el

código

6. Recomendaciones

Tener mucho cuidado a la hora de instalación de python, es importante que el sistema lo

reconozca para poder realizar la comunicación con el puerto serial. Las librerías necesarias

se deben instalar para que no hay problemas, y es necesario tener un buen diseñador de

código.

7. Referencias

https://www.youtube.com/watch?v=dE8ktHkFRek

https://www.luisllamas.es/primer-programa-python/

Laboratorio Electrónica Industrial Página 8

También podría gustarte