Skip to content

Latest commit

 

History

History
109 lines (80 loc) · 5.32 KB

File metadata and controls

109 lines (80 loc) · 5.32 KB

DT-Contextual-Challenges-2020-2021

A project to increase awareness of the climate emergency.

When no action is done, the seven segment displays will show the temperature of major cities now with the global average temperature. When the 'pre-industrial era' button is pressed, the board will display temperatures of major cities around the world during that time. When the 'Year 2100' button is pressed, the board will display temperature rises of all the cities based on credible data. The aim is for users that interacted with the display to quickly acknowledge the seriousness of the situation and encourages them to act. Such actions can be taken straight away by learning more about climate emergency through the QR code readily provided. The QR code links to -> this website

The main powerpoint file is -> Contextual Challenge 2020-2021 Kahngjoon Koh.pptx

Any other files in this repository are resources that I have used during the iterative design process.

The final design has been documented here. For more details check the powerpoint.

Table of Contents:

  1. 3D Design
  2. 2D Designs
  3. Materials
  4. Schematics
  5. Code
  6. Result

3D Design

Designed with SketchUp

image

-> Final Design
-> Exploded View

2D Designs

Designed with 2D Design

image

image

image

image

-> src

Materials

Wood

  • Birch-veneered plywood (4 x 440 x 440mm)
  • Birch-veneered plywood (4 x 250 x 440mm)
  • Oak x2 (40 x 30 x 660mm)
  • Oak x 2 (40 x 30 x 460mm)
  • MDF (4 x 420 x 620mm)

Electronics

  • 6V 1A AC/DC power supplier
  • Arduino or Arduino Uno
  • Sn74hc595 Shift Register x 10
  • DIP 16 socket x 10
  • CD4514 Demultiplexer x 6
  • DIP 24 socket x 6
  • Seven Segment Displays x 24 (50.3 x 19 x 8mm with a 0.56 inch digit size; Red; common cathode; 10561k)
  • Seven Segment Displays x 1 (71.6 x 25.8 x 7.4mm with a 0.8 inch digit size; Red; common cathode; 10561k)
  • Push Buttons x 2
  • 2N2222A Transistors x 100
  • 100Ω, 200Ω, 1kΩ Resistors

Other Materials

  • Acrylic (5 x 400 x 600mm)
  • Epoxy Resin and hardener
  • PVA glue
  • Mounting brackets x 2
  • Screws x 8
  • Water-based varnish (matt)

Schematics

Designed with KiCad

image

-> src

Code

Code for Arduino -> main.ino

The Arudino has a pin limit. However, there are 25 seven segments displays that require signals. Instead of sending signals to all of the displays simultaneously, 6 displays will be displayed at a time. The time between frames was made short using

#define portOfPin(P) (((P)>=0&&(P)<8)?&PORTD:(((P)>7&&(P)<14)?&PORTB:&PORTC))
#define ddrOfPin(P) (((P)>=0&&(P)<8)?&DDRD:(((P)>7&&(P)<14)?&DDRB:&DDRC))
#define pinOfPin(P) (((P)>=0&&(P)<8)?&PIND:(((P)>7&&(P)<14)?&PINB:&PINC))

#define pinIndex(P)((uint8_t)(P>13?P-14:P&7))
#define pinMask(P)((uint8_t)(1<0)

This sped up digitalRead by 60 times and digitalWrite by 28 times. (Credit)

Result

image

License

CC BY-NC-SA 4.0