My name is Matthew, and I am a rising Sophomore at Bellarmine College Preparatory. I joined BlueStamp Engineering because I enjoy learning engineering and doing hands-on projects. My starter project was the TV-B Gone, and my intensive project was the Gesture-Controlled Robot. I learned a lot about engineering in the duration of this course.
Intensive Project: Overview
My Intensive Project was the Gesture-Controlled Robot. It is a glove with flex sensors and a robot that is controlled by a combination of bent or unbent fingers. It has three wheels, two powered and one for stability. The glove has four wired fingers (the last finger does not have a flex sensor). When I bend the thumb, it turns left. When I bend the 2nd finger, it turns right. If I bend my 3rd finger, it goes forward. If I bend my 4th finger, it goes backwards.
Schematics for Flex Glove -- Schematics Credit
Schematics for the Robot -- Schematics Credit
At this milestone, I completed my robot. I attached VEX 393 motors to the board using VEX straps, screws, nuts, collars, and axles. I wired the motors to a breadboard and to power and ground, and then I connected them to motor controllers. In addition, I have 2 servos that I will use in the future, and I wired them to the board already. I had to attach them somewhere so I attached them to the bottom of the board. For the 3rd wheel, I used a VEX omni-directional wheel. Omni-wheels are able to spin and roll sideways. they have wheels all around them. I decided to use this wheel because it is the front wheel, not a trailing wheel.
My second milestone was finishing the setup of the XBees. When configuring Xbees, I used XCTU and PuTTY. I spent 4 weeks debugging the configuration code due to the fact that I was using an Arduino Leonardo instead of a Arduino UNO. I while working on this, I also finished my glove and my robot base. However, I was extremely satisfied when I finished working on the XBees because they were the parts that took me the longest. I needed to configure the PAN ID, the Destination Low, and the MY-16 bit address. I set the PAN-ID to 1111 on both. The ID connects the two XBees on the same network and frequency so that they can communicate. The DL and MY addresses were 1000 and 1001 respectively and switched for the other XBees. They are the send and receive addresses for the XBees. In that configuration, they can send and receive to each other (2-way communication).
My first milestone was getting the flex sensors and the Arduino to send readings back to the computer. The flex sensors give a correct reading from 500-700 and it is translated to 0-9. the button reads either “s” or “e”, and it lights up an LED. I also wired up the ports and have stackable header pins to work on the Arduino board. I programmed the board to send the values to the serial monitor. I wired resistors 18K ohms and 3.9K ohms to make about 22K ohms, because the classroom does not have 22K ohm resistors. I heat shrunk the first flex sensor so that I could tell which side was the front and which was the end. Also, a problem that I fixed was that the header pins were too short, so I had to order some longer ones that went through both boards with surplus length on the pins. I used the programs XCTU and Arduino Programming. The glove prints out a letter and four numbers, and each of the numbers corresponds to a flex sensor. I made a test program that lights up the LED if any of the sensors are bent. I also made another program that sends readings to the Serial monitor. It gives one reading every 0.05 seconds.
DOCUMENTATION -- BOM
My starter project was “TV B-Gone”. The purpose of this project is to turn off a television that uses an IR remote. It is very useful as a way to stop others from watching too much TV, or as a pranking device. I used many components, I learned many concepts and techniques, and I gained much experience.
This Device sends out IR LED pulses to turn off the TV. It uses transistors to control the pulses, capacitors to store electrostatic charge, and resistors to keep the circuit from shorting. I used a ceramic oscillator to keep the timing for the pulses. The power source is comprised of a double AA-battery pack and 2 AA-batteries. The microcontroller controls the pulses and contains the programming. The button acts as a reset switch for the program, so if the button is pressed, the program will start again.
The completed TV B-Gone:
Starter Project: Components
- IC1 Microcontroller (ATTINY85V -- 10 -- PU) x1
- IC1′ 8-pin socket (Generic) x1
- XTL1 8.00 mHz ceramic oscillator -- Blue (8 mHz ceramic resonator) x1
- C2 220uF+ capacitor with 6.3+ Volts (Electrolytic Capacitor) x1
- C1 Ceramic 0.1uF capacitor -- 104 (Ceramic Capacitor) x1
- R3 1/4W, 5%, 10K resistor -- Brown, Black, Orange, Gold (Generic Resistor) x1
- R1, R5 1.0K Ω 1/4W 5% resistor -- Brown, Black, Red, Gold (Generic Resistor) x2
- LED2, LED3 Narrow beam IR LED -- Blue (Everlight IR333-A) x2
- LED1, LED4 Wide Beam IR LED -- Clear (Everlight IR333CCC/H0/L10) x2
- LED5 3mm LED -- Green (3mm green diffused) x1
- SW1 6mm tact switch button (6mm tact switch) x1
- Q5 PNP transistor, EBC pinout (PN2907) x1
- Q1, Q2, Q3, Q4 NPN Transistor (TO-92) (pin compatible without 2N3904 EBC pinout) (PN2222) x4
- ICSP 6 pin header 0.1″ x 0.1″ spacing (2x3 header) x1
- BATT 2 x AA battery holder (Keystone 2463) x1
- PCB Circuit Board (Adafruit Industries Custom Board) x1
Starter Project: Design
- Power Supply
- Powered by 2 AA batteries -- 1.5 Volts each: 3 Volts total
- The voltage must be between 2.5 V and 5 V
- Lower voltage is too weak -- not enough to work
- Higher voltage is too strong -- too much, may damage.
- Must be able to supply constant 400 -- 1000 mA.
- IR LEDs
- All 4 LEDs are IR emitters
- 940 nm wavelength : most common frequency for TV remotes.
- Blue LEDs are narrow and long range.
- Clear LEDs are wide and shorter range.
- Button: 6 mm tact switch
- Linked to reset pin on microcontroller
- When the chip resets, it emits all codes in its database of TV signals
- Low-power state until button press
- 8.0 mHz ceramic oscillator
- Acts as a crystal
- Generates 8.0 mHz timing -- keeps precise waveforms
- There is an internal resonator that does the same, but the Blue ceramic oscillator is external.
- Internal resonator depends on voltage and temperature.
- External resonators are independent from heat/voltage.
- IR-Driver transistors -> NPN Transistors
- Base pin down to ground, transistor and LED no current (off).
- Base pin up, transistor and LED on
- Driving transistor “drives” up the power of a microcontroller pin
- IR-Driver-Transistors-Driver Transistor -> PNP Transistor
- Extra pin to control other transistors
- Drives extra current through NPNs to supercharge them to make sure they have plenty of current.
- Two are used because In my project, I do not reprogram the microcontroller.
- To provide resistance so that current will not blow out.
- Store up electrostatic electricity so that LEDs light up without gradual increase of brightness
- Make the on and off of the LEDs quicker.
- The codes are actually pulses set in a specific order
- TV IR sensors respond to certain patterns of IR waves
- The pulses are a bunch of smaller pulses grouped together by spans of time without pulses.
IR pulses zoomed in
IR pulses even more zoomed in
Instructables Tutorial -- Credit to “mysqo” user on Instructables