Spring 2016 3DOT Goliath, Making Laser Tag Possible: The Schmitt Trigger

By: Kevin Moran (Electronics and Control Engineer)

Since the analog output of the receiver is very noisy, my division manager suggested I use a Schmitt trigger which has 2 jobs:

 

  1. It reduces noise from the circuit through hysteresis, the time-based dependence of a system’s output on present and past inputs.
  2. It inverts the signal from the detector circuit and creates two thresholds-high and low. By changing resistor values we are able to control the high and low thresholds.

Below is the graph of a generic output using the Schmitt Trigger, as can be seen the signal is inverted, and the noise is relatively gone.

 

post

 

Now the challenge was selecting the correct Schmitt trigger that would work best with our receiver, after testing various resistor values, I made my choice between two sets of resistors.

2

I decided to go with the resistor values from Trigger 1, because It has a larger gap between the high and the low thresholds. When tested with the Phototransistor it provides a low threshold closer to 0 voltage

All values were taken with multi meter while changing the input voltage

Note: The high and low threshold change when the Resistor value connecting the receiver is changed from 100k ohms to 2M ohms (I did this in order to increase the sensitivity of the receiver)

 

Testing with Arduino Monitor:

  • When light is applied to the photo-transistor and the input is placed through the Schmitt trigger
    • High Voltage= 3.76 V
    • Low Voltage= 0.02 V

In order to make the phototransistor sensitive enough to be able to detect the IR light, I am using a 2 mega ohm resistor from the detector to the 5v supply

Both the high and low voltage thresholds are shown using the Serial Monitor

This is the result.

3

I also conducted a test on the Schmitt Trigger using a potentiometer

Components for this test:

10k potentiometer

LM358 Op-Amp

Resistors: 100k, 51k, 51k

Capacitors:  10 microF

Arduino Uno

The threshold between a high or low input from this test is 2.6V

As I varied the resistance in the potentiometer I obtained the graph provided in this slide

Based on this experiment I concluded that my Schmitt trigger was ready to be used alongside the photo-transistor.

4

 

Below is the result from this test using both the Arduino plotter and monitor

5

 

As can be seen again, a very clean signal that has only two outputs a low 0.02v and a high at 3.78v

 

Sources:

 

Jeffrey Cool: Division Manager

http://www.ti.com/lit/an/scea046/scea046.pdf

http://pcbheaven.com/wikipages/The_Schmitt_Trigger/

Spring 2016 3DOT Goliath,Assembling and Testing the 3Dot Board

By:  Ayman Aljohani (Project Manager)

For our Goliath project we will be using a custom made PCB that contains a microcontroller (known as the 3Dot Board) that will perform various tasks (ex. movement, laser shot, detector).  The physical PCB will be provided for us; however, it is required to solder all the components onto the PCB.

The steps we will be taking to solder the parts onto the PCB:

  1. Apply flux to the area you will be soldering and apply the soldering iron.
  2. Place the component on top of the soldering iron and heat the area to create contact between the soldered iron and the component.Soldering 3DOT Board components manually with Soldering Iron
  3. Check with multi-meter to make sure the components are connected to the PCB
  4. If alignment needs to fixed, we will use the heat gun to simultaneously heat the area to remove the component.
  5. Hold heat gun 3~4 inches away from the PCB for 30 seconds to heat up the board (prevent heat sync).                                                          heat gun
  6. Now aim the heat gun around 2 inches at the area you’re interested in for 15 seconds.Soldering with heat gun
  7. Apply little pressure to fix the alignment of the component.

 

 

Applying solder base to the area, this could be done in two ways:

a-All at once using stencil

Applying solder base using stencil

then clean the extra solder base manually

aplpling solder base

 

 

 

b-Manually apply solder base to all parts. This option takes loner time, but it will give a clear idea about 3DOT components and connections which makes the troubleshooting easier.

 

rsz_manually_solder_base

 

2- Use tweezers to place the components on the 3DOT Board:

rsz_tweezer  rsz_tweezer_2

 

3- After placing the component correctly, apply heat by placing the PCB in an oven

 

 

Assembled 3DOT Board:

rsz_final_product

 

 

 

The steps we will be taking to remove parts on the PCB:

  1. Apply flux to the area interested in to remove the soldering iron from a component.
  2. Put de-soldering on the area you want to absorb the soldering iron and apply the heated solder tip on top of it.
  3. Apply until you see the solder iron gets absorbed by the de-soldering material.
  4. Remove the component after most of the soldering iron has been removed.

 

 

 

Spring 2016 3DOT Goliath, Progression of Laser Tag components

 

By: Kevin Moran (Electronics and Control Engineer)

 

 

In this post we will explore the progression in the components explored throughout this project to make the Laser Tag game possible.

 

  • My first idea was to use a laser diode as the emitter and a Photo-resistor as the receiver.
    1. Pros:
      1. 15 meter range
      2. No Assembly required
  • Power dissipation of 75mW
  1. Cons:
    1. Dangerous to the human eye
    2. No circuit to build and learn from

 

Simplistic Laser Receiver build with Fritzing diagrams (Photo-resistor)

fritzing  danger

 

 

  • Since we are designing a 3DoT Rover that will be manufactured for children, the laser was discarded. My next idea was to use a simple LED alongside a collimator to simulate a safer laser beam.
    1. Pros:
      1. Safe to use
      2. 3 feet range
  • Power dissipation of 60mW
  1. Cons:
    1. Beam had a 3 inch diameter from 3 feet distance
    2. Did not meet the “cool” requirement

collimator

 

 

 

 

Red LED with collimator powered by a 4.5V power supply and       220ohm resistor

 

red with col

  • The third option to be able to satisfy our requirements for the laser tag game was to use a Photo-transistor as a receiver alongside an IR LED as the emitter
    1. Pros:
      1. Safe to use
      2. Will require PCB board to cancel our noise and filter signal
  • Analog voltage output can be manipulated
  1. Cons:
    1. Output contains noise.
    2. Range has to be worked on
  • Not visible to naked eye

 

Although the range is not as impressive as the laser, this is a safe device to use, as Infrared Light is not absorbed by the human eye. By using this device I will be able to satisfy the rubric for the PCB schematic design, as I will be adding on a Schmitt Trigger, which will be discussed in the following blog post.

 

Emmiter/ Receiver

emitter

 

 

 

 

 

Voltage output using Arduino Analog Pins

 

output

 

 

 

 

This circuit still needs to be filtered out and passed through an Inverting Schmitt Trigger. The Schmitt trigger will filtered out the noise and using voltage resistors there will be two voltage thresholds. Which will then be digitized and sent to the microcontroller for processing.

Spring 2016 3DOT Goliath,Troubleshooting the 3Dot Board

 

By:  Tae Min Lee (Systems)

After finishing the assembly of the 3Dot Board with our mentor Nick and Lawrence at AOSA we had to troubleshoot if we had any bad connections.  These are some of the procedures Nick and the group came up with to test the 3Dot Boards by following the procedures shown below:

Test Procedure:

  1. Take out the battery before testing using a multi meter
  2. Set the multi meter to measure resistance setting in the 100k ohm range
    1. Check for shorts on the Dual Motor Driver Chip
    2. The measured impedance of any two pins should be much higher than the 100k ohm.
    3. If a value of 0 resistance or close is displayed than you have a short
  3. Check H-Bridges are bridged based on the schematic (figure 1)
    1. Checked A01, A02, B02, B01
  4. Upload a simple code to test the motors (figure 2)
    1. Measured the voltage across the motor terminals to make sure the correct voltage was outputted

circuit 1

 

 

 

 

code

 

 

Conclusion:

No shorts were found on the 3Dot Board and the H-Bridge connections were connected.  However, we encountered a problem when we tested the motor code only Motor A was operating at the time.  Motor B on the other hand was not operating and the measured voltage across the motor B terminal was zero.  We had Nick perform additional test on the 3Dot board and from his analysis the possible problems were either the Dual Motor Driver or the Atmel Chip being damaged during assembly or other causes (ex. shipment, electro static, heat, etc.).

3DOT

 

References: 

1- https://www.pololu.com/product/713

2-http://forum.arduino.cc/index.php?topic=214730.0

 

 

Spring 2016 3DOT Goliath, Uploading the Firmware onto the 3Dot Board

By:  Tae Min Lee (Systems)

Before we upload any programs onto the PCB we have to upload a firmware.  The ATMEL Mega32u4 we soldered on the 3Dot cannot function because the chip has not been programmed.  In order to make the PCB programmable we will require to upload a firmware (programmable program) using ISP (In-System Programmer).

Steps we will be taking to uploading the firmware onto the PCB:

  1. Install the USB driver for the AVRISP mkii (Guide: USB Driver Installation).
  2. ISP connection pins are needed to communicate with a device through the SPI (Serial Peripheral Interface) using pins MOSI, MISO, Vcc, GND, SCK, RESET.
  3. Using the ISP connector connect it to the ICSP header to reprogram the microprocessor.
    1. When connecting the ISP connector onto the ICSP header make sure the orientation of the connection is correct. For more info refer to the AVRISP mkii Programming document.
  4. Download the following zip file from https://github.com/sparkfun/Arduino_Boards
    1. Extract Caterina-promicro8. hex file
      1. Open Arduino_Boards-master -> sparkfun -> avr -> bootloaders -> caterina
    2. Open up AVR Studio 4 and click on AVR Icon shown below
    3. Click on disconnected mode and go to Main tab and select the device that will be used and click read signature
    4. Go to program tab and under flash open the file from step an and press program
  5. Now you’re finished and ready to use the 3Dot Board

 

Sources:

  1. https://github.com/sparkfun/Arduino_Boards

Spring 2016 3DOT Goliath, How to Create a Custom Command on the Arxterra Application

By:  Tae Min Lee (Mission, Systems, and Testing Engineer)

To create a custom command for your project on the Arxterra application we need to click on the gear icon and click on the “Custom Command and Telemetry Configuration” (shown below).

Capture

Now click on the “+” icon and a pop up menu will appear, now choose the type of command you want to interface.  For our project we needed a simple on and off switch (Boolean)to turn on and turn off the laser shot (shown above).

Now we can customize our custom command by putting the label and the entry ID.  The label will be the name of your custom command (ex. laser shot).  For the entry ID we can choose a hexadecimal value (ranging from 0x40 to 0x5F) to assign our custom command.  Once you finish the configuration of your custom command click “back” and click “done”.  Now you will see your custom command displayed on your Arxterra Application.

Capture

 

Spring 2016 3DOT Goliath, 3D Printing Requirement: “Round One”

By: Rickeisha Brown (Manufacturing Engineer)

As a level one requirement, the customer requests to refrain from exceeding a total of 6 hours 3D printing time and not to exceed two hours per printed component. The customer has a project total budget of which ultimately limits the amount of spending power per division. Printing Cost estimates which is of total budget.

Maker’s Society is the organization handling our 3D prints. Their printers can print multiple parts at a time, they’re conveniently located on the campus of CSULB, and are reasonably priced to $5 per hour. Visit their website for more details regarding Maker’s Society and the services they offer: http://lbmakersociety.org/about-us/.

I submitted my design to Carlos Vergara1, the AESB representative, and informed him of my 6 hour printing requirement. He uploaded the parts to a program which examines each component and estimates total printing time down, to the minute.

1

Figure 1: The table above shows the trade-offs between strength, quality, low cost, speed vs. layer height. 2

2

 

Figure 2: Maker’s Society printing time estimates for the original body with 0.3 mm layer height: 8 hours and 24 minutes.

Figure 2 shows the results for total printing time of Goliath components with 0.3 mm layer height, with 0.2 mm being an ideal layer height based on Figure 1.

This does not meet level one requirement, so we must revert to Plan B: reducing the amount of components which make up our body from 6 to 3 components, sides (2), and cellphone and periscope compartment (1).

Here are the results:

3

 

To my surprise, the printing time did not decrease!

I requested that Carlos increase the layer height to 0.4 mm which will decrease printing time and help our team meet the 6 hour printing time requirement. Here are the results:

4

For 3 components, the total time still exceeds 6 hours. Therefore, I will go back to the drawing board readjust components thickness.

References:

1-Carlos Vergara, AESB Representative for Maker’s Society, E-mail: carloslbvergara@gmail.com

2- “What Is the Influence of Infill %, Layer Height and Infill Pattern on My 3D Prints?” 3D Matter. N.p., 10 Mar. 2015. Web. 23 Mar. 2016.

 

 

Spring 2016 3DOT Goliath, PM Tool ” Smartsheet”

By: Ayman Aljohani (Project Manager)

The major role of PM is to successfully manage the team to meet customer requirements thus have a functioning product at the final demo. That couldn’t be done without keeping track of project’s critical path to know what is done as per schedule and what is delayed. Knowing that would provide the PM with multiple options and solutions to steer the project toward a successful result.

One important tool of project management I used is Smartsheet:

Smartsheet1

Smartsheet is 30 days free, after that there are 3 different plans to choose from. The basic plan which I used costs $10 monthly for annual plan, or $13 for a monthly plan:

Smartsheet 4

Once you sign up, you will have an access to variety of templates to choose or a blank sheet:

Smartsheet 5

This is a video that explains creating new project sheet:

Creating New Project Sheet

 

 

 

Smartsheet 6

With Smartsheet you can easily generate Waterfall diagram “Gantt Chart”, here is a video on how to generate it :

Gantt Chart View

 

 

 

What makes Smartsheet powerful project tool is that it allows collaborators to work on it as well, depending on the access given to them by the owner of the sheet (Project Manager), they can be editors, viewers, or admin. Editors will have limited access on the sheet to edit tasks, i.e completion percentage. However, columns or rows that the owner doesn’t wish editors to have access to should be locked :

Smartsheet 7

To lock a column or row :

1-Highlight row or column

2-Right click

3-Lock Row, or Column

 

Once a task is assigned to someone, they can be notified via email. The following video shows how to set alerts and reminders:

Alerts And Reminders

 

One cool feature of Smartsheet is iPhone App. Project manager can easily manage their projects using Smartsheet app.

Smartsheet apps

This video explains how to use the app to upload photo on Smartsheet:

how to upload photo to Smartsheet using the app

 

If a team member wants some clarification on assignment, they can start a discussion with PM on Smartsheet discussion column:

Smartsheet 9

Smartsheet 8

 

The “attach” option allow collaborators to add copy of their work to keep track of project documents.

Smartsheet 10

 

Once the sheet is ready to be shared, “Sharing” at the bottom of the sheet provides owner the option to share the document with collaborators:

Smartsheet 11

 

Burn Down is an important chart PM should keep an eye on thus Smartsheet allows PM to generate it easily. To do that, PM should add ” Planned Assignments” column, ” Planned Start Date”, ” Planed End Date” . Then highlight these columns and generate report.

Also, you can export the project sheet to Excel or MS project and generate the Burn Down from there.

Smartsheet 12

Sources:

Smartsheet website

 

 

Spring 2016 3 DOT Goliath Arxterra Control Panel Test

By:  Tae Min Lee (Mission, Systems, and Testing Engineer)

As we get closer to the final product we started implementing the Arxterra Control Panel that will be used for the demo.  The Arxterra Control Panel will be used to control the Goliath and provide a live video feed from an android phone with a periscope.

 

Setup for Arxterra Application on Android/apple Device:

Going on your android/apple device go to the Arxterra application and click on community (see figure 1).

1

 

Now tap the connect button (see figure 2) and wait for the next screen to show up (see figure 3).

Now assign the robot’s name using an Arxterra application on the android/apple device.  For this example, I used TaeML7 as my pilot’s name and robot name as TaeML.

 

2           3

 

Arxterra Control Panel Setup:

Logging onto Arxterra using your computer type in your pilot’s name you assigned on your Arxterra application on your android/apple device.  For the password you can type in any password you wish for the login on Arxterra Control Panel (figure 4).

4

Once your login onto to the Arxterra control panel you should be able to see the robot name on the map (ex. TaeML).  Now click on the green man to enter the cockpit of the robot (Figure 5).

5

 

Now were in the cockpit of the Goliath where it displays the controls, speed, and battery levels of the Goliath (Figure 6).

 

7

 

 

Arxterra Control Panel Test:

After testing the Arxterra Control Panel we were able to control the Goliath by pressing a key on the keyboard (W = forward, A = left, S = backward, D = right).  In addition, the android device was able to provide a live video feed with the periscope as seen on figure 6.

 

Sources:

  1. https://www.arxterra.com/bluetooth-interface-to-arxterra-application-in-progress/
  2. https://www.youtube.com/channel/UCJXZGMpv8GqxkOi6W02GzoQ

Spring 2016 3 DOT Goliath Arxterra Firmware Motor Control Modification Test

By:  Tae Min Lee (Mission, Systems, and Testing Engineer)

In order to use the Arxterra control panel we need to first implement the Arxterra firmware for the Goliath.  After testing the Arxterra firmware we encountered a problem with the motor control.  Since, the Arxterra firmware is implemented to using TB6612FNG motor control we had to make a few changes to the firmware to use the Arduino motor shield.

The following changes were made to implement the basic movements of the Goliath:

firts pic Tae

 

The run_AMS function is responsible for setting the direction and brakes on a motor.  In this case we treated IN1 of controlling the direction on the motor and IN2 to controlling the brakes.

The following table will indicate the movement of the Goliath:

secon Tae

Setting a HIGH value for IN1 will make the motor move forward.  While setting a LOW value for IN1 makes the motor go backward.  In addition, the brakes are activated when we set IN2 variable to HIGH on the motors and setting a INT2 to LOW we will disable the brakes.

To make a right turn on the Goliath we made the motor on the left side to go forward while the motor on the right go backward.  This provides a faster method of turning the Goliath to the right.  A similar action can be performed for the left turn by having the motor on the right go backward and the motor on the left go forward.

third pic Tae

 

Sources:

  1. https://www.arduino.cc/en/Main/ArduinoMotorShieldR3
  2. https://www.arduino.cc/en/Tutorial/DueMotorShieldDC