Raspberry Pi Workshop
Burning Raspbian to an (micro)SD Card
For Mac:
1 2 |
brew cask install etcher |
For Windows:
Download and install Etcher: https://etcher.io/
Flash the image
- Open Etcher
- Select the Raspbian image
- Select the drive to which you want to burn
- Double check your selections
- This is critical, as you run the risk of overwriting the wrong drive (including your primary hard drive)
- Click “Flash!” and wait until Etcher writes and validates the image. This can take around 10 minutes.
- Once finished, eject your SD card
Ports
Plugging in your peripherals
- HDMI
- Keyboard and Mouse
- MicroUSB Power Supply (5V/2.1A)
Boot for the First Time
Get your MAC Address
- In the Raspberry Pi GUI, click the Terminal icon in the top left toolbar
- Run the command
ifconfig
- Locate the
wlan0
section and find and write down theHWaddr
; it should look something like:b8:27:eb:00:00:00
- This is the MAC Address for your wireless adapter on the Raspberry Pi; you will use it to register the Pi on the network
Register with the CMU Legacy Network
- Go to https://netreg.net.cmu.edu/
- Enter and select the link to “Register New Machine”
Select the “Legacy Wireless Network” and click the in-line “Continue” button.
Enter a name for your Raspberry Pi
Enter the wlan0
MAC address from the raspberry pi
Now we wait…
Changing the Default Settings
- Open Raspberry Pi Menu > Preferences > Raspberry Pi Configuration
System
- Change Password
- Change Hostname
- Boot to CLI
Interfaces
- Set everything to enabled, except VNC
Reboot
Open Terminal and type
1 2 |
sudo reboot |
CRON
- Cron is a task scheduler
- You can add tasks to cron using the
crontab
The command
1 2 |
sudo crontab -e |
will take you to the root crontab, meaning your tasks will run regardless of which user is logged in
You can also use special signifiers
A common example is to start a program a few seconds after startup:
1 2 |
@reboot sleep 10 && /usr/bin/nodejs /path/to/nodescript.js |
Connecting to WiFi
- This is easiest to do in the GUI
- To enter the GUI from commandline mode, run the command
startx
- Find the WiFi icon and select CMU
We are going to test to see if our connection has propagated by running the command
1 2 |
ping google.com |
If it returns with a list similar to this:
1 2 3 4 5 6 |
PING google.com (68.65.124.44): 56 data bytes 64 bytes from 68.65.124.44: icmp_seq=0 ttl=60 time=12.702 ms 64 bytes from 68.65.124.44: icmp_seq=1 ttl=60 time=13.478 ms 64 bytes from 68.65.124.44: icmp_seq=2 ttl=60 time=13.880 ms 64 bytes from 68.65.124.44: icmp_seq=3 ttl=60 time=12.818 ms |
then you are connected. If not, keep waiting.
SSH
- Once your pi is on the CMU network, you should be able to SSH into the device from your laptop
- Run the command (but fill in your own info)
ssh $USER@$URL
for example ssh pi@hostname.wv.cc.cmu.edu
It will ask if you want to add this to the list of known hosts, type Yes
Updating Packages
Linux has a built-in package manager called apt-get
We need to update the list of package repositories:
1 2 |
sudo apt-get update |
Next, we want to get the newest versions of all our packages:
1 2 |
sudo apt-get upgrade |
(this may take a while and require some user confirmation)
Installing Packages
Raspbian comes with Node.js installed, but the version is very old.
We need to add a new repository to our package manager:
1 2 |
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - |
Now, install Node.js:
1 2 |
sudo apt-get install nodejs |
Install and Configure Samba
Install Samba with:
1 2 |
sudo apt-get install samba |
Go to the Samba configuration folder:
1 2 |
cd /etc/samba/ |
Rename the configuration file (so we have a backup):
1 2 |
sudo mv smb.conf smb.conf.original |
Make and edit a new one:
1 2 |
sudo nano smb.conf |
- Copy this into new file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[global] workgroup = WORKGROUP netbios name = SAMBA server string = Samba Server %v map to guest = Bad User log file = /var/log/samba/log.%m max log size = 50 socket options = TCP_NODELAY SO_RCVBUF=819SO_SNDBUF=8192 preferred master = No local master = No dns proxy = No security = User # Share [Data] path = / valid users = pi read only = No create ma19 = 0755 directory mask = 0755 |
Set up a new password:
1 2 |
sudo smbpasswd -a pi |
Restart the Samba service:
1 2 |
sudo service smbd restart |
- On your Mac laptop, you can now mount the Raspberry Pi filesystem on your computer by going to Finder and typing
⌘+k
- Enter smb://pi@$yourIPAddress
Getting the example code
- Clone the repo to your Pi by running
git clone https://github.com/Making-Things-Interactive/button-twitter.git