I Love Creating Designing Prototyping

Week 11::Input Devices


Demonstrate work flows used in circuit board design and fabrication:
Making satshaKit for my input device control.
satshakit_cnc_internal
Fig1. satshakit internal
satsha_kit
Fig2. components of satsha kit

Start soldering with components:

  • ATMEGA 328P *1
  • LED:Blue *1
  • LED:Yellow *1
  • 10k resistor *1
  • 499 resistor *2
  • 1uf capacitor *1
  • 22pf capacitor *2
  • 100nF capacitor *2
  • Switch *1
  • After soldering, I was used hot glue gun to protect this board.

    satsha_kit
    Fig3. components of satsha kit
    satsha_kit2
    Fig4. satsha kit

    Following satshaKit tutorial, I am ready to program it.

    I am using my FabISP be a programmer to upload Arduino bootloader.

    withfabISP
    Fig5. satsha kit connection schemas with FabISP (Image courtesy of Github )

    Follow these steps to upload Arduino bootloader:

  • open Arduino IDE
  • select proper programmer (USBtinyISP)
  • select Arduino UNO as board
  • click on tools->Burn Bootloader
  • Then satsha kit board is totally like an Arduino board.

    I can use FTDI USB cable to upload and use my sketch without the need to use a programmer.

    withFTDI
    Fig6. satsha kit connection schemas with FTDI(Image courtesy of Github )

    Then I tried to use attiny44a to design electronic board with eagle.

    input_Device2_name
    Fig7. design with eagle
    input_Device2
    Fig8. input device board trace

    I used GIMP to generate border for board.

    input_Device_border2
    Fig9. input device board border
    IMG_0915
    Fig10. cutting with Roland Modela MDX-20

    For milling the traces board. The variable what is set:

    Milling the traces:

  • Type:3D plane

    diameter(mm):0.4;    Offsets:2
    Overlap:0.5;                error(pixels):1.1
    intensity:0.5;              z(mm):-0.15
  • Milling the border:

  • Type:3D rough

    diameter(mm):0.79;    Offsets:2
    Overlap:0.5;                  error(pixels):1.1
    top intensity:0.5;           top z(mm):-0.8
    bot intensity:0.5;           bot z(mm):-1.9
    cut depth(mm):1.7

  • IMG_0919
    IMG_0921
    IMG_0922

    After milling the board, start to soldering the board.

    Solder electronic components:

  • handy SMD resistors: 10k*1 ohm
  • handy SMD capacitors: 1uF*1
  • attiny44a chip
  • 3 pin resonator
  • 6 pins and 4 pins header
  • solder jumpers
  • IMG_0924
    IMG_0932

    After soldering the board, combination with HC-SR04 Ultrasonic Sensor.

    IMG_0925
    IMG_0929
    IMG_0931

    Video with Ultrasonic Sensor, Arduino IDE and my board.

    The HC-SR04 Ultrasonic Sensor is a very affordable distance sensor that has been used mainly for object avoidance in various robotics projects. It has also been used in turret applications, water level sensing, and even as a parking sensor. To use this sensor to measure distance for input device assignment.

    hcsr04
    Fig11. HC-SR04 Ultrasonic Sensor

  • HC-SR04          Satsha Kit
  • GND            GND
  • VCC            VCC
  • Trig            D5
  • ECHO            D6
  • overview
    Fig12. overview

    Video with Ultrasonic Sensor and Arduino IDE.

    Implement and interpret programming protocols:

    In my final project, I was made a fishing float to help people when is the perfect timing to set a hook. So I put ADXL345 into the fishing float to detect gravitational acceleration.

    The ADXL345 has three axes of measurements, X Y Z, and pins that can be used either as I2C or SPI digital interfacing. I can set the sensitivity level to either +-2g, +-4g, +-8g or +-16g. The lower range gives more resolution for slow movements, the higher range is good for high speed tracking. So I was used it to detect gravitational acceleration.

    ADXL345
    Fig13. ADXL345 Sensor

  • HC-SR04          Satsha Kit
  • GND            GND
  • VCC            VCC
  • SDA            SDA(A5)
  • SCL            SCL(A4)
  • overview2
    Fig14. overview with ADXL345

    I used wire llibrary for ADXL345. Some explanation with code.

    Wire.begin();

    For I2C initalize.

    void writeTo(int device, byte address, byte val)

    Write data to reguster.

    void readFrom(int device, byte address, int num, byte buff[])

    Read data form ADXL345. For example: X, Y, Z values.

    wire
    Fig15. write data to register

    Video with ADXL345 Sensor and Arduino IDE.

    console
    Fig16. Detect ADXL X Y Z value
    Source Files:

  • input_ADXL345.ino
  • input_ultrasound.ino
  • satshakit_cnc.brd
  • satshakit_cnc.sch
  • inputdevices7.brd
  • inputdevices7.sch
  • input_ultrasonic for my board
  • input_lightsensor for my board
  • If you are interested in my project or have any question.
    Please do not hesitate to contact me.

    bruse3214@gmail.com