Tag Archives: lecture notes

21w.789 lecture two notes

http://web.mit.edu/21w.789/www/syllabus12.html

Ways we screwed up: 
Didn’t agree on research questions beforehand so when we talked to people in parallel fashion, we explored different topics (yay data that’s hard to affinity group), e.g. one of us talked to people about how they share projects, and someone else did how people who use location services, and someone else asked specifically about a keyholding (indicating when rooms useful to multiple people, that only some people have open/close access to, are open) app

I wrote summaries of each of my question instead of interesting quotes

MITERS survey summary 
(talked to four people over an hour)
(# of people)

  • IRC used by two people for instant help
  • posting pics to facebook as project sharing (2)
  • facebook, forums, only give superficial “that’s cool” feedback when post pics (3)
  • users from hackaday gave more technical questions which ___ liked
  • email pictures to parents when major milestone, talk to them on phone (1)
  • find out about projects via facebook (2 people)
  • find out via google reader, blogs (1)
  • take pics with smartphone and instantly upload (1)
  • get camera out and upload to blogger, post ~2x/wk (1)
  • reddit sometimes discover projects (2)
  • call mom and talk about projects (1)
  • no good way to collaborate on engineering projects currently, solidworks not in cloud (1)
  • most of them project sharing in person at MITERS see what people are up to (4)
  • ask for help from people at MITERS if around (4)

My notes from class:
====
typical study, 1500 to 2500 notes

this week: go from data to project (project due in 2 weeks)

contextual design –> how things flow between people, spaces. how to understand reactions. how to figure out bottlenecks. physical medium, information flow

Flow model – for music. (cds, cars, work, homes). Info flow: who talk to (significant others, not so much family members)


=====
Conversation analysis — text logs starts and ends, requests. weilenmann — a paper. not allowed to call in fitting room – but perhaps texting would be okay.

crit incident analysis – used in usability analysis of existing products, or when beta

focus: grounded affinity analysis to organize large amounts qualitative data.  Not! to prove / disprove theories. (because only talk to 3 or 5 people). design something to work with what i’ve observed for these datapoints.

affinity can be very large — covering walls of room. 2500 sticky notes.

affinity — a hierarchy – raw data, exact quotes/observations, photos,

Find similar problems -> group and label. Then group again.

Comes from science – hard to know all the hypothesis before in field. so instead bottom up, collect lots of data and then develop theories.

Each note — 1 or 2 sentences, single idea.
Not problem for us, but in large groups — hard to find notes! know it exist but in 1000…
colleague — camera + projector -> talk and it will highlight on wall where note is (search text)

Themes — common terms, often exact quotes useful b/c that’s the order they have to think about it today

In lab / research –> try to get diverse team (marketing, biz, research, engineers, designers) because each person approach data differently. 4 to 5, 6 max.

Think about research questions when starting out
And how perspectives might bias our interpretation (if already have idea of what want to build)
Read note aloud so everyone knows and agrees what sort of groupings

GT Data can be used for years and years — public in academic so people can use it.
BH standard in industry — miss a lot of what’s going on if just grouping own insights instead of actual data quotes
New concepts —  quantity over quality (for us, 30 mins affinity, then 10 15 mins throw out ideas)


2500 data points
200 ideas
How to prioritize? e.g.

  • excited about idea (spend next 10-12 weeks on this!)
  • market size, will people pay for it / monetizable?
  • can build in scope of class
===
break after 40 minutes regroup
===
all communication done with intents (processes are isolated)
apk – essentially a jar file for each app
content provider — access contacts (through urls like rest services)
multiple activities per application
manifest file describes whole application — which activity start by default, which permissions (sensitive apis e.g. mic, video, phone, sms) will be used –> a way for developer to state to user what things will be done.
default activities take up full screen but can have floating / embedded within other apps
services — spawn thread to not block UI (so run in background). Start it as sticky — otherwise android will start kill apps when memory use too much, services are one of first thing — will know to restart app as soon as memory available)
Intents — one of coolest things on Android. glue between activities. 
— define abstract “I want to send this” and can open up UI menu –> user chooses how to fill the intent (all those apps have registered that they can “share a photo”)
safest way — stick with android sdk platform menus. 
Design philosophy — generic system level intents (share a photo) and any app that can handle it registers to do so
action_view -> launch browser or contact (e.g. 1st contact in contact list, REST services)
Debugging –> bring up chart to refer to lifecycle of activity
Activity priority list –> mobile still resource constrained. kill from bottom up -> hopefully foreground process (actual interact) not killed. hopefully not memory constrained (a lot of memory now on android devices).
Android Eclipse nice graphical to create layouts. res > xml for each activity in app. And nice graphical interface. Tab on bottom to go to xml file (change default names from button1,2,3 etc, tweak by fine degrees)
graphcontent -> as big as need to. fillparent –> as big as possible.
all things need height and width.
r.java searches “layout” source folder (the “xml” source folder is app specific to helloIOIO)
-> android creates R.java, automatically create constants for everything in xml file. Thus, get in .java “findViewById(R.id.test_button”)
easiest way –> email apk, on phone “install” button pops up
ddms -> screenshots
very latest ice cream sandwich –> also key combination for screenshots
iOS
iOS –> will need paid Apple Developer account, even to install on own device.
Treat “warnings” very seriously –> in c/c++ it is equivalent of error. syntax is almost LISP like
View controller has history of all windows -> android easy go one back, ios straightforward go back one or two or all the way to the beginning.
Background –> now can run in background.
ObjectiveC –> get used to long names (some 10 or 12 words long!)
Apps suspended when needed.
iPhone resource -> specifics, see links from a few years ago.

HOmewoRK
Solidify design idea into application concept
Class website -> reference existing things. Also, ACM library -> how are we different from what’s out there.
23 groups -> everyone go fast.
Set up development environment (hello world) so not held back later.
Proposal -> concise and not great literature, but rather (all the time to raise money for research group in real life). 
a need
and we know how to answer it
no one really likes to read these things! Giant stack to work through! >:( 
  • really irritating to read ones where not to the point
  • Main idea in first sentence
  • active verbs, use paragraphs, not “we we we” first word, use headings and subheadings (skimmable for navigational / outline)
  • Introduction -> direct motivation
    • not beginning of time “man has wanted to fly. structures are important to engineers”
  • Gantt –> how to manage time! very short.
  • Motivation –> summarize qualitative data collection. themes to design idea? how does app fit with data and themes? our methods? (to evaluate our study and data analysis) –> using inspiration from real people to fit into everyday life.
  • three emails, PDF and one hard copy. meet face to face.
Oral –> document it all on wiki (from single computer). Top two main findings from study. components needed (a server? app? face rec library? bar code reading?). Timer exactly 4 minutes, and unpresented = cannot grade on it. Everyone should present it / contribute it.
Hello world assignment.

Continually engage with users to refine idea.

diy nanofabrication class (nanomaker)

well, there is a long gap in my blogging
but to get back into the flow of microblogging / blogging everything, here is a screenshot of our first day slides from nanomaker, a class targeting underclassmen which I am randomly joining in as a junior.

Our first lab for this week is a CD spectrophotometer:
http://www.asdlib.org/onlineArticles/elabware/Scheeline_Kelly_Spectrophotometer/index.html

And we’re supposed to go through the intro to MATLAB:
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-094-introduction-to-matlab-january-iap-2010/

6.131 Power Electronics Notes

6.131, Power Electronics, has been a blast, even if it’s completely destroyed any belief I have that I can build a functional circuit. Lectures are awesome and Practical Electronics for Inventors is and awesome and completely readable / understandable book.

Here are the main analogies I have learned through 6.131 in terms of relating power electronics to mechanical mechanisms:

Totem pole: because your comparator’s square wave cannot directly drive FETs (not able to source enough currrent)

Boost converter: (e.g. takes 6V and turns into 15V — usu. cannot get it to gain more than 1 order of magnitude). Like winding up a fishing rod (inductor charging capacitor while diode prevents cap from discharging back into inductor), build up power (pool fishing wire behind you), and then release (snap fishing rod forward).
(thus, do NOT hook up without load because it is like winding up the fishing rod and and whacking the wall repeatedly, over and over, at some kHz aka many times per second).

Buck converter: (e.g. takes 15V and turns into variable 0 to 12V). — a switching amplifier (linear amplifier, like 7805, dumps extra power as heat, while switching stores in cap for later use).

transformer trades off voltage and current like mechanical gearbox trades off speed and torque. also, by power conservation, (and used to measure parasitics / Lleak and Lmag), short one side of transformer = short other side, open circuit one side = open circuit other side.
–> todo: reflecting things across the transformer

regulated voltage — a wall wart http://www.ladyada.net/learn/powersupply/ counts, and then can be further filtered ala 2.007 nano carrier with as switching power supply

===== debugging…
Also, circuit debugging things that 6.131 has taught me:

Getting crazy fuzzy on your 74HC delay circuit? (ringing) — check if you have bypass caps, both on your 12v and 5v rails. (For me, connection a cap across pins 14 and 7 didn’t work either, but dropping a cap across 5v rail worked instantly).

2125 debugging: does not required Vdd, merely requires Vcc and the inputs from the delay circuitry. Pin 2: input. Pin 7: output. On high side, measuring directly may not work (get fast flickering or no visible signal) — to measure high side output, stick probe gnd on pin 5 (gnd) and probe in 7 (output). Same for A (which cannot be measured without a load?)
Totem pole drawing max current when your high side signal from the delay circuit is plugged in?

Check that all the grounds are connected.

If you’re at MITERS, check that it’s not a sketchy scope probe / scope problem.

Do NOT build complicated circuits (e.g. control circuitry) straight on the protoboard, no matter how sure you are of building it correctly — you can spend hours  and have a short somewhere and be hard-pressed to diagnose it or rule your control circuit out as the source of your [short, bug]. Build it on the breadboard first — it really is actually must better than protoboard, no matter any concerns about breadboard sketchiness, the faster prototyping time is definitely worth it.

Building the delays and 555s with unclipped resistors and caps may not be a bad idea, since you’ll reuse these circuits and lot but will need to change the values from lab to lab.

Go-kart circuit from lab 2 is reused in lab 3 — make sure you have a working totem pole, or else that will eat unnecessarily into lab 3 time.

Start on the labs early! and ask for help. Even if it seems like a dumb circuit that should just work, if you’re stuck, asking an experienced circuiteer for help will work wonders and you’ll learn a ton about the circuit too, including all the individual parts which you’ll need to know to help anyone else debug and which you wouldn’t pay attention to if you simply breezed through to a working circuit.

your 74HC wants 5V, not 12V!

connect ALL your grounds.

==== misc from this week: lamp ballast:
to find the resonant frequency, you can try to calc by f = 1 / (2*pi*sqrt(L * C)) = (somewhere in 30 to 40 kHz) and measuring the exact L that you actually wound. alternatively, run the FETs on the totem pole (Vdd) at 12v (Vcc for the IR2125’s is 12V and pulled via a wire from the control circuitry, which you breadboarded on a separate board instead of protoboarded straight on the totem pole board, right?) and adjust the frequency (via pot on 555 or whatever you are using to generate square wave being fed into 311 comparator), sweeping the 30 to 40 kHz range until you found where your power supply is supplying the most current. For me, I found the current peaked at 0.38A at 12v at ~32 kHz (and diminishes to either side), while my calculated resonant frequency was closer to 35kHz. This was the magic sauce that led to my fluorescent bulb striking, yay!

also, you want to ground the ERR pins on the IR2125 / totem with jumpers if you want the 2125s to work. The may work without pulling to ground explicitly, but best not even have to worry about it.