Final Installation

Deautomatized at Parsons Thesis Show 2012.

 

Advertisements

Final Paper

My final paper for this project.

Deautomatized


Assembly Sketches

Assembly will be handled the following way. As a base for each mask a welding helmet will be used. Inside the helmet MyVu PMV and a microphone from wireless intercom are secured. On the outside of the helmet a webcam and a speaker from an intercom are attached. Covering each helmet is a cloth painted with a design, hiding all the guts and giving a more aesthetically pleasing look than a generic welding helmet. All the cabling goes to up to the ceiling and then along the wall to a box where the BeagleBoards, and power supplies (connected to an outlet) are located. Such a setup, while less mobile, solves the issue of needing to constantly recharge each helmet. Conceptually it reinforces our mutual interconnectedness.

Deautomatized Assembly 1

Deautomatized mask diagram

Deautomatized Assembly 2

Deautomatized setup


Prototype User Testing

For these prototypes I used two laptops with external cameras and Skype. The cameras were pointing outward from the laptop while Skype simulated the criss crossing of sight. A t-shirt was draped over each laptop to prevent the participants from making use of their peripheral vision, because that would be cheating.

The 1st test had as it’s goal to exit the room, it was just to get a look and feel for what it would be like to have your sight switched with somebody.

For the 2nd test participants were to pick up an object and carry it out of  a room.

Both tests made me reconsider the idea of making the participants having to do any sort of structured activity. It seemed tacked on and really unnecessary. Now the whole experience is entirely guided by the two users themselves.


Ubuntu 11.10 on BeagleBoard (rev C5)

When I had to set up my Beagleboard I had to jump around between several wikis, blogs and tutorials. So, I decided to compile it all in one place with some errors fixed.

This tutorial is meant to be followed from a linux command line. I used Ubuntu distro. If you don’t have it you can download an iso image from here, burn it and boot it straight from CD without installing anything on your harddrive. Sometimes Ubuntu has issues with wireless so if your’s doesn’t work just plug in directly with a cat5 cable.

Required supplies:

  • BeagleBoard rev C5 (obviously).
  • Formatted SD card of no less than 4 gigabites. If you have one that has been used before you’ll need to format it. To do that open the Disk Utility (System>Administration>Disk Utility), select the SD card and hit “Format Drive”. Make sure you don’t format your hard drive!
  • An LCD or some sort of S-Video device.
  •  5V power supply that ends in an “M” tip. Alternatively you can use USB to mini-USB cable.
  • USB hub.
  • USB mouse.
  • USB Wifi modem. This is optional but highly recommended. Without wireless you won’t be able to update the OS or install GUI.
  • AT/Everex serial cable. If you don’t have a serial port on your computer you will have to get a USB-to-Serial adapter as well.
If you need help wiring up the BeagleBoard refer to my previous tutorial on how exactly to do that.
=========================================================================

STEP 1 – Update

Your BeagleBoard should come preloaded with X-Loader and U-Boot. However, there is no way to tell if they’re out of date, so just to be sure I suggest updating them.

1) Get all the required packages for Step 1 & Step 2. If you already have all of these installed you can skip this.

sudo apt-get install wget xz-utils uboot-mkimage pv dosfstools btrfs-tools parted git

2) Instert the SD card in your computer.

3) Get the processor flashing script.

git clone git://github.com/RobertCNelson/flash-omap.git
cd flash-omap

4) Get the location of your sd card.

sudo ./mk_mmc.sh --probe-mmc

You will see something like:

Are you sure? I Don't see [/dev/idontknow], here is what I do see...
fdisk -l:
Disk /dev/sda: 500.1 GB, 500107862016 bytes 
Disk /dev/sdb: 3957 MB, 3957325824 bytes
mount:
/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)

/dev/sdb is my SD card. Your’s might have a different name and size. Notice that /dev/sda is 500GB, that’s my hardrive, do not accidentally format yours!

5) Run the script that creates the SD card for you.

sudo ./mk_mmc.sh --mmc /dev/sdb --uboot beagle_cx

6) Take out the SD card out of your computer, then:

  1. Plug Serial Cable in and Start Serial terminal program*
  2. Place MMC card in BeagleBoard
  3. Push and Hold User Button
  4. Plug-in Power
  5. Wait for U-boot countdown to finish, Let Off User Button
  6. Wait for Flashing/script to end
  7. Power down, remove and reformat MMC card to be used for STEP 2

* You can use “screen” straight from the terminal.

screen -U /dev/ttyUSB0 115200

=========================================================================

STEP 2 – Install Ubuntu 11.10 on SD card

In this step you will load up the SD card with actual Ubuntu OS.

1) Insert the SD card into your computer.

2) Get the OS image.

wget http://ynezz.ibawizard.net/beagleboard/oneiric/ubuntu-11.10-r7-minimal-armel.tar.xz

3) Verify Image.

md5sum ubuntu-11.10-r7-minimal-armel.tar.xz

Compare the check sum you get to the one below. If they match, you’re good to go. If not, re-download the image.

58092de96f8934da74ea00e6a7b8eccf ubuntu-11.10-r7-minimal-armel.tar.xz

4) Unpack image.

unxz -c ubuntu-11.10-r7-minimal-armel.tar.xz | tar xv

5) Install using the script included in the archive. The script will take 10-15 minutes to complete, so be patient.

cd ubuntu-11.10-r7-minimal-armel
sudo ./setup_sdcard.sh --mmc /dev/sdb --uboot beagle_cx
  • BeagleBoard Ax/Bx: beagle_bx
  • BeagleBoard xMA/B/C: beagle_xm
  • BeagleBone Ax: bone
  • PandaBoard Ax: panda
  • PandaBoard ES: panda_es

6) OPTIONAL. To have S-Video output instead of DVI use this:

sudo ./setup_sdcard.sh --mmc /dev/sdb --uboot beagle_cx --svideo-ntsc

Or if you’re using PAL format:

sudo ./setup_sdcard.sh --mmc /dev/sdb --uboot beagle_cx --svideo-pal

You should now have an SD card with the OS installed on it. Plug it into your Beagleboard, connect the screen, mouse, keyboard, wifi card, etc. Power on. After the kernel loads you should be able to use the command line interface. It will probably ask for a username/password, the default is below.

username:ubuntu
password:temppwd

=========================================================================

STEP 3 – Setup Networking

You will need to do this if you want the GUI, update, upgrade or install packages. Wire up the BeagleBoard and start it up. This step (and the following one) are all supposed to be run from the command line on your BeagleBoard.

WEP

If you have WEP encription on your router connecting is quite easy.
1) Check if the wireless device is connected and detected.

iwconfig

You will see something like:

lo no wireless extensions.

eth0 no wireless extensions.

wlan0 Iunassociated ESSID:off/any
Mode:Managed Channel=0 Access Point: 00:00:00:00:00:00
Bit Rate=0 kb/s Tx-Power:off
Retry:on RTS thr:off Fragment thr:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

2) If you don’t know your network’s name do a scan.

sudo iwlist wlan0 scan

Look for the ESSID you want to connect to and remember it.

3) Connect, substituting ESSIDNAME with the name of your network and PASSWORD with password for that network.

sudo iwconfig wlan0 essid ESSIDNAME key s:PASSWORD

WPA/WPA2

If you have WPA, this gets slightly more complicated. In short you’ll need to use wpa_supplicant and a configuration script.

1) Create a WPA config file using vi*

sudo vi wireless-wpa.conf

* vi is a command line text editor. All commands are executed by first pressing ESC, then typing it in, including the colon. Here are some basic commands:

  • arrow keys = move cursor
  • i = insert, goes in to text input mode at cursor position
  • x = delete character at cursor position
  • :q! = quit without saving
  • :wq = save and quit
  • :w = save without quitting
  • :dl = delete line

Hit “i” button and insert text below:

# config file using WPA/WPA2-PSK Personal key.

ctrl_interface=/var/run/wpa_supplicant

network={
ssid=”your router id”
scan_ssid=1
key_mgmt=WPA-PSK
psk=”your router password″
}

Press ESC then type “:wq” (without the quotes and yes, you need the colon in the beginning) and hit Enter.

2) Now create a script that will apply the config file to the wpa_supplicant process.

sudo vi wireless-wpa.sh

Press “i” and type in:

#!/bin/sh
iface=wlan0

#shut down interface
ifconfig $iface down

#set ad-hoc/management of wireless device
iwconfig $iface mode Managed

#enable interface
ifconfig $iface up

#stop any persistent wireless wpa2 sessions
pkill wpa_supplicant

#apply WPA/WPA2 personal settings to device
wpa_supplicant -B -Dwext -i $iface -c ./wireless-wpa.conf -dd

#obtain an IP address
dhclient -v -1 $iface

Press ESC then type “:wq” and hit Enter.

3) Change permission for the files you’ve just created.

sudo chmod 755 wireless-wpa.sh
sudo chmod 644 wireless-wpa.conf

4) Next run the shell script from the command line.

sudo ./wireless-wpa.sh

You’ll have to run this script every time you restart in order to use the wireless.

5) You should now be connected, but make sure anyway.

ping -c 3 www.google.com

If it gives you no errors, you’re in. If it fails on you, this is the place to start looking for solutions.

=========================================================================

STEP 4 – Get the GUI (optional)

It’s perfectly fine to run Ubuntu exclusively from the command line. In fact it’s preferable, in my opinion, if you know what you’re doing and the system resources are limited, which is the case with BeagleBoard. If you want a GUI, I recommend installing Lubuntu because it is lightweight and relatively easy to set up. It can run on 256MB of RAM (which is what BeagleBoard rev C5 has), other Ubuntu flavors like Xubuntu require at least 512MB of RAM. If you think even Lubuntu might be an overkill, you can find a complete wiki about installing GUI on low memory systems.

1) Update, upgrade and clean up.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get clean

2) Install Lubuntu without unnecessary stuff like games, office packages, gimp, etc. If you want those things, remove –no-install-recommends flag. Be warned though, if you do that the install might take several hours.

sudo apt-get install --no-install-recommends lubuntu-desktop

3) Upgrade the packages you just installed.

sudo apt-get dist-upgrade

4) Clean up residual files left over after installation.

sudo apt-get autoclean
sudo rm /var/cache/apt/archives/*.deb

5) Reboot.

sudo reboot

After reboot you should see the GUI. Now you can install packages you need using Synaptic.

=========================================================================

Sources:

http://elinux.org/BeagleBoardUbuntu
http://caleudum.com/how-to-connect-wifi-using-command-line-on-ubuntubacktrack/
https://help.ubuntu.com/community/Installation/LowMemorySystems#Preparing_for_Graphical_Environment
https://help.ubuntu.com/community/Lubuntu/Documentation/MinimalInstall


Wiring Up BeagleBoard (rev C5)

Here’s how I wired up the BeagleBoard for use in my thesis project; Deautomatized. There already exists a tutorial on the official wiki how connect your BeagleBoard out of the box. I though I’d add some visual aids to it. This tutorial is intended to be newbie friendly, since I found there to be a lack of such BeagleBoard tutorials online. Also, all the command line stuff in this tutorial is done from Mac, you should be able to follow along quite easily if you have Linux too. In case you happen to be using this tutorial for a different project you can skip certain parts like connection S-Video, web-cam, etc.

Parts I used:

  • BeagleBoard rev C5
  • MyVu Personal Media Viewer Universal Edition
  • Generic Dell LCD
  • USB hub
  • USB keyboard
  • USB wireless mouse
  • USB WiFi card
  • GigaWare web cam
  • SD card preloaded with Ubuntu OS

Cables, adapters, connectors:

  • HDMI to DVI cable
  • 3.5mm to RCA cable
  • S-Video cable
  • RCA to S-Video signal converter
  • Composite (RCA) Audio to 3.5mm adapter
  • AT/Everex serial cable
  • Serial to USB converter
  • 5V power supply ending in “M” tip

1. BeagleBoard

Make sure you don’t have a static charge on you before touching it!

BeagleBoard

BeagleBoard rev C5

2. Connect LCD

I used the LCD only for testing and prototyping purposes. The final iteration of my project used only S-Video output.

BeagleBoard HDMI to DVI

HDMI to DVI cable

BeagleBoard HDMI to DVI

Connect BeagleBoard to LCD via HDMI to DVI cable

3. Connect MyVu PMV

MyVu Personal Media Viewer Universal Edition does not come with RCA cable, let alone S-Video. Instead it has some useless AV cables for connecting it to hand-held cameras and portable DVD players. The pendant that they all plug into has a 3.5mm socket in it. So, went out and got 3.5mm to RCA cable and RCA to S-Video signal converter at RadioShack. If instead of a PMV you want to connect to a TV,  just plug it in using S-Video cable.

Please note: to connect PMV you have to use the RED plug on the RCA to 3.5mm cable for video output instead of the usual yellow. Consequently, you have to use the YELLOW and WHITE plugs for audio output. This is because MyVu uses a pinout different from normal for it’s 3.5mm socket (video and audio pins are switched for some reason).

BeagleBoard S-Video

S-Video cable

BeagleBoard S-Video

Connect the RCA to S-Video signal converter to one end of the S-Video cable

BeagleBoard S-Video

Plug the video jack from RCA cable into the signal converter (in my case was RED instead of yellow)

BeagleBoard Audio Connection

Plug the right and left audio of RCA cable into Composite Audio to 3.5mm adapter

BeagleBoard Audio Connection

Plug the Composite Audio to 3.5mm adapter into audio out on the BeagleBoard

MyVu RCA Connection

3.5mm end of the RCA to 3.5mm cable

MyVu RCA Connection

Plug the 3.5mm end into MyVu PMV pendant

4. Connect USB Peripherals

BeagleBoard rev C5 has only 1 USB port. I think xM has 4, so if you have that one you don’t need a USB hub.

BeagleBoard USB Connection

USB hub

BeagleBoard USB Connection

Plug the hub into USB port

BeagleBoard USB Connection

Plug keyboard, mouse, WiFi card and web cam into the hub

5. Connect AT/Everex Serial Cable

If you computer already has a serial port you don’t need Serial to USB converter.

Please note: some Serial to USB converters come with Rx and Tx pins reversed (pins 2 and 3). So if you connect your BeagleBoard and get no output in your serial terminal this is most likely the case. In order to remedy this you have to open up the serial end of the AT/Everex cable and re-solder pins 2 and 3 so the are switched. I will make a tutorial on how to do that sometime soon.

BeagleBoard AT/Everex Connection

AT/Everex cable connected to Serial to USB converter

BeagleBoard AT/Everex Connection

Plug the 5x2 end of the serial cable into the serial port next to 5V socket on BeagleBoard. Make sure the red cable is pointing towards pin 1 on the serial port.

BeagleBoard AT-Everex Connection

Plug the USB end of Serial to USB converter into your computer

6. Connect Power Supply

It has to be 5V and end in an “M” tip. I happened to salvage mine from an old WiFi router. Alternatively, you can get power from your computer via USB to mini-USB cable; there is a mini-USB port on the BeagleBoard. For the final iteration of my project I used a portable 5V rechargeable battery instead of an outlet.

BeagleBoard Power Connection

5V power supply ending in "M" tip

BeagleBoard_Power_Connection_2

Plug the tip into the 5V socket. Don't plug the other end into an outlet yet!

7. Connect SD Card

This isn’t absolutely necessary as BeagleBoard comes preloaded with enough for at least a test run. However, to make full use of it’s functionality you will probably need to load up an SD card with some sort of Linux OS. A tutorial on this coming up shortly.

BeagleBoard SD Connection

SD card

BeagleBoard_SD_Connection

Plug the SD card into card slot next to the USB port on BeagleBoard

8. Test It Out

Before you plug the power supply into an outlet you have to set up a serial session so you can communicate with the BeagleBoard. For that you have to use the terminal.

First you need to find out the location of your Serial to USB converter with this command:

ls /dev | grep tty

If is going to display a long-ish list of tty services, you might have to scroll up a bit. Eventually you’ll see something like this:

tty
tty.Bluetooth-Modem
tty.Bluetooth-PDA-Sync
tty.PL2303-00004006
ttyp0
ttyp1
ttyp2

In my case (I have a Mac) the converter is called “tty.PL2303-00004006”, your’s probably going to have a different serial number. On Linux it is going to be something like ttyUSB0

Now use the screen program to open up a serial terminal session with baud rate of 115200:

screen -U /dev/tty.PL2303-00004006 115200

(remember if you’re using Mac your device is going to have a different name)

The terminal will clear and you should see a flashing square in top-left corner. If you get some error telling you it couldn’t start the session try this: quit the terminal, unplug the converter, plug it back in, restart terminal again, execute the above command again.

Finally, you can plug the power supply into an outlet. In the terminal you should see a lot of text scrolling on by, the LCD should display solid orange, the S-Video device will display color bars. After the Linux kernel loads you should see a login prompt on your terminal. If you have the  Angstrom distro (comes by default with BeagleBoard) loaded up on the board username is root and for password just hit “Enter.” If you’re using an SD card loaded up with Ubuntu, then username = ubuntu, password = temppwd

Next up: how to run Ubuntu 11.10 on BeagleBoard


Technology

Deautomatized Concept Drawing 2The concept of this project was realized by building two masks that switch users’ sight, hearing and speech. Each mask consists of:

1) BeagleBoard. This is the core of each mask. All inputs are connected to and processed through these little things. You can purchase them from a number of sources outlined here. I’ve also made a tutorial on how to wire them up specifically for this project.

2) Web cam. I used cheap GigaWare web cams bought from RadioShack. It has a build-in microphone which is very useful for the purposes of this project.

3) MyVu Personal Media Viewer. These are glasses that have tiny LCD screens inside of them. They are now discontinued but you can get them relatively cheap on eBay. In particular I used the “universal” edition; it’s the one that comes with a bunch of AV cables.

4) An Intercom System. I got a two-way intercom system that includes 2 units. I simply took them out of the plastic shell and mounted them inside each mask as is.

6) Cabling. For each mask I had to get:

  • 5V power supply.
  • 3.5mm to RCA cable.
  • RCA to S-Video converter.
  • USB extension cable.
  • RCA extension cable.