Raspberry Pi: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(59 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
'''Betreuer:''' [[Benutzer:Ulrich_Schneider| Prof. Schneider]]<br/>
'''Betreuer:''' [[Benutzer:Ulrich_Schneider| Prof. Schneider]]<br/>
'''Art:''' Praxissemester<br>
'''Art:''' Praxissemester<br>
'''Projektlaufzeit:''' 02.11.2021-20.02.2022
'''Projektlaufzeit:''' 02.11.2021 - 20.02.2022
<br clear = all>
<br clear = all>


[[Datei:Raspberry Pi.jpg|right|mini|300px|Abb.1 Raspberry Pi 4 <nowiki></nowiki>]]
[[Datei:AlphaBot with RPi.jpg|right|mini|400px|Abb.1 AlphaBot with Raspberry Pi 4 <nowiki></nowiki>]]




Zeile 13: Zeile 13:
The Raspberry Pi is a single computer the size of a credit card. It features an ARM/Broadcom SoC with a GPU, RAM, and wireless and cable communication options. In some ways, it's that straightforward: the Raspberry Pi is just a small computer. However, it is not so straightforward in another manner. The Raspberry Pi is a very adaptable platform that allows you to build whatever you desire.
The Raspberry Pi is a single computer the size of a credit card. It features an ARM/Broadcom SoC with a GPU, RAM, and wireless and cable communication options. In some ways, it's that straightforward: the Raspberry Pi is just a small computer. However, it is not so straightforward in another manner. The Raspberry Pi is a very adaptable platform that allows you to build whatever you desire.


Initially, we got the AlphaBot with an Arduino attached to it and then we replaced Arduino with a Raspberry Pi 4 and used or programmed it accordingly. In this article, the idea of using Raspberry Pi 4 instead of Arduino IDE with Alphabot  is introduced. Like, how different tools make the Raspberry Pi 4 to control and work with Alphabot. Before we go further, let us take a closer look at the difference between these two boards, Arduino IDE and Raspberry Pi.
Initially, we got the AlphaBot with an Arduino attached to it and then we replaced Arduino with a Raspberry Pi 4 and used or programmed it accordingly. In this article, the idea of using Raspberry Pi 4 instead of Arduino IDE with Alphabot  is introduced. Like, how different tools make the Raspberry Pi 4 to control and work with Alphabot. Before we go further, let us take a closer look at the difference between these two boards, Arduino IDE and Raspberry Pi. Then, the installation of required softwares and role of GPIO pins to control the hardware will be explained.


=== Arduino ===
=== Arduino ===


[[Datei:AlphaBot Arduino.jpg|right|mini|200px|Abb.2 <nowiki></nowiki>]]
[[Datei:AlphaBot Arduino.jpg|right|mini|200px|Abb.2 Arduino Uno Plus <nowiki></nowiki>]]




Zeile 26: Zeile 26:
=== Raspberry Pi ===
=== Raspberry Pi ===


[[Datei:RPi 4.jpg|right|mini|200px|Abb.3 <nowiki></nowiki>]]
[[Datei:RPi 4.jpg|right|mini|200px|Abb.3 Raspberry Pi 4 <nowiki></nowiki>]]




Zeile 34: Zeile 34:
<br clear=all>
<br clear=all>


== Using the Raspberry Pi’s GPIO to control hardware components ==
==Software requirement==


The Raspberry Pi's row of GPIO pins along the top edge of the board is a powerful feature. General-Purpose Input/Output is an acronym for GPIO. These pins are the Raspberry Pi's physical interface to the outside world. You can think of them as switches that you can turn on or off (input) or that the Pi can turn on or off (output) at the most basic level (output). The Raspberry Pi's GPIO pins link to electronic circuits and allow it to control and monitor the outside world. The Raspberry Pi can control LEDs, switch them on and off, and run motors, among other things. It can also tell if a switch has been pressed, the temperature, and the amount of light. This is referred to as physical computing.
* Ubuntu 20.04.3 LTS (RPi 3/4/400)
* Robot Operating System 2  (Foxy Fitzroy)


[[Datei:GPIO Pins.png|right|mini|200px|Abb 4: GPIO Pin Label ]]
==Hardware requirement==


The Raspberry Pi has 40 pins (26 pins on early variants), each of which serves a different purpose. If you have a RPi pin label, you can use it to assist you figure out what each pin is for. Make that the keyring hole on your pin label is facing outwards, away from the USB ports.
* Robot (AlphaBot)
* Raspberry Pi 4
* HDMI cable (for connecting RPi with Monitor)
* Network cable
* Network switch


== Project planning ==


1. GND: Zero volts is a voltage that is used to complete a circuit.
[[Datei:Project Plan.jpg|left|mini|700px|Abb. 4: Project plan]]


2. GP2: These pins can be used for a variety of purposes and can be set up as input or output pins.
<br clear=all>
 
3. 5V: Anything that is attached to these pins will always receive 5 volts of power.
 
4. 3V3: Anything attached to these pins will receive 3.3V power at all times.


5. ID_SC/ID_SD/DNC: pins with a specific purpose.
== [[Installation of Ubuntu Server and ROS2]] ==


<br clear=all>
== [[Overview of ROS]] ==


TIP: Playing with the GPIO pins is safe and enjoyable if you follow the instructions. Randomly putting wires and power sources into a Pi, on the other hand, may cause it to fail, especially if the 5V pins are used. If you try to connect devices to a Pi that use a lot of power, bad things can happen.




An ultrasonic distance sensor emits ultrasound pulses that are undetectable by humans and detects the echo that is returned when the sound bounces off a nearby object. The distance from that thing is then calculated using the speed of sound.
== [[Using the Raspberry Pi’s GPIO to control hardware components]] ==


Two GPIO pins (one for echo, one for trigger), the ground pin, and a 5V pin are connected to the circuit. You must know which GPIO pins the echo and trigger are attached to in order to use the ultrasonic distance sensor in Python. First, we initialize the GPIO pins in our program.


Here,


* the echo is connected to pin '5'
== Illustration of the robot with UML diagram ==
* the trigger is connected to pin '17'
* the servo to pin '27'.


[[Datei:GPIO 1.png|left|mini|300px|Abb 5 ]]
[[Datei:Obstacle Avoiding Robot (Use Case).jpg|left|mini|700px|Abb. 15 Use Case Diagram ]]


<br clear=all>
<br clear=all>


GPIO.setmode(GPIO.BCM) = set up GPIO Broadcom chip-specific pin numbering
== [[Zusammenfassung_Praxissemester_Murad|Summary]] ==


self.p = GPIO.PWM(servo, 50) = When RPi configured for software pulse-width modulation, each pin generates a square waveform with a configurable duty cycle and frequency


self.PWMA.start ( ) = hints left wheel speed
== Softwares ==


self.PWMB.start ( ) = hints right wheel speed
* Ubuntu 20.04.3 LTS (RPi 3/4/400). To install Ubuntu Server 20.04.3 LTS on a Raspberry Pi, please use this [https://ubuntu.com/tutorials/how-to-install-ubuntu-on-your-raspberry-pi#1-overview guide].


[[Datei:GPIO 2.png|left|mini|400px|Abb 6  ]]
* Robot Operating System 2  (Foxy Fitzroy). To install ROS 2 Foxy on a Raspberry Pi, please use these [http://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html instructions].


<br clear=all>
== Demo ==


== Documentation ==
The code can be run straight from the SVN repository: https://svn.hshl.de/svn/Robotik_und_Autonome-Systeme/trunk/Projekte/AlphaBot_PI_ROS2/ .


In order to know how the code can be executed from SVN directory, please go through these [https://wiki.hshl.de/wiki/index.php/Demo instructions] .


== Weiterführende Links ==


* [[Installation guide | Ubuntu Server and ROS2 installation guide on Raspberry Pi4]]
* ROS2 [https://docs.ros.org/en/foxy/Tutorials.html Tutorials].
* [[Raspberry Pi 4 with Alphabot| Raspberry Pi 4 with Alphabot]]


== [[Zusammenfassung_Praxissemester_Murad|Summary]] ==
* Difference between [https://www.electronicshub.org/raspberry-pi-vs-arduino/#:~:text=The%20main%20difference%20between%20them,supply%2C%20programming%20and%20IO%20Connectivity. Raspberry Pi and Arduino].
 
 
== Weiterführende Links ==

Aktuelle Version vom 20. März 2022, 00:31 Uhr

Autoren: Fawad Murad
Betreuer: Prof. Schneider
Art: Praxissemester
Projektlaufzeit: 02.11.2021 - 20.02.2022

Abb.1 AlphaBot with Raspberry Pi 4


Introduction

The Raspberry Pi is a single computer the size of a credit card. It features an ARM/Broadcom SoC with a GPU, RAM, and wireless and cable communication options. In some ways, it's that straightforward: the Raspberry Pi is just a small computer. However, it is not so straightforward in another manner. The Raspberry Pi is a very adaptable platform that allows you to build whatever you desire.

Initially, we got the AlphaBot with an Arduino attached to it and then we replaced Arduino with a Raspberry Pi 4 and used or programmed it accordingly. In this article, the idea of using Raspberry Pi 4 instead of Arduino IDE with Alphabot is introduced. Like, how different tools make the Raspberry Pi 4 to control and work with Alphabot. Before we go further, let us take a closer look at the difference between these two boards, Arduino IDE and Raspberry Pi. Then, the installation of required softwares and role of GPIO pins to control the hardware will be explained.

Arduino

Abb.2 Arduino Uno Plus


Arduino is a development board that uses a microcontroller. Arduino UNO uses the ATmega328P microcontroller, which is based on Atmel microcontrollers. The Processor, RAM, and ROM are all contained in the Microcontroller on the Arduino Board (such as the ATmega328P). Supporting hardware (for power and data) and GPIO pins are included on the board. Arduino was built from the ground up as open-source hardware and software. The hardware and software of Arduino are both easily accessible. There is no need for an operating system because it is a Microcontroller. To connect to the internet using Arduino, you'll need an extra module or shield. In the case of Arduino, there is no wireless connectivity (at least on board). C or C++ programming languages can be used to programme Arduino.


Raspberry Pi

Abb.3 Raspberry Pi 4


The Raspberry Pi is an SBC (Single Board Computer). It's built around a Broadcom SoC, which is an ARM Cortex A Series microprocessor. The Raspberry Pi Board contains all of the necessary components, such as the processor, RAM, storage, connectors, and GPIO pins. Raspberry Pi's hardware and firmware are both closed-source, which means they are not available for general usage. To boot the Raspberry Pi, you'll need a Debian-based Linux distribution called Raspberry Pi OS. Using Wi-Fi or Ethernet, you may effortlessly connect to the internet. The Raspberry Pi includes Bluetooth and Wi-Fi technology. Python, Scratch, Ruby, C, and C++ are the most popular programming languages for Raspberry Pi application development.


Software requirement

  • Ubuntu 20.04.3 LTS (RPi 3/4/400)
  • Robot Operating System 2 (Foxy Fitzroy)

Hardware requirement

  • Robot (AlphaBot)
  • Raspberry Pi 4
  • HDMI cable (for connecting RPi with Monitor)
  • Network cable
  • Network switch

Project planning

Abb. 4: Project plan


Installation of Ubuntu Server and ROS2

Overview of ROS

Using the Raspberry Pi’s GPIO to control hardware components

Illustration of the robot with UML diagram

Abb. 15 Use Case Diagram


Summary

Softwares

  • Ubuntu 20.04.3 LTS (RPi 3/4/400). To install Ubuntu Server 20.04.3 LTS on a Raspberry Pi, please use this guide.
  • Robot Operating System 2 (Foxy Fitzroy). To install ROS 2 Foxy on a Raspberry Pi, please use these instructions.

Demo

The code can be run straight from the SVN repository: https://svn.hshl.de/svn/Robotik_und_Autonome-Systeme/trunk/Projekte/AlphaBot_PI_ROS2/ .

In order to know how the code can be executed from SVN directory, please go through these instructions .

Weiterführende Links