Programming Arduino Using Python!!!

Programming Arduino Using Python!!! © CC BY-NC-SA

In this tutorial, we are going to learn how we can install python on our computer and how to use it with Arduino,It allows us to send data.

  • 6,494 views
  • 0 comments
  • 12 respects

Components and supplies

Apps and online services

Ide web
Arduino IDE
Python IDLE
PySerial Library

About this project

In this tutorial, we are going to learn how we can install python on our computer and how to use it with Arduino,It allows us to send data back and forth between a computer though Arduino's serial.

So, I'm going to show you how to tell your arduino to blink using Python code. Once you understand this,You would touch lots of possibilities since python has an increased productivity with its ability to interact with other platforms.

Obviously,The main idea of this tutorial is to turn ON the LED when I type '1' and '0' to turn OFF.

Hardware components :

1. Arduino Uno

2. LED

3. 220 Ohms resistor

4. Breadboard

5. Wires

Software apps :

1.Python IDLE

2. PySerial

Step 1: Install Python IDLE on Your Computer

You can skip this step if you have installed the Python IDLE already in your computer.If yes then go to step 2 or else look to the following instructions:

1.Go to the python website and download it (here).

2.Once you have done,you move on to installation by keeping the directory in which the python is getting installed by default.

NOTE:Even if your Computer is operating on 64-bit you can use 32-bit Python itself, due to the lack of compatibility with Arduino Libraries.

Step 2: Watch the Video for More Details

Step 3: Install PySerial

PySerial is a Python API module which is used to read and write serial data to Arduino or any other Microcontroller.To install on Windows, simply visit PySerial's Download Page and following the steps bellow :

1.Download the PySerial from the link above.

2.Install it by keeping the setting as the default You should be sure that Pyserial worked correctly,To do this;You type in :

import serial

if you haven't confronted any error,so you're in the good way,if else I advice you to check your installation and Python IDLE extension.

Step 4: Python Code

First up, we need a simple program to get the Python sending data over the serial port.

import serial                                                              #Serial imported for Serial communication
import time                                                                #Required to use delay functions   
ArduinoUnoSerial = serial.Serial('com15',9600)       #Create Serial port object called ArduinoUnoSerialData time.sleep(2)                                                             #wait for 2 secounds for the communication to get established
print ArduinoUnoSerial.readline()                             #read the serial data and print it as line 
print ("You have new message from Arduino")
  while 1:         #Do this forever
            var = raw_input()                                          #get input from user             
            if (var == '1'):                                                #if the value is 1         
                ArduinoUnoSerial.write('1')                      #send 1 to the arduino's Data code       
                print ("LED turned ON")         
                time.sleep(1)          
             if (var == '0'): #if the value is 0         
                ArduinoUnoSerial.write('0')            #send 0 to the arduino's Data code    
                print ("LED turned OFF")         
                time.sleep(1)
             if (var == 'fine and you'): #if the answer is (fine and you)        
                ArduinoUnoSerial.write('0') #send 0    to the arduino's Data code    
                print ("I'm fine too,Are you Ready to !!!")         
                print ("Type 1 to turn ON LED and 0 to turn OFF LED")         
                time.sleep(1)

Step 5: Arduino Code

To initiate a connection with the Arduino from Python, we first have to figure out which COM Port the Arduino is on. This task is simply made by the Ardunio programming environment as I notify in the picture above.

int data;
int LED=13;
void setup() { 
  Serial.begin(9600);                               //initialize serial COM at 9600 baudrate
  pinMode(LED, OUTPUT);                    //declare the LED pin (13) as output
  digitalWrite (LED, LOW);                     //Turn OFF the Led in the beginning
  
  Serial.println("Hello!,How are you Python ?");
}
void loop() {
while (Serial.available())    //whatever the data that is coming in serially and assigning the value to the variable “data”
{ 
data = Serial.read();
}
if (data == '1')
digitalWrite (LED, HIGH);                  //Turn On the Led
else if (data == '0')
digitalWrite (LED, LOW);                  //Turn OFF the Led
}

Code

Code snippet #2Plain text
import serial                                                              #Serial imported for Serial communication
import time                                                                #Required to use delay functions   
ArduinoUnoSerial = serial.Serial('com15',9600)       #Create Serial port object called ArduinoUnoSerialData time.sleep(2)                                                             #wait for 2 secounds for the communication to get established
print ArduinoUnoSerial.readline()                             #read the serial data and print it as line 
print ("You have new message from Arduino")
  while 1:         #Do this forever
            var = raw_input()                                          #get input from user             
            if (var == '1'):                                                #if the value is 1         
                ArduinoUnoSerial.write('1')                      #send 1 to the arduino's Data code       
                print ("LED turned ON")         
                time.sleep(1)          
             if (var == '0'): #if the value is 0         
                ArduinoUnoSerial.write('0')            #send 0 to the arduino's Data code    
                print ("LED turned OFF")         
                time.sleep(1)
             if (var == 'fine and you'): #if the answer is (fine and you)        
                ArduinoUnoSerial.write('0') #send 0    to the arduino's Data code    
                print ("I'm fine too,Are you Ready to !!!")         
                print ("Type 1 to turn ON LED and 0 to turn OFF LED")         
                time.sleep(1)
Code snippet #3Plain text
int data;
int LED=13;

void setup() { 
  Serial.begin(9600);                               //initialize serial COM at 9600 baudrate
  pinMode(LED, OUTPUT);                    //declare the LED pin (13) as output
  digitalWrite (LED, LOW);                     //Turn OFF the Led in the beginning
  
  Serial.println("Hello!,How are you Python ?");
}
 
void loop() {
while (Serial.available())    //whatever the data that is coming in serially and assigning the value to the variable “data”

{ 

data = Serial.read();

}

if (data == '1')

digitalWrite (LED, HIGH);                  //Turn On the Led

else if (data == '0')

digitalWrite (LED, LOW);                  //Turn OFF the Led

}

Comments

Similar projects you might like

Arduino Bluetooth Basic Tutorial

by Mayoogh Girish

  • 455,142 views
  • 42 comments
  • 239 respects

Home Automation Using Raspberry Pi 2 And Windows 10 IoT

Project tutorial by Anurag S. Vasanwala

  • 285,672 views
  • 95 comments
  • 672 respects

Security Access Using RFID Reader

by Aritro Mukherjee

  • 230,050 views
  • 38 comments
  • 239 respects

OpenCat

Project in progress by Team Petoi

  • 196,438 views
  • 154 comments
  • 1,366 respects
Add projectSign up / Login