Tag Archives: pi

Using a SIM800L GSM module with the Raspberry Pi (no battery)

sim800l gsm module with raspberry pi

The SIM800L is a GSM/GPRS modem widely used in electronics due to its very low price and wide availability. It’s an affordable way to send SMS with a Raspberry Pi or an Arduino, to connect to 3G or to implement a GPS.

However, it is almost impossible to find satisfactory explanations on its use and in particular on its connection.

In this tutorial we will therefore see how to connect and power a SIM800L from a Raspberry Pi (note that this also works for an Arduino), without external power supply or battery!

Hardware

We will go into the details and explanations later in this tutorial, but be aware that to connect a SIM800L to a Raspberry some hardware is required. So, you will need:

  • SIM800L GSM Module
  • 100 µF capacitor or more
  • 1N4007 diode
  • Breadboard
  • Jumpers

Of course, you will also need a Raspberry with Raspbian installed and a SIM card with a subscription. Note, the SIM card must be in micro sim format. If yours is a smaller format (nano format), you will need an adapter.

How to use the SIM800L module with a Raspberry Pi?

The SIM800L is a modem. It is the responsible for registering with your operator’s network, etc. Overall it behaves like a phone that you could control directly from your Raspberry.

To be able to control the SIM800L, from the Raspberry, you will have to provide power to the first and physically and software connect the two using a TTL port, more often called a serial port or interface.

From there you can control the SIM800L by sending so-called Hayes commands to the serial port – we actually speak more often of AT commands – which are commands specific to the functions of a modem. For example, send an SMS, enter a PIN code, check the network status, and much more!

In theory, to use a SIM800L with the Raspberry Pi you must do like this:

  • VDD of the SIM800L to +5V on the Raspberry.
  • GND of the SIM800L to GND on the Raspberry.
  • TXD of the SIM800L to RXD of the Raspberry.
  • RXD of the SIM800L to TXD of the Raspberry.

Only here, all that is the theory, but you will see that in practice things are a little more complicated.

Why is so difficult to plug in a SIM800L?

If the theory seems simple, in reality, you will find quite a few tutorials on the internet explaining how to use the SIM800L with a Raspberry. Worse, you will essentially find incorrect tutorials which, at best, will make your installation completely unstable, why not, will damage your SIM800L.

But then, how come there are not more quality resources available for such a well-known module? Because the SIM800L is particularly difficult to power and sensitive.

1. SIM800L is designed for phones and batteries

Originally the SIM800L was designed for use in phones by manufacturers. Its use in consumer electronics is much more recent and was not considered at all by the manufacturer.

As a result of its use in telephones, the module is designed to be powered by lithium-ion batteries, which offer voltages of around 3.6 to 3.7 volts. This feature will pose a first problem for us, because in digital electronics we generally use 3.3 volts or 5 volts, but not 3.6 volts.

2. SIM800L is an energy-intensive module

The second problem, the SIM800L performs radio operations that require large, very punctual current peaks. Typically the operations involved are registering on the operator’s network, sending messages, etc. If during these phases the module does not obtain the necessary current, its behavior becomes completely unpredictable, ranging from the error message to the restart through the loss of network.

Unfortunately, the power supplies in general and the GPIO ports of the Raspberry Pi in particular have a hard time responding to this kind of consumption peaks.

In fact, the amount of energy consumed is so great and over such a short period of time that using power cables that are too long and too thin can be enough to crash the module! This is also typically the case if you connect several Dupont cables in series.

No worries, we will explain how to solve these two problems!

So, how to power a SIM800L directly from a Raspberry?

We have seen so far that two problems arise for us to power a SIM800L from a Raspberry: an incompatible voltage and peaks in power consumption.

To begin, we will tackle the tension problem.

1. Decrease the voltage supplied by the Raspberry Pi

If we read the datasheet (technical sheet) of the SIM800L, we can see that the manufacturer indicates a supply voltage between 3.4 and 4.4 volts, with an optimal voltage of 4 volts.

The Raspberry Pi have two outputs that can supply two voltages, 3.3 and 5 volts. So we should increase our tension a bit or decrease it.

Let’s eliminate the first possibility which is too complicated to implement and look at the second. We are therefore looking for a reliable, simple and very inexpensive way to reduce a voltage by at least 0.6 volts, without reducing the intensity of the current (amperes). Luckily, it turns out that there is an electronic component that does exactly that, and that in addition this component is so widespread that absolutely all electronics technicians know it: the diode.

Diodes are primarily known for passing current in one direction only. But one of their characteristics is also to cause a voltage drop, which is estimated for silicon diodes at 0.7 volts.

So we just need to insert a silicon diode, we will take a 1N4007, between the 5 volt GPIO of our Pi and the VDD (power supply) PIN of our SIM800L. And here we have a voltage of 4.3 volts, MAGICAL RIGHT!!

2. Provide a power source that can meet consumption peaks

Now that we have solved our voltage problem, there remains our consumption peak problem. This time we would need a component allowing us to “store current” and provide it very quickly when the SIM800L needs it. Again, luckily, it exists and it’s called a capacitor!

Capacitors are used in many cases, but one of the most well-known uses is power supply stabilization. They charge when there is too much current and discharge when there is not enough. We will therefore insert an electrolytic capacitor (we will take at least a 100 µF 5 V, if we have more µF or volts no problem) in parallel with the VDD and GND pins of our SIM800L.

Schematics and wiring

Now that we’ve solved our problems, let’s see what our complete assembly looks like before testing everything by sending an SMS.

To hold all our components in place and connect them together we will use a breadboard and some jumpers.

Here is the final connection diagram, the red wire goes to the VDD, the black to the GND.

A few notes on assembly:

  • unplug the power supply of your Raspberry Pi while wiring. Only plug it in after checking everything and being sure that your circuit is good to go.
  • Connect the capacitor as close as possible to the VDD and GND pins of the SIM800L, ideally as shown in the diagram.
  • Capacitors are a polarized component, you must connect theme in a precise direction, anode on the VDD, cathode on the GND. The cathode is marked by a white band on the side.
  • Just like the capacitor, the diode is a polarized component. Again the cathode is marked by a white band.

Once the assembly is complete, you will be able to insert the SIM card into the slot provided on the SIM800L.

You must tuck the card on the contact side against the printed circuit, the corner cut at an angle towards the opening (it protrudes a little). If you insert the card upside down you will get a SIM not inserted type error when using the module.

Once the assembly is finished, turn on your Raspberry Pi, we will be able to test by sending an SMS!

Your first SMS from the Raspberry with a SIM800L

To finish this tutorial, we will send a first SMS to check that everything is working. We will not go further on the use of the SIM800L, but be aware that it offers many other features. For more advanced use, refer to the AT commands guide for the SIM800.

To begin, you will have to follow our tutorial to activate the serial port of the Raspberry Pi. Once you have finished activating the serial port we can connect to the SIM800L via the serial port.

To do this, open a connection to /dev/serial0 with minicom using the command line below:

sudo minicom -b 115000 -o -D /dev/serial0

Type the AT command (often the first line is not displayed when you type, this is normal) then make a line break to validate. You should get an OK response message.

Now we are going to check that the SIM card is unlocked (the PIN code is entered). To do this type the command AT+CPIN?. You should have an answer:

+CPIN: READY
OK

If you get an answer like the one below, you need to enter your card’s PIN code.

+CPIN: SIM PIN
OK

To do this, use the command AT+CPIN=0000 replacing 0000 with your own PIN code. You should then get a response of the form:

AT+CPIN=0000
OK
+CPIN: READY
SMS Ready
Call Ready

That’s it, you are connected to your operator’s network. All we have to do is send an SMS. To do this, use the commands AT+CMGF=1 to activate the text mode (it allows us to write the SMS in a format understandable for a human), then AT+CMGS="+213XXXXXXXXX" replacing +213XXXXXXXXX by the number to which you want to send the SMS.

A character > will appear, type your SMS then once you finish, press Ctrl+Z.

In the end you should have something like this:

AT+CMGF=1
OK
AT+CMGS="+213XXXXXXXXX"
> My Fist SMS with SIM800L using Raspberry Pi
+CMGS: 29

OK

There you go, you have sent your first SMS with a Raspberry Pi and a SIM800L! if you need to see more tutorials, check this link.

Machine Vision with Raspberry Pi using TensorFlow and OpenCV4

artificial vision with raspberry pi tensorflow and opencv

Do you want to implement a CCTV camera that can identify several different elements? Or maybe optimize your robot and give it the ability to detect objects?

The Raspberry Pi 4 offers enough performance to perform machine learning. In this tutorial you will see the steps to get TensorFlow working on your Raspberry Pi 4, as well as a demonstration of detecting objects with a PI Camera or USB Webcam.

Required Hardware/software

  • Raspberry Pi 4.
  • 3000mA power supply with its USB-C cable.
  • micro-SD card (minimum 32 GB).
  • Picamera (or USB webcam).

What is TensorFlow ?

TensorFlow is an open source machine learning framework for solving complex mathematical problems. It allows researchers to develop experimental learning architectures and turn them into software. TensorFlow was developed by Google Brain team in 2011 and made open source in 2015. Since then it has gone through more than 21000 changes and upgraded to version 1.0 in February 2017. Currently version 2.8.0 is available on the TensorFlow website.

This library notably makes it possible to train and run neural networks for the classification of handwritten digits, image recognition, models for machine translation, and natural language processing. An application’s code is written in Python but executed in high-performance C++. Here, the raspberry and its camera will be able to detect a hundred different objects! In addition, good results are obtained at night with an IR camera equipped with LEDs.

On the software side, the micro-SD has been flashed with the latest version of Raspbian Buster downloadable from the official website. Python3 is installed there by default, to launch a program from the command line, you will have to type in a terminal:

$ python3 my_program.py

Here, the Object_detection_picamera.py program will need several elements to work:

  • The mscoco_label_map.pbtext file corresponding to the list of 100 detectable objects, it is located in the data folder.
  • The “ssdlite_mobilenet_v2_coco_2018_05_09” folder where the training model files are stored.
  • The utils folder (utilities) containing the classification modules for the various objects.

Installing TensorFlow

Start by updating the Raspberry Pi:

sudo apt-get update
sudo apt-get dist-upgrade

Next, install TensorFlow with the pip3 command.

sudo pip3 install tensorflow

TensorFlow needs a library named Atlas, type the following command:

sudo apt-get install libatlas-base-dev

Finally, it will be necessary to install the dependencies necessary for the detection of objects.

sudo pip3 install pillow lxml jupyter matplotlib cython
sudo apt-get install python-tk

That’s it for TensorFlow. Let’s move on to OpenCV.

Installing OpenCV

TensorFlow’s object detection examples typically use matplotlib to display images, but OpenCV is preferred because it’s easier to use and less error-prone. The object detection scripts in the GitHub repository in this guide use OpenCV. To make OpenCV work on the Raspberry Pi, many dependencies need to be installed via apt-get.

sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev 
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev 
sudo apt-get install libxvidcore-dev libx264-dev 
sudo apt-get install qt4-dev-tools libatlas-base-dev
sudo pip3 install opencv-python

If all went well, OpenCV is installed on your Raspberry.

You can check if the installation is successful and the installed version. Open a terminal and launch the Python3 interpreter.

The TensorFlow object detection API uses Protobuf, a package that implements Google’s Protocol Buffer data format. Before, you had to compile the Protobuf source code (a bit tedious), but now the installation is very simple, thanks to the multiple contributions of the community.

sudo apt-get install protobuf-compiler

In order to check the version installed, run the command:

protoc --version

You should have in response libprotoc v3.20.0 (latest version.)
Create a TensorFlow directory and navigate to it (/home/pi/tensorflow).

mkdir tensorflow
cd tensorflow

Download the TensorFlow repository from GitHub by typing:

git clone --depth 1 https://github.com/tensorflow/models.git

Next, you need to modify the PYTHONPATH environment variable to point to certain directories in the TensorFlow repository you just downloaded. PYTHONPATH needs to be set each time a terminal is opened, so the .bashrc file needs to be edited.

sudo nano ~/.bashrc

Go to the end of the file, and add this line:

export PYTHONPATH=$PYTHONPATH:/home/pi/tensorflow/models/research:/home/pi/tensorflow/models/research/slim

Now we need to use protoc to compile the Protocol Buffer (.proto) files used by the Object Detection API. The .proto files are in /research/object_detection/protos, but we need to run the command from the /research directory.

cd /home/pi/tensorflow1/models/research
protoc object_detection/protos/*.proto --python_out=.

Next, move into the object_detection directory:

cd /home/pi/tensorflow/models/research/object_detection

Now download the SSD_Lite model. Google teams have developed a series of pre-trained object detection files, with varying levels of speed and accuracy. The Raspberry Pi has a relatively weak processor for the recognition application, so a model should be used that takes less processing power. Here we will use SSDLite-MobileNet, which remains well suited for our Raspberry Pi. Download the file and unzip it into the object_detection directory.

wget http://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz
tar -xzvf ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz

Finally, copy/paste the python program from this Github link in a file named Object_detection_picamera.py

If you want to port the application to other Raspberry Pi with OpenCV and TensorFlow installed, simply download the .ZIP of the necessary files available on GitHub.

Your application is now ready to work!

Conclusion

Once your application is operational, all possibilities are open. For an autonomous application, based on solar panels, it would suffice to perform a calculation of the power consumed by the entire installation, and to determine the appropriate type of battery.

Still at the battery level, the Lion-i technology seems well suited, because of its small size and its autonomy, the price is higher than a lead battery, but offers good results in an environment subject to cold or heat. heat.

Raspberry Pi Pico and MPU6050 with MicroPython

Raspberry Pi Pico and MPU6050 with MicroPython

The MPU6050 is an inertial unit that combines an accelerometer and a gyroscope. It is used to measure acceleration, inclination and angular velocity. In this tutorial, we will try to explain how to use an MPU6050 with a Raspberry Pi Pico using MicroPython.

The accelerometer makes it possible to know the acceleration and/or the gravitational field according to 3 axes: x, y and z. If you take a closer look, you can see a drawing of the x and the y axes on the module, while the z axis is perpendicular to the plane of the module. When the module is stationary, flat on a table, it will measure an acceleration of 1 g along the z axis, due to the force of gravity acting downwards. If the measured acceleration is zero along the 3 axes, the MPU-6050 module is in free fall!

The gyroscope measures the angular speed along the 3 axes. When the module is immobile, the 3 components of the angular velocity are, in principle, zero (a calibration is however necessary for the result to be exact).

Connections

The MPU-6050 module has 8 connectors, but only 4 of them are necessary for its operation (2 for power supply, and 2 for data transmission by I2C):

  • VCC pin (MPU-6050) => 3.3V output pin (Raspberry Pi Pico).
  • GND pin (MPU-6050) => GND pin (Raspberry Pi Pico).
  • SCL pin (MPU-6050) => GP9 pin (Raspberry Pi Pico).
  • SDA pin (MPU-6050) => GP8 pin (Raspberry Pi Pico).

Installing imu.py and vector3d.py libraries

You can find the necessary libraries on this Github repository. Also, you need to copy the “imu.py” and “vector3d.py” files to the flash memory of the Raspberry Pi Pico.

First script

This script displays the measurements from the accelerometer and the gyroscope. From the data of the accelerometer, the script tries to determine if one of the 3 axes (x, y or z) approaches the vertical. Based on the data from the gyroscope, the script indicates whether the MPU-6050 module is spinning.

Run this script, and orient the MPU-6050 module in different ways to see how the displayed values vary.

'''
Using the MPU6050 inertial unit (accelerometer + gyrometer) with a Raspberry Pi Pico.
For more info:
bekyelectronics.com/raspberry-pi-pico-and-mpu-6050-micropython/
'''

from imu import MPU6050  # https://github.com/micropython-IMU/micropython-mpu9x50
import time
from machine import Pin, I2C

i2c = I2C(0, sda=Pin(8), scl=Pin(9), freq=400000)
imu = MPU6050(i2c)

# Temperature display
print("Temperature: ", round(imu.temperature,2), "°C")

while True:
    # reading values
    acceleration = imu.accel
    gyroscope = imu.gyro
    
    print ("Acceleration x: ", round(acceleration.x,2), " y:", round(acceleration.y,2),
           "z: ", round(acceleration.z,2))

    print ("gyroscope x: ", round(gyroscope.x,2), " y:", round(gyroscope.y,2),
           "z: ", round(gyroscope.z,2))

# data interpretation (accelerometer)

    if abs(acceleration.x) > 0.8:
        if (acceleration.x > 0):
            print("The x axis points upwards")
        else:
            print("The x axis points downwards")

    if abs(acceleration.y) > 0.8:
        if (acceleration.y > 0):
            print("The y axis points upwards")
        else:
            print("The y axis points downwards")

    if abs(acceleration.z) > 0.8:
        if (acceleration.z > 0):
            print("The z axis points upwards")
        else:
            print("The z axis points downwards")

# data interpretation (gyroscope)

    if abs(gyroscope.x) > 20:
        print("Rotation around the x axis")

    if abs(gyroscope.y) > 20:
        print("Rotation around the y axis")

    if abs(gyroscope.z) > 20:
        print("Rotation around the z axis")
    
    time.sleep(0.2)

Second script

In this second example, the Raspberry Pi Pico’s built-in LED lights up when you shake the MPU6050 module.

'''
Using the MPU6050 inertial unit (accelerometer + gyroscope) with a Raspberry Pi Pico.
The Pico LED lights up when the MPU6050 is shaken.
For more info:
bekyelectronics.com/raspberry-pi-pico-and-mpu-6050-micropython/
'''

from imu import MPU6050  # https://github.com/micropython-IMU/micropython-mpu9x50
import time
from machine import Pin, I2C

i2c = I2C(0, sda=Pin(8), scl=Pin(9), freq=400000)
imu = MPU6050(i2c)

# LED initially off
Pin(25, Pin.OUT).value(0)

while True:
    # acceleration reading
    acceleration = imu.accel.magnitude
    print (acceleration)
    
    # value at rest is 1
    if abs(acceleration - 1) > 0.1:
        print("It is moving!")   
        Pin(25, Pin.OUT).value(1) # turn on the LED
    else: 
        Pin(25, Pin.OUT).value(0) # turn off the LED
        
    time.sleep(0.2)

That’s it, this is how you can use the MCU6050 unit with your Paspberry Pi Pico. You can check other tutorials from this link. If you want to establish wireless communication between two of your Picos using NRF24L01, click here.

Release date and information on the Raspberry Pi 5

Release date and information on the Raspberry Pi 5

After many releases of new products from the Raspberry Pi Foundation, it has been less active in recent months. However, everything seems to show that the foundation is already working on the next Raspberry Pi. That includes the Raspberry Pi 5. Check out our article about the Raspberry Pi and its uses if you don’t know what it is.

The Raspberry Pi 5: In preparation but no release date yet

Although the Raspberry Pi Foundation has not yet announced the release date of the Raspberry Pi 5, it is indeed part of its plans.

Eben Upton, CEO of the Raspberry Pi Foundation has already announced a new Raspberry Pi with a more powerful and faster SoC. Also, the next Raspberry Pi should have a better USB input/output chip, more RAM memory and improved network connectivity (Ethernet/Wifi).

SoC: System on a Chip (Chip present on the processor)

Like each new version of the Raspberry Pi, this one will be even closer to a classic computer by being even more powerful than the Raspberry Pi 4. On the other hand, the foundation should keep the system set up with the Raspberry Pi 4, that is to say several versions of the Raspberry Pi 5 available, having a different RAM size and a different price as well.

Regarding the release date of the Raspberry Pi 5, we have no information yet but it should not see the light of day before mid 2022, or even early 2023 if an improved version of the Raspberry Pi 4 were to be released in the meantime.

Before the Pi 5 Released: An Improved Version of the Raspberry Pi 4

The release of the Raspberry Pi 4 is starting to date and many users are asking for a revision of the latest model from the Raspberry Pi foundation.

Based on the history of the foundation, we should see an update to the Raspberry Pi 4 (the Raspberry Pi 4A).

According to rumors concerning this new Raspberry Pi 4, improvements should be made to the SoC and to the USB ports which could give way to PCIe connectivity. The latter is already in place on the Compute Module 4.

What does the community want for the Raspberry Pi 5?

The best way to find out what the Raspberry Pi 5 will include is to ask what the community wants to see for the next Raspberry Pi 5.

1. Fix the bugs present in the Pi 4

The Pi 5 is expected to alleviate issues that the current versions have, such as:

  • USB-C power issues

There are many USB-C power adapters with fast charging technologies such as QuickCharge, DashCharge or SuperCharge. A hardware design flaw in the Raspberry Pi 4/4B is known to cause some adapters to misinterpret the device type. As a result, these adapters will provide more than 5V to power our Pi. This can sometimes burn out the board’s power supply or worse, the entire CPU .

So hopefully the Pi 5 doesn’t have the same design flaws.

  • The USB hub and the Ethernet chip

The 4-ports USB hub & the Gigabit Ethernet controller of the Raspberry Pi 4 have sometimes become hot. Even when no device is plugged in.

This problem has only been encountered by some users and no specific reason has been found.

Result, an increase in standby temperature means a decrease in the life time of the components.

  • The low voltage warning

It happened that a window appeared in the office asking to check the power supply. This problem may appear even when the power supply is new and after checking it has no problem.

In the Raspberry Pi 5, this should be fixed. It can only be triggered if the Pi is really struggling to draw enough current from the power supply.

2. Take over some features of the Raspberry Pi Pico in the Raspberry Pi 5?

Not too long ago, Raspberry Pi introduced its own microcontroller, the Raspberry Pi Pico. With a host of features such as the programmable IO state machine subsystem.

We know that being a microprocessor-based system, Raspberry Pis are not designed to perform critical tasks. For example, they can’t generate PWM signal, DAC and ADC functions, let alone handling interrupts.

Therefore, how about an integration of some of the Pico functions into the Raspberry Pi 5 such as:

  • Analog inputs (ADC).
  • Hardware PWM outputs.
  • IO programmable state machine system.
  • Additional hardware UART interfaces.
  • On-chip accelerated floating point and integer libraries.
  • Hardware Interrupts.
  • RTC & low power modes supported by the microcontroller part of the system.

Another subject is the design and size of the Raspberry Pi 5. This subject is debated because not all users agree: some want change while others strongly oppose it.

And you, what do you expect from the Raspberry Pi 5? Let us know in the comments below.

Twister: the brilliant OS for Raspberry Pi

Twister: the brilliant OS for Raspberry Pi

Since 2012, Raspberry Pi OS, formerly Raspbian, has been the go-to operating system for Raspberry Pi enthusiasts. Raspberry Pi OS is not the only operating system and a recent addition is Twister OS, which is based on Raspberry Pi OS, but it offers a larger selection of pre-installed apps and a choice of themes, some of which provide a Windows/macOS experience for the humble Pi.

In this tutorial, we will install Twister OS on a Raspberry Pi 4, then change the theme to suit Windows 10 and macOS. We’ll also take a look at the additional features of this excellent operating system, such as streaming media (Netflix, Amazon Prime, Hulu, Disney+) and games.

You can also use this OS with the Raspberry Pi 3B+. But for best performance, we recommend using a Raspberry Pi 4.

How to install Twister OS on the raspberry pi?

  • Download the latest version of Twister OS from this link which at the time of writing this article is v2.1.2.
  • Download balenaEtcher from here and install it.
  • Insert a micro SD card into your computer to install the OS on it.
  • Open balenaEtcher, select the Twister OS image, select the microSD card then click Flash to write the image.
  • Now, you can boot your Raspberry Pi from the microSD card.

On the first boot, you will see the Twister OS in all its glory. Stunning wallpaper and aesthetics that use the XFCE window manager to great effect. Twister OS is based on the latest version of Raspberry Pi OS (formerly Raspbian) and features all the applications found in a typical Raspberry Pi OS installation. Additional applications and themes provided by Twister OS are maintained and fixed by the Twister OS team.

Screenshot of the twister OS

Updating Twister OS

  • Check your internet connectivity.
  • From the main menu, select System >> Twister OS Patcher.
  • Follow the instructions to update and restart your Raspberry Pi.

Add a Windows or MacOS theme to your Twister OS

Twister OS is a chameleon, it can change its appearance in just a few clicks. If you want your OS to look like a Windows or Apple device, you can. The themes offered are of superb quality and really give the impression that we are using this OS.

To change the theme of your Twister OS just follow these steps:

  • On your desktop, Double-click on ThemeTwister.
  • Click Next to enter the theme selection screen.
  • Click the button below each theme to select it. A terminal window will appear and ask you to press Enter to restart.

Play with your Twister OS

Twister OS comes with a lot of gaming options. One can play classic PC games using DOSBOX x86Box, installable through PiKiss. Steam support is built into Twister OS, but don’t expect to rip demons in Doom Eternal, prefer simple 2D indie games.

Retro game players can play their game collections using RetroPie.

  • Install all the ROMs you have in /home/pi/RetroPie/roms selecting the correct system for each of the ROMs.
  • Connect a USB/Bluetooth gamepad
  • Double-click the RetroPie desktop icon and follow the on-screen instructions to set up your controller.
  • Choose the system for which you installed ROMs, and press the B button on your gamepad to select it.
  • Browse the game list and press B to play.

You can install the listed games in the Games Menu using PiKISS. Try AM2R: Return of Samus, an original game based on the Metroid series.

Play media files

There are several options for playing the videos and audio files. VLC and Parole media players allow playback through the desktop.

Kodi comes pre-installed on Twister OS and works exactly as you expect. Now enjoy loading up your media and streaming services on the big screen.

If you use streaming services like Amazon Prime Video, Netflix, Hulu, you can use the Chromium (Media Edition) version in the Internet menu to watch your favorite shows.

Control your Android device

The scrcpy app provides a way to interact with your Android device via USB debugging and it works remarkably well. It gives you the ability to control the device using a mouse and keyboard.

To set this up, follow these steps:

  • On your Android device, go to Settings >> About Phone and tap on Build Number until you enable the Developer Mode.
  • In Settings, find USB Debugging and select the first option.
  • Use the slider to enable USB debugging.
  • In Twister OS, click on the My Android icon. This will trigger a query on your Android device. Allow the request and your Android device will appear on the screen.

Using the keyboard and mouse, you can interact with the device now.

for other uses of the Raspberry Pi, check this link.

Launch a Python script when starting your Raspberry Pi

Launch a Python script when starting your Raspberry Pi

There are many projects where, to work, you had to run a Python script. For example for a control station, a Jukebox with RFID chip, or a security alarm system.

The problem is that it is quite annoying to have to launch it by hand each time the Raspberry Pi starts… Because that means always having a keyboard, a mouse and a screen plugged in, or logging in by SSH to launch it.

One solution is to start the Python script as soon as the Raspberry Pi boots up, and we’ll see how to do that in this article.

Don’t know what a raspberry pi is? check this link.

Create a shell script

In the user folder, you have to create a shell file that will contain the commands to run to launch the Python script.

cd /home/pi
nano launch.sh

Code explanation:

The first line “cd /home/pi” allows you to move into your user directory.

The command “nano launch.sh” will create the file “launch.sh” and will open the nano text editor so that we can write in the file.

In the file, write the commands to run your Python script:

cd /home/pi/my-program
python3 my-program.py

Save the file by pressing ”Ctrl + X”, confirm by pressing “O” and validate you choice by pressing Enter.

Make the file executable

Before you can use this shell file, you have to make it executable:

chmod 755 launch.sh

Test your file and check that your python script is launched with the command:

sh launch.sh

If everything works, you can move on to the next step.

Create a log file

In your user directory, create a “logs” folder which will contain the various log files of your programs. They will be used to have a written trace in you have an error in your program.

mkdir /home/pi/logs

Add your file to crontab

crontab is a process for running scripts in the background. It will execute scripts and commands at specific times or during specific events.

To add a new command in crontab:

sudo crontab -e

At the bottom of the file, add the line:

@reboot sh /home/pi/launch.sh > /home/pi/logs/log.txt 2>&1

This line will allow you executing the command “sh /home/pi/launch.sh” when starting the Raspberry Pi, and will save error messages and logs in the file “/home/pi/logs/log.txt ”.

Save with the shortcut “Ctrl + X“.

Check that everything is working

Reboot your Raspberry Pi:

reboot

If your program did not launch or there is a problem, check the log file to see if any errors have occurred.

That’s the end of this tutorial, I hope that tutorial could help you!

Write a comment below and tell us what will you use this script for?

What is arduino ?

what is arduino

Arduino® is a hardware and software package that allows you to learn electronics (while having fun) while becoming familiar with computer programming. Unlike other boards, Raspberry Pi for example, Arduino is open source, so you can download the original schematic and use it to build your own map and sell it without paying royalties.

The Hardware

They are programmable electronic cards (therefore equipped with a processor and memory) on which we can connect temperature, humidity, vibration or light sensors, a camera, buttons, adjustment potentiometers, contacts electric… There are also connectors for connecting LEDs, motors, relays, displays, a screen…

An Arduino board is a brain that makes electronic systems intelligent and animates mechanical devices.

The image below shows an the Uno board which is widely used for beginners.

An Arduino Uno board with its connectors.

In writing related to Arduino you will often see the words “microprocessor”, “micro-controller”, “MCU”, “AVR”, “ATMega168”, “ARMCortex-M3”…

In a very simplified way: all these terms designate a processor. The processor is the calculation unit (CPU) contained inside the integrated circuit designated by one of the terms previously mentioned (example: MCU, ATmega168, etc.)

The Software IDE

The creators of Arduino have developed software to make programming arduino boards visual, simple and complete at the same time.
This is called an IDE, which stands for Integrated Development Environment.

The Arduino IDE is the software used to program Arduino boards.

The IDE displays a graphics window that contains a text editor and all the tools needed for programming activity.
You can therefore enter your program, save it, compile it, check it, transfer it to an arduino board…
At the time of writing this page, the most recent version of the Arduino IDE is 1.8.10. The look is pretty much the same on every platform (Windows, Mac, and Linux). The following image shows the initial screen that appears when launching the IDE.

Types of Arduino Boards

Over the years, the designers at Arduino.cc have come up with a number of board designs. The first Arduino board, the Diecimila, was released in 2007. And since then, the Arduino family has evolved to take advantage of the different types of Atmel microprocessors.

The Due, released in 2012, is the first Arduino to use a 32-bit ARMCortex-M3 processor. It stands out from the rest of the family in terms of processing power and board pinout configuration.
Other boards, like the LilyPad and the Nano, don’t have the same pinout as well and are aimed at a different range of rather “mobile” applications.
In the case of the LilyPad it is for easy integration into clothing and fabrics.
The Esplora integrates sensors and actuators and the compact size of the Mini, Micro and Nano predestines them for miniature, light and discreet applications.

When several types of microcontrollers are indicated, it means that an early version was produced with the first type and later with the other (generally more powerful).
For example, an older version of the Duemilanove will have an ATmega168, while newer models will have the ATmega328. Functionally, the ATmega168 and ATmega328 are identical, but the ATmega328 has more internal memory.

The latest additions to the Arduino family, Leonardo, Esplora, Micro and Yún, all use the ATmega32U4 microcontroller. If the latter is similar to an ATmega328, it also integrates a USB serial interface component, which eliminates an integrated circuit (easier routing) like the one present on the Uno and Duemilanove boards (ATmega16U2, FT232RL).

Arduino naming convention

Although the design of the Arduino circuit and its software is open source, the Arduino team has reserved the use of the term “Arduino” for its own designs.
The Arduino logo is a registered trademark.

You will sometimes find builds that look like official Arduino boards, but are not produced by the Arduino team. Some manufacturers use “-duino” or “-ino” in the product name, such as Freeduino, Funduino, Diavolino, Youduino, etc. Some, like boards made by SainSmart, use only the model name (Uno and Mega2560 for example).

Due to a dispute between the company created by the original founders (Arduino LLC) and a different company created by one of the original founders (Arduino SRL), Arduino LLC uses the Arduino trademark in the United States and Genuino elsewhere.

Some “manufacturers” claim to be selling an Arduino board, but are actually just a copy using the trademark without permission.
Massimo Banzi has dedicated a section of his blog to these blatant unauthorized copies.

The main point to remember here is that you can copy the schematics, the bootloader code, the Arduino IDE code and use them to create your own version (open source principle) .
Just don’t call it ‘Arduino’.

What can you do with an Arduino?

In addition to the ease of programming made possible by the Arduino IDE, the other great feature of an Arduino is the capability of the microcontroller on which it is based.
With a few extra shields readily available, a wide selection of inexpensive sensor modules and actuators, there really isn’t much you can’t do with an Arduino.
The condition is to keep in mind a few basic constraints: memory, clock frequency, peripheral output currents and voltage levels.

Here are some possible applications for an Arduino:

Measurement and detection

  • Automated Weather Station.
  • Lightning detector.
  • Tracking of the sun for orientation of the solar panels.
  • Radiation monitor.
  • Automatic wildlife detector.
  • Home or business security system.

Control

  • Little robots.
  • Rocket or airplane model.
  • Multi-rotor drones.
  • Simple CNC for small machine tools.

Automating

  • Automated greenhouse.
  • Automated aquarium.
  • Laboratory sample shuttle robot.
  • Precision thermal chamber.
  • Automated electronic test system.

What is a Raspberry Pi ?

What is a Raspberry Pi

A Raspberry Pi is a small, credit card-sized computer that can be used with a variety of input and output hardware devices, such as a monitor, TV, mouse, or keyboard, to create a fully functional personal computer at an affordable price. This article will cover the different models of Raspberry Pi currently available, their key features, and their potential uses.

What Is Raspberry Pi?

The evolution of computers has led to the creation of the Raspberry Pi, a small, low-cost computer that is accessible to people of all backgrounds and skill levels. While computers have become commonplace in many parts of the world, they are still not widely available in developing countries. The Raspberry Pi was developed by the Raspberry Pi Foundation in the UK as a solution to this problem, providing an affordable and easy-to-use computer that can be used for a variety of purposes, including learning programming languages and managing networks. The Raspberry Pi is a single-board computer about the size of a credit card and can be connected to a variety of hardware devices such as a keyboard, mouse, and monitor. It has gained increased popularity in recent years due to its versatility and affordability.

How does Raspberry Pi work?

The Raspberry Pi is a compact and programmable device that contains the essential features of a motherboard, but does not come with peripherals or internal storage. To use it, you will need to insert an SD card with the operating system installed into the designated slot in order to boot the computer. The Raspberry Pi is compatible with Linux OS, which helps to reduce the amount of memory required and allows for a wide range of potential applications. After setting up the operating system, you can connect the Raspberry Pi to output devices like monitors or TVs via HDMI, and input devices like mice and keyboards. The specific uses and applications for the Raspberry Pi depend on the user and can vary greatly.

Top 6 Models of Raspberry Pi 

There are many different models and generations of Raspberry Pi single-board computers to choose from, which can be confusing for those interested in purchasing one. Here is an overview of some of the notable models available on the market:

1. Raspberry Pi Zero

This is the cheapest model offered by the company, costing as little as $5. It is similar in size to the Raspberry Pi 1 Model B+ and has the same processor and 512 MB of RAM, but does not come with built-in Wi-Fi or Bluetooth. However, it can be made internet accessible through USB. The slightly more expensive Raspberry Pi Zero W includes Bluetooth 4.0 and built-in 802.11n Wi-Fi connectivity.

Raspberry Pi 0

2. Raspberry Pi 1

The Raspberry Pi 1 Model B was released in 2012 and has a standard size for future releases. It originally had 26 GPIO pins, 256 MB of RAM, and a single CPU core. In 2014, the Raspberry Pi B+ was released with a starting RAM capacity of 512 MB and 40 GPIO pins, which became the standard for all subsequent models. The Raspberry Pi Model B+ costs $25 and includes four USB ports and an Ethernet connection. The Pi 1 Model A+ ($20) has a faster CPU processing speed but does not come with an Ethernet connection.

Raspberry Pi 1

3. Raspberry Pi 2 B

This model was released in February 2015 and features significant improvements in memory and speed, with 1 GB of RAM. It is the standard size, with 4 USB ports and is currently priced at around $35.

Raspberry Pi 2B

4. Raspberry Pi 3

The Raspberry Pi 3 B was released in 2016 and the B+ version, released in 2018, has a faster processing unit, Ethernet (802.11ac), and Wi-Fi than the earlier version. It is suitable for a wide range of uses, with standard HDMI and USB ports, 1 GB of RAM, and Wi-Fi and Bluetooth connections in addition to Ethernet. It does not generate much heat or consume a lot of power, making it suitable for projects that require passive cooling and can be purchased for $35.

Raspberry Pi 3

5. Raspberry Pi 4B

This model was released in 2019 and has a range of memory capacities from 2 GB to 8 GB of RAM. It also has a faster 1.5 GHz processor and a mix of 2.0 and 3.0 USB ports. It is suitable for virtually any use case with a high enough RAM capacity to meet the needs of even dedicated programmers. The price ranges from $35 to $75 depending on the memory, and all versions come with all connectivity options.

Raspberry Pi 4B

6. Raspberry Pi 400

This model is unique in that it is designed in the form of a keyboard and was launched in 2020. It operates with 4 GB of RAM and includes standard USB ports. It can be used as a home computer with just a monitor and mouse, and is suitable for use in classrooms. It costs $70.

Raspberry Pi 400

Top 10 Features of Raspberry Pi

Raspberry Pi is a small, low-power computer that is popular for DIY projects and educational purposes. It has a variety of features that make it a versatile and capable device, including:

  1. A Central Processing Unit (CPU) that is the brain of the computer and performs instructions using logical and mathematical operations. Raspberry Pi uses the ARM11 series processor on its boards.
  2. An HDMI port that allows the device to output video to an HDTV using an HDMI cable.
  3. A Graphic Processing Unit (GPU) that speeds up image calculations.
  4. Random Access Memory (RAM) where real-time information is stored for easy access. Different Raspberry Pi models come with varying RAM capacities, with the Raspberry Pi 4 currently having the highest at 8GB.
  5. An Ethernet port that allows for wired internet access and connection to routers and other devices.
  6. An SD card slot where users must insert an SD card that contains the operating system and serves as a storage device.
  7. General Purpose Input and Output (GPIO) pins that are used to interact with other electronic circuits and can be programmed to read and control electric signals.
  8. LEDs that provide status information about the Raspberry Pi unit, including power status, SD card activity, and Ethernet connectivity.
  9. USB ports that allow the computer to connect to peripherals such as a keyboard, mouse, and hard drives.
  10. A power source connector that typically uses a 5V micro USB power cable and the amount of electricity consumed depends on the use and number of connected hardware devices.

Takeaways

Raspberry Pi has been extremely popular, selling 46 million units in its first ten years according to the CEO of Raspberry Pi Limited. The device is used by IT professionals for a variety of purposes, including testing new software and networks, and has a significant presence in the business and industrial markets, comprising 44% of annual sales. A Raspberry Pi 5 model is currently in development.