Repository navigation
Expand file tree
/
Copy pathpoe.html
More file actions
127 lines (111 loc) · 5.18 KB
/
Copy pathpoe.html
File metadata and controls
127 lines (111 loc) · 5.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Sophia Li: Desktop Companion
</title>
<!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<link rel='stylesheet' href='css/stylesheet.css' type="text/css"/>
<script src="js/jquery-1.7.2.min.js"></script>
</head>
<body>
<div class="content">
<div class="container">
<div class="navbar">
<table class="navtable">
<tr>
<td><a href="index.html">Home</a></td>
<td><a href="resume.html">Resume</a></td>
<td><a href="about.html">About</a></td>
<td><a href="contact.html">Contact</a></td>
<td><a href="http://blog.justsophie.com">Blog</a></td>
</tr>
</table>
</div>
</br>
<h1 style="margin-bottom:0;"><a href="portfolio.html">Portfolio</a>.Desktop_Companion</h1>
<table class="navtable2">
<tr>
<td><a href="pendulum.html"><</a></td>
<td><div id="list"><font color="#5cd9fd">LIST</font></div></td>
<td><a href="walle.html">></a></td>
</tr>
</table>
<div class="proj_list">
<a href="website.html">website; </a>
<a href="edwin.html">edwin; </a>
<a href="pseudos.html">pseudOS; </a>
<a href="pendulum.html">pendulum; </a>
<a href="poe.html">desktop_companion; </a>
<a href="walle.html">wall-e; </a>
<a href="underwater.html">underwater_vision; </a>
<a href="jimmy.html">jimmy; </a>
<a href="genecar.html">genetic_car; </a>
</div>
</br>
> ./intro</br>
<iframe src="https://www.youtube.com/embed/BquFV0vlMlE?rel=0&controls=1&showinfo=0" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
</br>
<a href="https://github.com/imPoEssible">download source code</a></br>
<a href="http://poe.olin.edu/2015/impoessible/">visit project website</a></br>
</br>
> ./stats</br>
Status: Completed Dec/2015</br>
Languages: Arduino C, Python</br>
Software: OpenCV, Tkinter, <a href="http://www.elcojacobs.com/shiftpwm/" target="_blank">ShiftPWM</a></br>
Hardware: Arduino Uno, Raspberry Pi2, PiTFT</br>
RGB LEDs, Photoresistor, MDF Housing</br>
Documentation: Complete</br>
</br>
> ./documentation</br>
<div class="text_holder">
Principles of Engineering (POE) is a class that all Olin students are required to take as part of their diploma. The core goal of this class is to bring together students that have different areas of experiance (mechanical, electrical, software) and have them build a really cool project that integrates everything.</br>
</br>
Our team built a desktop companion that has a passive idle motion sequence, but will respond to external stimulus. The "brain" of the piece is a RaspPi connected to a PiTFT display. The actuation of the spines and the color changing LEDs are controlled via an Arduino that is hooked to the RaspPi via a serial cable. My main contribution to this project was the face detection with OpenCV and the expression display on the mini-LCD, the C code for the Arduino in order to get the spines of the sculture moving according to the relevent inputs, and the overall state machine responsible for the sculpture's ability to respond to different stimuli.</br>
</br>
Because all the important calculations were done on the RaspPi, I had to be careful about optimizing my code since the RaspPi would get hung up on the OpenCV operations if I used them too liberally. It was an interesting challenge, and in the end I had to sacrifice accuracy of the facial recognition for an increase in general responsiveness for the whole sculpture as a whole. I'd like to spend more time on this problem in future contexts, so I'm definitely looking for more opportunities to do heavy calculations with a Pi on other projects.</br>
</br>
Some of the things the sculpture responds to are:</br>
</br>
Sleep when it's dark, wake up when it gets brighter.</br>
<img title="source: imgur.com" src="http://i.imgur.com/S1MOgYe.gif" height="300px">
</br></br>
Respond with surprise when the front panel is knocked.</br>
<img title="source: imgur.com" src="http://i.imgur.com/R2MoYRf.gif" height="300px">
</br></br>
Recognize faces, then get excited when the person smiles.</br>
<img title="source: imgur.com" src="http://i.imgur.com/BIIzC1G.gif" height="300px">
</br></br>
Awww, it's too cute! </br></br>
</div>
<div class="text">> </div>
<div class="cursor">|</div>
</br>
</br>
</div>
<!-- <div class="footer">© Sophia Li 2016</div> -->
</div>
<script type="text/javascript">
$(".proj_list").hide();
$(document).ready(function(){
setInterval('cursorAnimate()', 800);
setInterval('$(".proj_list").hide()', 10000);
$("#list").hover(function(){
$(".proj_list").show();
},
function(){
$(this).removeClass("hover");
});
});
function cursorAnimate(){
$('.cursor').animate({
opacity: 0
}, 'medium', 'swing').animate({
opacity: 1
}, 'medium', 'swing');
}
</script>
</body>
</html>