War on Education

  • Privatization of Education
  • Arduino
  • Servo motor
  • ​Motion sensor

​In 2010, when I was a student at University of California (UCSD), the president of the UC system, Yudof, raised the tuition of all UC schools and there was a tremendous backlash from the students. Predating the occupy wall street movement, students occupied UC buildings and many blamed Yudof for the tuition increase. This project was meant as a deeper view of the environment that lead to the tuition hikes.

The original statement of the piece at the time of creation:


"In contemporary America, declarations of war are not shocking anymore. We are, to a large extent, a waring society. We tend to collectively find figure heads to blame for any issue which sparks outrage, or that has been highlighted by the media. If we don't like something we declare war on it, and get the “bad guys.” Even our criminal justice system is based on revenge. Instead of carefully examining the root cause or fundamental flaw(s) we respond with a knee jerk reaction, immediately ready to blame someone or something (usually someone), often releasing energy and effort on less than deserving targets. The results leave certain parties overly blamed, while the tropisms that set the stage for the unfolding of the issue remain firmly in place. Meanwhile, all collective energies get expelled on the few pieces of the puzzle that are in the spot light for the moment."

Declaration of war emanating from the archetypal robotic bad guy:


"Fueled by the news of and the reactions to the UC tuition hikes [2010], we hereby declare a War on Education, not only as a semi subversive criticism of the Corporate-Privatization-Education-Complex, but as a critique of the criticisms. We feel the efforts involved in blaming President Yudof, The State, or the UC Regents, although perhaps emotionally therapeutic, might be better spent focused on the fundamental issues. These root causes seem to have more to do with the relatively slow take over of the higher education system by corporations and the passive attitudes most have taken towards privatization in general, as well as an unconditional respect for the free market. Whether it's due to corporate greed, misplaced state priorities, the republican party, Yudof, conspiracy, or a combination of some or all of these the result is the same: we are the toad who dies in the slowly boiling pot of water, never noticing the gradual danger. Although this might be the boiling point, it's going to take a lot of careful effort to get out of the pot, and getting mad at the water may be counterproductive."


This project was conceived, constructed and implemented by:

Bobby Bray

Trevor LeVieux

Bryan Oczkowski


We made an all encompassing robotic figure head to represent the easy uncomplicated targets that many tend to blame in times of crisis. When a person walked by a declaration of war on education was heard, an LCD displayed a shortened version of the same declaration, and the mouth of the archetypal head moved in a repetitive motion.

When / Where

On March 15, 2010 this project was unveiled on UCSD's campus.


We Used three Arduinos, a motion sensor, a Waveshield, an LCD shield, and a servo. The motion sensor was set to detect people walking by, and when triggered would send a voltage to the LCD shield, which was connected to the same Arduino that had the motion detector attached. This same Arduino (Mega) sent periodic on/off signals to a second Arduino controlling the motor which makes the mouth move. In addition, the first Arduino sent an "on" signal to a third Arduino, which had the Waveshield attached. The Waveshild held an audio recording of the declaration of war on an SD card, which played when triggered.


If we didn't someone else would, just doing our job, etc.


Arduino Code


* This code is for an Arduino Mega.
* It detects motion using a motion sensor, which turns on a scrolling text on an
* LCD Sheild. In addition it sends signals to two other arduinos: one with a Wave Sheild
* attached which holds and plays sound samples, and an arduino which controls a motor
* that moves a robotic mouth.
* //////////////////////////////////////////////////
* //making sense of the Parallax PIR sensor's output
* //////////////////////////////////////////////////

* Switches a LED according to the state of the sensors output pin.
* Determines the beginning and end of continuous motion sequences.
* @author: Kristian Gohlke / krigoo (_) gmail (_) com / http://krx.at
* @date: 3. September 2006
* kr1 (cleft) 2006
* released under a creative commons "Attribution-NonCommercial-ShareAlike 2.0" license
* http://creativecommons.org/licenses/by-nc-sa/2.0/de/
* The Parallax PIR Sensor is an easy to use digital infrared motion sensor module.
* (http://www.parallax.com/detail.asp?product_id=555-28027)
* The sensor's output pin goes to HIGH if motion is present.
* However, even if motion is present it goes to LOW from time to time,
* which might give the impression no motion is present.
* This program deals with this issue by ignoring LOW-phases shorter than a given time,
* assuming continuous motion is present during these phases.


#define pirPin 49 //the digital pin connected to the PIR sensor's output
#define ledPin 13 //the digital pin connected to the LCD
#define samp1Pin 45 //a digital pin connected to arduino w/ waveshild samples
#define samp2Pin 42 //a digital pin connected to arduino w/ waveshild samples
#define motorPin 37 //controls mouth

LiquidCrystal Library - Autoscroll

// include the library code:
//the time we give the sensor to calibrate (10-60 secs according to the datasheet)
int calibrationTime=30;

//the time when the sensor outputs a low impulse
long unsigned int lowIn;

//the amount of milliseconds the sensor has to be low
//before we assume all motion has stopped
long unsigned int pause=50;

boolean lockLow=true;
boolean takeLowTime;

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //for Arduino Mega
//char words[277];

void setup() {

//these pins are for the Wavesheild to recieve

// set up the LCD's number of columns and rows:

//lcd.noCursor(); //not needed i think
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
// digitalWrite(pirPin, LOW);

//give the sensor some time to calibrate
Serial.print("calibrating sensor ");
for(int i=0; i < locklow=" false;" takelowtime=" true;" lowin=" millis();" takelowtime=" false;"> pause){
//makes sure this block of code is only executed again after
//a new motion sequence has been detected
Serial.print("motion ended at "); //output
Serial.print((millis() - pause)/1000);
Serial.println(" sec");

void declareWarOnLCD() {

char words[ ]="We hereby declare a War on Education not only as a semi subversive criticism of the Corporate-Privatization-Education-Complex, but as a critique of the criticisms which neglect the fundamental issues.";
char words2[ ]="The root causes involved include the relatively slow take over of the higher education system by corporations, the passive attitudes most have taken towards privatization in general, and an undeserving unconditional respect for the business model.";
// set the cursor to (0,0):

digitalWrite(samp1Pin, HIGH);
delay (500);
digitalWrite(samp1Pin, LOW);

// digitalWrite(motorPin,HIGH);
for (int thisChar=0; thisChar < thischar=" 0;">