Blog

W1HLO Robot is Alive!


The members of W1HLO have finished their robot! The robot was built from a Tetrix robot kit with many, many modifications. Two servos control the robot's camera; the audio and video are fed into an ATV (Amateur Television) transmitter. This allows the club to watch the video feed by tuning a regular TV to analog cable channel 59. The 2.4GHz transmitter for controlling the servos and motor controller was hacked to incorporate a SO-239 connector. That way, the transmitter can connect to a 2.4GHz 8dB omnidirectional antenna on the roof. This allows the robot to be controlled from the ham shack. To transmit audio to the robot, a HT has been clipped to the robot and tuned to 146.550MHz.

Click to play

2 comments

The W1HLO Repeater is On The Air!

The repeater's settings are 441.950Mhz IN / 446.950Mhz OUT / PL 67

http://hamblen.norwichfreeacademy.com:8171/2012-03-26/The+W1HLO+Repeater+is+On+The+Air%2521.m4v

0 comments

Yearbook Photo on 3/28!

Our group yearbook photo will be taken on 3/28, Wednesday, in the Slater Atrium at 12:36. Please see Mr. G for a permission slip to be excused from class. His office is on the 2nd floor of Allis.

0 comments

Next Meeting 3/28/2012

Our next meeting will be after school on Wednesday, 3/28.

0 comments

Next Meeting 3/21/2012

Our next meeting will be after school on Wednesday, 3/21/2012.

0 comments

Pizza Meeting on 3/15/12

Instead of meeting at our normal time of Wednesday after school, we'll be meeting this Thursday, 3/15, at noon as it's an early release day. If everyone can pitch in for pizza, I'll get the soda! See you then.

Mr. G

0 comments

RoBoz Demo

Aaron demonstrates his programming of RoBoz, our LEGO robot.

http://hamblen.norwichfreeacademy.com:8171/2012-03-11/RoBoz+Demo.m4v

0 comments

Current Club Projects

All,

After talking with Mr. Hough and Mr. Monroe, we listed a few items that need to be finished. Here they are, so we can keep track!

  1. A radio shield needs to be built with an Arduino that can radio GPS and temperature data from the robot with a HT.
    1. The Arduino should also relay battery voltage with a voltage divider connected to an analog pin.
    2. The Arduino should send temperature information (ambient? ATV?).
  2. We need to make a voltage regulator so the 12V gel cell can power the 6VDC 2.4GHz receiver on the robot. (No more AA batteries!)
  3. A "W1HLO" label needs to be made and stuck on the robot.
  4. We need to connect a HT to a computer and create an EchoLink station for our repeater.
    1. We'll also need to build the circuit and associated wiring for controlling the HT.

Completed:

  1. (Done!) We need to test the 2.4GHz antenna and connect the robot's remote controller to it.
  2. (Done!) An adapter needs to be made to connect our 50 Ohm 70cm/2m antenna to our 75 Ohm TV.
  3. (Done!) The ATV (Amateur Television) transmitter needs to completed for the robot. More specifically:
    1. Attach the heat sink/fan with thermal paste.
    2. Desolder the RCA connectors for audio/video on the ATV transmitter and make a RJ11 adapter to connect to the camera.
    3. Create the appropriate power cables and switches for powering the ATV transmitter, heat sink fan, and camera.
  4. (Done!) A HT (Handheld Transceiver) needs to be mounted on the robot for phone (audio) transmissions to the robot.
    1. We need to decide on a simplex frequency. (146.550MHz)
  5. (Done!) We need to install a 2.4Hz antenna on the roof and run LMR-400 coax for it. This will be for the robot's remote controller.
    1. The coax should be arriving next week or the week after.
  6. (Done!) We need to program the W1HLO repeater with the correct PL (private line) tone and station identification (ID).
    1. The programming cable and software should be arriving next week or the week after.

2 comments

No Meeting for 3/7/2012!

We will not be meeting for Wednesday, 3/7. We will resume meeting next week after school on Wednesday, 3/14.

0 comments

No meeting today! (2/29/12)

As there is an early dismissal today, there will be no meeting today (2/29/12).

0 comments

Next Meeting 2/15/2012

Our next meeting will be February 15, 2012 after school in the ham shack. The ham shack is located at the top of the middle stairwell in Cranston.

0 comments

Next Meeting 2/1/2012

Our next meeting will be after school on Wednesday, Feb. 1, 2012.

0 comments

HAB Launch Date!

The HAB will be launching from West Hartford around 11am on Saturday, July 9, 2011. The burst height is around 60,000 feet. Flight should last for 2.5 hours and possibly land in Ledyard. Here are the frequencies:

APRS Data (GPS, Altitude, Temperature): 144.575 MHz
Beacon and SSTV: 144.660 MHz

Phone and Morse code messages will be transmitted on 144.660 with a current SSTV picture. While the frequencies aren't in the recommended ARRL band plan areas for experimental, simplex, and data, they are (to the best of our knowledge) not an any repeater frequencies. The radios are limited to certain frequencies and we chose the ones most likely not to cause QRM.

The FAA has issued a NOTAM (Notice to Airmen) for the launch date:

!BDL 07/024 BDL AIRSPACE HIBAL BDL210020 SE BND REACHING FL600 WEF 1107091500-1107091800

0 comments

New GPS Arduino Code

int incomingByte = 0; // for incoming serial data

void setup()
{
// start serial port at 9600 bps:
Serial.begin(4800);
}

void loop()
{
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();

// say what you got:
//Serial.print("I received: ");
Serial.print(byte(incomingByte));
}
}

0 comments

GPS Code

/**
*Gets input from GPS
*/

#include <NewSoftSerial.h>

//NewSoftSerial(in, out, inverted)
NewSoftSerial myGPS(2, 3, true); //for I/O from the GPS without interfering with Serial I/O
String s = ""; //For containing input from myGPS

//converts doubles to Strings, used in Longitude and Latitude parsing
String doubleToString(double d) {
String s = (int)d;
d = d - (int)d;
while(d != (int)d)
d = d * 10;
s += String(".") + (int)d;
return s;
}

int count(String str, String toCount) {
if (str.indexOf(toCount) < 0)
return 0;
int count = 0;
for (int i = 0; i < str.length();) {
if (str.substring(i, i+toCount.length()).equals(toCount)) {
count = count + 1;
i = i + toCount.length();
} else
i = i + 1;
}
return count;
}

//Splits String by a regex, needed for separating parts of $GPGGA
String* split(String str, String toSplit) {
String strs[count(str,toSplit)+1];
int i = 0;
for(;str.indexOf(toSplit) >= 0;) {
strs[i] = str.substring(0,str.indexOf(toSplit));
str = str.substring(str.indexOf(toSplit) + toSplit.length());
i = i + 1;
}
strs[i] = str;
return strs;
}

//Parses an hhmmss.ss
void parseTime(String time) {
Serial.print("Time: ");
Serial.print(time.substring(0,2));
Serial.print(":");
Serial.print(time.substring(2,4));
Serial.print(":");
Serial.print(time.substring(4));
}

//Parse a ddmm.mmmm
String parseLat(String latitude) {
if (latitude.length() == 0)
return "Unknown";
String str = latitude.substring(0,2) + "d " + latitude.substring(2,4).toInt() + "' ";
if (5 < latitude.length()) {
String sub = latitude.substring(5);
double seconds = static_cast<double>(sub.toInt());
double tenths = 1;
for (int i = 0; i < sub.length(); i = i + 1)
tenths = tenths * 10;
seconds = seconds / tenths;
seconds = seconds * 60;
str += doubleToString(seconds) + "\"";
}
return str;
}
//Parses a dddmm.mmm
String parseLong(String longitude) {
if (longitude.length() == 0)
return "Unknown";
String str = longitude.substring(0,3) + "d " + longitude.substring(3,5).toInt() + "' ";
if (6 < longitude.length()) {
String sub = longitude.substring(6);
double seconds = static_cast<double>(sub.toInt());
double tenths = 1;
for (int i = 0; i < sub.length(); i = i + 1)
tenths = tenths * 10;
seconds = seconds / tenths;
seconds = seconds * 60;
str += doubleToString(seconds) + "\"";
}
return str;
}

//Parses the $GPGGA for output
void parseGPGGA(String gpgga) {
if (!gpgga.startsWith("$GPGGA"))
return;
String* strs = split(gpgga, ",");
int sz = count(gpgga,",");
for (int i = 0; i <= sz; i = i + 1) {
Serial.print(strs[i]);
Serial.print(",");
}
//parseTime(strs[1]);
Serial.println();
}

//Set up serial ports
void setup() {
myGPS.begin(4800);
Serial.begin(115200);
}

//Get information and maybe output it
void loop() {
if (myGPS.available()) {
s += (char)myGPS.read();
}
if (s.endsWith("\n")) {
if (s.substring(0,6).equalsIgnoreCase("$GPGGA")) {
Serial.print(s);
parseGPGGA(s);
}
s = "";
}
}

0 comments

W1HLO in the News

Ham Radio Club in the Norwich Bulletin's NFA World Column

0 comments

Meeting 3/3/2011

The next meeting of W1HLO will be Thursday, 3/3, in the shack. We will discuss the project plan as well as antennas.

0 comments

School Club Roundup

W1HLO will be participating in the ARRL school club roundup today between 1pm and 3pm. Please come to the W1HLO shack if you want to participate.

0 comments

W1HLO HAB Experiment


The NFA Ham Radio Club will be developing a High Altitude Balloon (HAB) to go up to the Earth's stratosphere and come back down. During its flight, we will be programming an Arduino to record temperature, location, and altitude. These data will be also sent back down to Earth via amateur radio, using APRS. Digital cameras will take pictures on the way up and down. A SSTV camera will also radio pictures.
The kick-off meeting for NFA students is Thursday, February 17. We are aiming to finish and launch the HAB sometime in June.

Click to play

0 comments

NFA Ham Radio Club First Meeting of 2010

The NFA Ham Radio Club's first meeting of the 2010 school year will be Thursday, October 21st after school! We will meet outside the middle stairwell of Cranston and walk up to the ham shack for an informational meeting. See the video below to see our video announcement of the club. Zach KB1UMQ, president, and Josh KB1UMP, vice-president, are featured.

http://hamblen.norwichfreeacademy.com:8171/2010-10-14/NFA%20Ham%20Radio%20Club%202010%20Announcement.m4v

0 comments