Week 1

Welcome to Week 1!

0. Intro: what are we doing here?

This is a weekly meetup to teach students skills to make interactive prototypes and to help them learn how to engage in research. In my mind these things are deeply linked; whenever you build something you should understand what else has come before and improve upon it. Much is inspired by Seymour Papert and constructivist learning, innovation-through-play. I’m here to (1) help teach you skills to build anything, (2) help mentor you toward research publication.

This is loosely based on MIT’s How to Make Almost Anything.

Meet David and learn about his research.

1. Familiarize yourself with what is possible and what you can do!

MAKING:

When it comes to this get-together:

In general, good places to start are:

RESEARCH:

When you build something, do something new! You might as well take a quick look at what others have done, and try to tweak it in at least one way that makes it new in some way that matters– something uniquely yours. This takes a fun project and makes it something you can use in your portfolio, publish in a peer-reviewed venue, and accelerate your career. Here are some examples of what that could look like for you:

TOOLS:

These are my preferred tools:

  • 3D Parametric Design: Fusion 360, OnShape (Both free)
  • PCB Design: Altium, KiCAD (Both free)
  • Coding: Python (high-level, AI, etc), Javascript (Web, Mobile App, Backend - Node, React, React-Native, Firebase), C (embedded, low-level)
  • Microcontrollers: Atmel AVR, STM32
  • Vector Graphics: Illustrator, Inkscape, CorelDRAW

2. Register with gitlab; set up a website.

Get set up with our gitlab and create a basic website: https://gitlab.depaulhacks.com.

The guide for this is here

(1) introduce yourself and (2) describe/visualize a project you’d like to build! Check out project ideas if you’re interested in deeper mentorship on research, or propose something yourself!

For more help, check out this, this, and this. This page is the example hexo pages project (source code); This is a Pelican example, (source).

3. Let’s get started with Embedded programming.

A basic introduction from Arduino.

Today we’ll jump into a basic ESP32 example. You will need to connect to IoT_IRL network with password DePaulIRL. The slides and the basic sketches are here

This is your introduction to the world of programming microcontrollers. Check out the ESP32 Guide to Libraries.

4. What does the future hold?

Next week we’ll start to dig into electronics theory fundamentals in a rapid fire way; we’ll cover roughly (in order)

  • basic firmware (today).
  • basic analog components, using test equipment, hooking up analog/digital components, AVR and microcontroller basics.
  • advanced plug-and-play; tutorials, parts, toolchains, gotchas. Batteries, etc
  • signals and basic signal conditioning, buffering, filtering, sampling theory.
  • basic input devices you might use, shopping for them.
  • basic output devices you might use, shopping for them.
  • practical tips for building physical systems. McMaster, 3D printing, NEMA motors, rails, delran, threaded inserts, safety, tolerances, choosing a material and process.
  • intro to PCB concepts data sheets, picking parts. Development lifecycles. Options for ordering and making.
  • advanced PCB - intro to PCB design software and making a custom board.
  • advanced firmware– threading, RTOS, semaphores, memory management.
  • an introduction to networking and linux.
  • advanced networking: ble, wifi, coap, lora, zigbee, thread, matter, uwb, gps.
  • sensor fusion, control systems, and advanced topics in data.
  • build an app to work with your device.
  • advanced apps: backends and third-party APIs.
  • machines: laser and vinyl cutter
  • machines: 3D printer and plastics
  • machines: shopbot
  • building machines: motors, rails, machining, tolerances, ideas.
  • projection mapping, cueing, and system design. ROS, MQTT, pub-sub, Qlab, madmapper