Skip to main content

Duplex serial communication between Arduino and Raspberrypi

 Duplex serial communication between Arduino and Raspberrypi


Raspberrypi Setup 


Detect the Arduino board

When connecting the Arduino with a USB cable, you should see it appear as /dev/ttyACM0 or /dev/ttyUSB0 (sometimes the number can be different, for example /dev/ttyACM1).

Simply open terminal and run the following command. 

Run

ls /dev/tty*


and you should see it. At this point if you’re not sure which device is the Arduino board, simply disconnect the board (remove the USB cable), and run the above command again. This way you will easily spot the serial device name of your Arduino. For example in following pictures will observe the difference while running command before and after inserting arduino USB cable.


Before inserting USB


After inserting USB


Here the difference is there is added a port red marked.

Install Python Serial library on Raspberry Pi

You need to install a library to be able to use the Serial interface with Python.

To install it:

Run

python3 -m pip install pyserial

This Python library is well-known and used in a lot of applications.

When installing, if you get an error such as “/usr/bin/python3: No module named pip”, then you need to install pip first with 

Run

sudo apt install python3-pip

and Run

Sudo pip3 install pyserial.



Code for Raspberrypi


import serial                                         # Module needed for serial communication

import time

if __name__ == '__main__':

#change port instead ttyUSB0 by following above setup step.

    ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)

    ser.flush()

    while (1):

        send_string = ("My name is Raspberry Pi\n")

  # Send the string. Make sure you encode it before you send it to the Arduino.

        ser.write(send_string.encode('utf-8'))

  # Do nothing for 500 milliseconds (0.5 seconds)

        time.sleep(1)

  # Receive data from the Arduino

        receive_string = ser.readline().decode('utf-8').rstrip()

        print(receive_string)



Code for arduino


void setup() {

  Serial.begin(9600);

}


void loop() {

  if (Serial.available() > 0) {

    String data = Serial.readStringUntil('\n');

    Serial.print("You sent me: ");

    Serial.println(data);

  }

}


Comments

Popular posts from this blog

2017//2(b)//Engineering Eco//KU

A loan of $10,000 is to be repaid over a period of eight years. During the first four years, exactly half of the loan principal is to be repaid (along with accumulated compound interest) by a uniform series of payments of A1 dollar per year. The other half of the loan principal is to be repaid over four years, with accumulated interest, by a uniform series of payments of A2 dollar per year, If i=9% per year, what are A1 and A2?

Testing servo motor with arduino

  Testing servo motor with arduino  Components Needed: Arduino board (e.g., Arduino Uno) Servo motor Jumper wires Steps for Connection: Servo Motor Pins: Ground (GND): Usually the brown or black wire of the servo motor. Power (VCC): Usually the red wire of the servo motor. Control Signal (PWM): Usually the yellow, orange, or white wire of the servo motor. Connecting to Arduino: Ground (GND): Connect the ground wire of the servo motor to one of the GND pins on the Arduino. Power (VCC): Connect the power wire of the servo motor to the 5V pin on the Arduino. Control Signal (PWM): Connect the control signal wire of the servo motor to digital pin 9 on the Arduino, as specified in the code by myservo.attach(9); Connection Arduino  Servo motor  VCC/ 5V Red wire  GND Black Wire  9  Yellow wire Explanation: Ground (GND): This connection ensures that the servo motor and the Arduino share a common ground, which is necessary for proper operation. Power (VCC): The servo motor needs a power supply t

CanSat

  CanSat is a type of small satellite that is designed to fit inside a soda can. These miniature satellites are used for a variety of purposes, including educational projects, scientific research, and commercial applications. The CanSat concept was first developed in 1998 by Bob Twiggs, a professor at Stanford University, and Jordi Puig-Suari, a professor at California Polytechnic State University. They wanted to create a low-cost, hands-on way for students to learn about satellite technology and space science. Since then, CanSats have become a popular platform for educational projects around the world. They are often used in STEM (Science, Technology, Engineering, and Mathematics) education programs, where students are tasked with designing, building, and launching their own CanSats. A typical CanSat consists of a soda can-sized container that houses a variety of sensors, such as temperature, humidity, pressure, and acceleration sensors. It also includes a small computer, a radio tran