Difference between revisions of "2010910 pi workshop notes"

From Hackuarium
Jump to navigation Jump to search
Line 67: Line 67:
 
Everything in Linux is either a FILE or a DIRECTORY <br>
 
Everything in Linux is either a FILE or a DIRECTORY <br>
  
"man" stands for manual and gives instructions on how to use commands, eg. "man cat"
+
man
"pwd" shows the directory we're in <br>
+
stands for manual and gives instructions on how to use commands, eg. "man cat"
"ls" lists all items in this directory <br>
+
pwd
"ls -ailh" give the size of all files in the directory <br>
+
shows the directory we're in <br>
 +
ls
 +
lists all items in this directory <br>
 +
ls -ailh
 +
give the size of all files in the directory <br>
  
"ctrl c" cancels all commands <br>
+
rm -r NAME
"ctrl l" cleans the screen <br>
+
remove directory
  
"sudo -s" login as root <br>
+
rm NAME
"exit" leaves root mode <br>
+
remove file
  
"cat [file name] | less" -> the pipe character "|" will take the output of one command into the next command<br>
+
ctrl c
 +
cancels all commands <br>
 +
ctrl l
 +
cleans the screen <br>
 +
 
 +
sudo -s
 +
login as root <br>
 +
exit
 +
leaves root mode <br>
 +
 
 +
cat [FILE NAME] | less
 +
-> the pipe character "|" will take the output of one command into the next command<br>
  
 
=Bash scripting=
 
=Bash scripting=

Revision as of 12:45, 10 September 2016

Intro

Raspberry Pi 3 computer
OS (Raspbian) loaded on SD card
All GPIO pins are flexible 3.3V OUT or IN (will generate floating voltage when not programmed)
GPIO can be programmed using gpio utility: http://wiring.com/the-gpio-utility/
UART pins carry data (RX=receive, TX=transmit), allows connection of devices (GPS), 3V->3V, GND->GDN, RX->TX, TX->RX
Sends text signals, each character encoded in 8bits ("packed" encapsulated into a "start bit" and a "stop bit")
Speed is 9600 Baud (1 Baud = 1 bit per sec)
To access this data, you can either use a Python script, or a software called "screen"
directory "/dev/ttyACM0 9600" contains a new file that represents the connexion to a device (arduino, printer, etc.)
I2C protocol
For example: BMP280 sensor temperature and pressure sensor (4pins=3V, GND, SDA, SCL)
On pi, up to 127 sensors can be connected to the SDA and SCL ports. Each device has a fix-programmed specific address.
i2c-tools is a program that allows to detect from all these sensors using the i2cdetect protocol.
"sudo raspi-config" to configure the pi computer
Step 1. Tell pin to be GPIO2
Step 2. Tell pin to be ON or OFF
2 ways of accessing the pins: GPIO# or pin#
"GPIO-g" flags to GPIO#

First test

If we want to connect the LED on the GPIO4 port:

Controlling GPIO ports using Python:

Or using BASH (Shell) command line (UNIX language):
sudo -i
echo "4" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio4/direction
echo "1" > /sys/class/gpio/gpio4/value <-turns it on
echo "0" > /sys/class/gpio/gpio4/value <-turns it off

Or GPIO utility command:
gpio -g mode 4 out
gpio -g write 4 1 <-turns it on
gpio -g write 4 0 <-turns it off

The Operating System

An OS is a piece of software that people wrote to use a computer in an easy and structured way.
Linus is the kernel (not an operating system), robust, versatile, stable.
Operating system is Raspian in our case.

Linux always has a BASH (Shell) terminal: type something, press enter, view output.

The terminal uses: arrows
enter key (execute)
tab key (autocomplete)

Everything in Linux is either a FILE or a DIRECTORY

man

stands for manual and gives instructions on how to use commands, eg. "man cat"

pwd

shows the directory we're in

ls

lists all items in this directory

ls -ailh

give the size of all files in the directory

rm -r NAME

remove directory

rm NAME

remove file

ctrl c

cancels all commands

ctrl l

cleans the screen

sudo -s login as root
exit leaves root mode

cat [FILE NAME] | less

-> the pipe character "|" will take the output of one command into the next command

Bash scripting

==test1:==

nano myfirstscript.txt
#! /bin/bash"
echo Hello!
echo World!
whoami
chmod +x myfirstscript.txt

->makes the file executable -> into some program that you can run

./myfirstscript.txt

-> executes the file

==test2:==

nano mysecondscript.txt

--

#! /bin/bash
echo Hello!
echo World!
whoami
mkdir woz
touch woz/niak.txt

--

chmod +x mysecondscript.txt
./mysecondscript.txt