Skip to content

KIshiharaHCI/NTU-Computer-Systems-Lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

NTU Computer Systems Lab

Description

Computer Systems Lab was a seminar course at the National Taiwan University offered by the Department of Computer Science and Information Engineering during my student exchange in 2022. The course consisted of a weekly 1.5 hour lecture followed by a 1.5 hour tutorial, where we worked on the weekly assignment in groups of two to build a Computer System such as an FTIR touchpad, audio controller, motion controller, catapult etc. Programs and Tools used were Arduino, Unity, Fusion 360, 3D Printing and Laser cutting.

Week 1-3

  • Setting up Development Environments
  • Building an acrylic multi-touch pad based on the principles of FTIR

FTIR Touchpad

Frustrated Total Internal Reflection (FTIR) touch technology relies on the principles of light reflection and refraction to detect touch input. For this, an acrylic board was bent into shape such that a platform was made where a webcam could be set up facing up as well as the actual touchpad above the webcam, where the input could be visually captured from. Red LED lights were stuck on the side of the contraption with electrical tape to internally reflect red light in the acrylic material. When the user's finger touches the board, the part of the finger glows red, which can be captured by the webcam.

image image image image

Using the computer vision library of OpenCV, the video feed from the webcam is captured and transformed with a threshold set such that only the contour of the red hue on the finger can be seen. By finding the center of the contour, touchpoints can be recorded.

image

Week 4

  • Introduction to Arduino Development Board

Physical interface for controlling audio volume and play/pause

Building this project involved a combination of hardware connections and Arduino programming. For volume control, a potentiometer was used, while for controlling play/pause, a simple button was connected to the Arduino board.

image

Week 5-7

  • Implementing a circuit using a Wifi-Capable Microcontroller that detects button press
  • Get the pose data from the IMU sensor on the Microcontroller
  • Integrating the user input from the motion controller into Unity FPS game

Wireless Motion controller

The idea behind this project was to construct a controller for a simple FPS game with a stationary player. The controller incorporates a trigger for shooting an enemy NPC and utilizes a microcontroller along with its sensor to gather data on the rate of rotation of the controller. This data is then used to determine whether the player is aiming left, right, or center.

Initially, the circuit was assembled on a breadboard. By establishing a connection with a local network, the script controlling the player in Unity could read the data from the wireless controller. This facilitated triggering the gun and adjusting the player's aim based on the rotation data received from the sensor. For the final part of the project, parts were sketched on Fusion 360, laser cut, and assembled into a case for the controller. A trigger mechanism was also made by bending a plastic part into shape and attaching it to the case.

image image image image image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published