PiCars

Linux Basics

Software

Here's some software you can use to manage the PiCar, and any linux server or device.

         Demo Screenshots:

            image.pngimage.png

         Demo Screenshots

image.pngimage.pngimage.png

Commands

These PiCars primarily run Linux. The specific distribution of Linux being Raspbian, which is based on Debian

These are some basic Linux commands that will help you get through setup. These are very basic, and I can't even touch on the thousands of possible commands and their combinations. This will just allow you to get through setup, and start driving.

Navigation

To list all files in a folder, execute:

ls

To enter a folder, execute: 

cd (folder)

To leave a folder, execute:

cd ..

To go to your home directory, execute:

cd ~

File Editing

To edit or create a text file, execute:

nano <filename>
Permissions

If you ever do not have sufficient access or permissions to a file, type:

sudo <your command>
Power Controls

To turn on the pi after a shutdown, plug it in.

To turn off the pi, execute:

sudo shutdown now

To reboot the pi, execute: 

sudo reboot now

If you have any other questions, google and stack overflow are your friends. Don't be afraid to look things up... I needed to a lot. :)

If you want to contact me (Liev) you can E-Mail liev@dorfman.net 

Step-By-Setup Setup

This is a Step-By-Step guide to setup, update, and use the Raspberry PiCars. Each Page is a different section, and between them, you can stop and take a breather... You'll need them.

If you want to contact me (Liev) you can E-Mail liev@dorfman.net. I'm happy to help!

Step-By-Setup Setup

1. Installing An OS!

NOTE: Any references to the network "StemRoom" should be replaced with "StemSpot"

Step 1: Prerequisite Software Installation

    1. Installation should be pretty simple. Just click through the prompts, and use the default settings.

      image.png

      image.pngimage.png

      image.pngimage.png

       

    2. After it gets installed, you can close out of the notepad opened.
  1. Travel Router - This is used to create the network "StemSpot." While you are configuring, setting up, communicating, and driving the cars, both the client, and car need to be connected to the router. More information here: (You'll need to be logged in to access)

Step 2: Let's Get Started! - Install the OS

Are you ready? Let's put some of those prereqs to work!

  1. Open Raspberry Pi Imager
  2. Insert a Micro SD Card into the computer with Raspberry Pi Imager, to install Raspberry Pi OS on the SD.
    1. The Raspberry Pi Device is "Raspberry Pi 3"

      SvHimage.png

    2. The Operating System is "Raspberry Pi OS (Legacy 64-bit) Lite"

      image.png

    3. Make sure the storage device is the SD card for the PiCar.

      image.png

      image.png

  3. Press "Next", and then Select "Edit Settings"

Copy these settings exactly:

  1. Set Hostname: PiCar<Num> (Replace the hostname "PiCarNum" with PiCar followed by the ID (1,2,3, or 4) Ex: "PiCar2")
  2. Set Username and Password:
    1. Username: pi
    2. Password: STEMROOM6041
  3. Configure Wireless LAN: For WiFi passwords, click here You'll need to be logged into an account with access for it to function.
  4. Set Locale Settings:
    1. Time Zone: America/New_York
    2. Keyboard Layout: us
  5. Services:
    1. Enable SSH: On
    2. Use Password Authentication: True
  6. Options: No Change

image.pngimage.png

You can leave the options tab default.

Step 3: Revving Up The Pi!

  1. You can now remove the SD Card from the computer, and insert it to the Pi.
  2. Insert Batteries, connect Pi Power, and wait for it to start up. Wait 5 Minutes until the next step.
  3. No... I mean it. Set a 5 minute timer, and wait. This is a first startup for the Pi, and you'll have to give it some time to setup the filesystem, and connect to the network.
  4. Make sure the computer you're using is connected to the "StemSpot" network, or all the following steps will not work.
  5. Open Putty
    1. Under "Host Name (or IP address)" Enter the hostname you set before. Ex: PiCar2

      image.png


    2. Select Open, and wait for it to connect
      1. On the off chance it does not connect, you can try setting the IP address of the car using an app like Fing to scan for the device.
    3. Enter the username: pi
    4. Enter the password: STEMROOM6041 Key presses for passwords don't show. After typing, press enter.
  6. You should now see a screen like this:image.png
  7. Update the Pi - To update the pi, there are two separate, but similar commands you will need to enter. Remember to only type one in at a time, and let it run. You can right-click on the center of the PuTTY window to paste
sudo apt update -y
sudo apt upgrade -y

Now, just reboot the Pi, and the OS will be updated.

sudo reboot now

Step 4: The Nitty Gritty

Now, we'll setup some custom settings and software to get everything running smoothly.

Reconnect to the pi using PuTTY, and use the same credentials

Wi-Fi disaster recovery script.
  1. Open your home directory
    cd ~
  2. Make the script using nano
    nano wifirecover.sh
  3. Paste in the following code by copying the text in the computer, and right clicking on anywhere in the putty window.
    ping -c4 google.com > /dev/null
    
    if [ $? != 0 ]
    then
      echo "No network connection, restarting wlan0"
      /usr/sbin/ifconfig wlan0 down
      sleep 5
      /usr/sbin/ifconfig wlan0 up
    fi
    
    1. Use the keyboard combination Ctrl+X, Then press Y, Then press Enter, to exit
  4. Now, we'll install cron. This lets you schedule tasks for certian times. In this case, it will check for internet connection intermittently.
    sudo apt install cron
  5. Crontab uses a text file for configuration, so we'll open it now.
    sudo crontab -e
  6. Select Nano as the text editor
  7. Add this exact line to the end of the text file by copying in the computer, and right clicking on anywhere in the putty window.
    1 * * * * /bin/sh /home/pi/wifirecover.sh >/dev/null 2>&1
  8. Use the keyboard combination Ctrl+X, Then press Y, Then press Enter, to exit

YIPPPEEEE!!!! Your Operating system is now installed, and ready to install the PiCar Code!!!

Step-By-Setup Setup

2. Installing the Code!!!

Part 1: Dependencies

The software relies on other programs to run smoothly. We'll install these now. If not already, connect using PuTTY.

  1. Install Main Dependencies 
    sudo apt install git python3-xyz python3-pip python3-setuptools python3-flask -y
    
    sudo pip install django-templates
  2. Now, we're going to install the official PiCar-V code.
    cd ~/
    git clone https://github.com/sunfounder/SunFounder_PiCar-V.git
  3. Enter the directory
    cd ~/SunFounder_PiCar-V	
  4.  Install smaller dependencies
    sudo ./install_dependencies
  5. VERY IMPORTANT!!! REBOOT THE CAR
sudo reboot now

Part 2: Extra Settings

In this part, we'll enable I2C in the Pi's Config. This allows you to control the motors. Don't worry, this one's quick, and you're almost ready to drive :}}}}

  1. Enter the Raspberry Pi config
    sudo raspi-config
  2. Select interface options by pressing the number for the option using your keyboard.
  3. Enable I2C by moving down to the option and pressing enter.
  4. You can use "esc" to exit.

Part 3: Drivers and Services

If not already using the batteries, connect the Pi to the batteries.

Now, we'll install the drivers for the servos on the car, and we'll write some code to ensure the program runs on boot.

1. Navigate to the PiCar code directory

cd ~/SunFounder_PiCar-V

2. Run the Servo Setup Script - This will move servos in the car, so make sure it is on the floor in an open space.

picar servo-install

3. This next part sets up AutoStart for the remote control program. We'll make a new "service file" so the pi knows to start it after booting.

sudo nano /lib/systemd/system/PiCar.service

4. Paste the following code, then exit.

[Unit]
Description=PiCarServer
After=multi-user.target

[Service]
Type=idle
ExecStartPre=/bin/sleep 10
ExecStart=/usr/bin/python3 /home/pi/SunFounder_PiCar-V/remote_control/manage.py runserver 0.0.0.0:8000

[Install]
WantedBy=multi-user.target

5. Now we'll enable the service with the following commands.

sudo systemctl daemon-reload
sudo systemctl enable PiCar.service

DONE! The next page explains how to connect to the car.

Step-By-Setup Setup

3. Driving

This is it! You're now ready to drive the PiCar around.

Remember: Some roaming functionality is not perfect yet. We're working on getting it all up and running.

Connecting...

  1. Laptop - Make sure your laptop or client is on: "StemSpot"
  2. Using the name of the car, you can connect to it in your browser, like: http://PiCar<num>:8000 Ex: http://PiCar3:8000

You can always use the IP if the car name is not working. Use an app like fing.

You should be met with this screen. This allows you to control the car, and make necessary calibrations in the settings tab.

image.png

image.png

Happy Driving!!!