Skip to content

jameskabbes/HackIllinois2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 

Repository files navigation

John Deere | HackIllinois 2025

John Deere Logo

All car kits


Table of Contents

Prompt

Autonomous Vehicles

Background

John Deere innovates on behalf of humanity.

It doesn’t matter if you’ve never driven a tractor, mowed a lawn, or operated a dozer. With our role in helping produce food, fiber, fuel, and infrastructure, we work for every single person on the planet.

"We don’t create tech for tech’s sake. There’s purpose behind everything we do, so that our customers have the tools they need to tackle some of the world’s greatest challenges."

John May
Chairman and CEO | John Deere

Along our journey of creating exceptional tools for our customers, we have become pioneers in the autonomous vehicle industry:


Now, let's see what you can build.

Prompt

Build your own autonomous vehicle


For your HackIllinois 2025 John Deere prompt, you are tasked with building your own autonomous vehicle, a vehicle that solves any problem that you define.

It is up to each team to determine what problem your vehicle solves. Does it drive down the road? Deliver food? Solve a maze? Plant a corn field? It could be something useful, something fun, or anything you can imagine. The only stipulation is that your vehicle:

Each team is supplied with a kit. Teams are welcome to add to the kit, remove from the kit, and rearrange the pieces of the kit as needed. Teams are not required to use all items in the kit. Certain kits require that specific sensors and mechanisms are utilized.

Like many problems at John Deere, this prompt requires more than just a software solution, it requires a solution at the intersection of mechanical systems, electrical systems, sensors, data, automation, programming, and of course, creativity.

Good luck!

Submission Criteria

To be considered for awards, do the following:

  • Submit a Devpost writeup, containing the following:
    • Problem description
    • Solution explanation
    • Link to Codebase
    • Link to video of the vehicle working
  • Give a 5-minute live demo to judges on Sunday, March 2nd

Scoring Criteria

Submissions will be assessed by the following criteria:

  • Problem Complexity: how complex is your problem?
  • Solution Creativity: how creative is your solution?
  • Functionality: how successfully does your vehicle solve your defined problem autonomously?

Integrity

You are encouraged to use any open source and AI tools you wish. Be sure to give proper recognition where required.

John Deere Office Hours

We have parterned with the Jackson Innovation Studio on campus to give you access to any tools you might need. The studio provides access to 3D printers, multimeters, screwdrivers, tape, etc.

John Deere engineers who work on autonomous systems professionally will be present to mentor participating teams. The space will be available to participants at the following times:

  • Friday, February 28: 9:30pm - midnight
  • Saturday, March 1: 11:00am - 7:00pm

The Jackson Innovation Studio is located in the basement of the Sidney Lu Mechanical Engineering Building at 1206 W Green St, Urbana, IL 61801, Room 0100

Awards

  • 1st Place
  • Most Creative Solution
  • Honorable Mention

Prizes

  • 1st Place: Additional Raspberry Pi 4B and vehicle kit for all team members

Kits

Click on the link for each kit (other git branches) to read more about it, the kit-specific prompt requirements, and setup instructions.

Name Assembled Kit Solution Requirements Kit Quantity
The Boombox The Boombox - camera, speaker 10
The Claw The Claw - camera, the claw 6
The Rover The Rover - camera, camera servos, ultrasonic, ultrasonic LEDs 7
The Scout The Scout - camera, ultrasonic sensor, all servo motors 1
The Trike The Trike - camera, all servo motors 7

Detail The Boombox The Claw The Rover The Scout The Trike Item Description
Motors (quantity) 2 2 4 2 2 Quantity of electric motors used to power the drivetrain
Drivetrain classification front-steering tank tracks omnidirectional tank tracks front-steering Type of drivetrain mechanism used
Camera
Servo Motors (quantity) 3 2 2 3 3 Control a gear's orientation with electrical signals
Ultrasonic Sensors (quantity) 1 1 *1 Detect a object's distance with sonar
Audio speaker / microphone buzzer buzzer buzzer Presence of audio components such as speakers, buzzers, or microphones
Line Following Sensors (quantity) 3 4 4 Quantity of infrared line-following / cliff detection sensors
LEDs (quantity) 4 2 4 1 Quantity of controllable LEDs

Raspberry Pi

A tiny computer in the palm of your hand. raspberrypi.com

Setup Instructions

Follow along for the recommended setup instructions

  • power on your raspberry pi
  • connect raspberry pi to your computer via ethernet cable
  • ssh into raspberry pi on your computer
  • If you want graphical access (to see a screen) follow along below
    • get raspberry pi onto the same internet network as your computer
    • find IP address of raspberry pi
    • establish a VNC connection to raspberry pi
  • set up wireless access to your device

Connecting to your Raspberry Pi

There are few ways to access your raspberry pi:

  1. Keyboard, Mouse, Monitor
  2. SSH (from another computer)
  3. VNC (from another computer)

Keyboard, Mouse, Monitor

You can use a raspberry pi like any other computer. Connect a keyboard and mouse via usb (or bluetooth) and connect a monitor to the Mini HDMI port.

SSH (Command Line Access)

You can establish an ssh connection for access to the raspberry pi terminal.

1a. With direct ethernet connection

  • ssh <username>@<hostname>.local
  • ssh pi@hackil25pi1.local

1b. While on same network

  • ssh <username>@<ip_address>
  • ssh pi@10.0.0.35

2. Enter your password

VNC (Graphical Access)

You can establish a VNC connection for graphical access to the raspberry pi.

1. Download a VNC Viewer

Something like RealVNC Viewer

RealVNC Viewer Website Download Image

2. Connect to Network

Ensure your raspberry pi and computer are connected to the same internet network. See connecting to wifi below.

3. Establish Connection

Enter your raspberry pi's ip address and establish a connection

VNC Viewer Connection

4. Enter your password

note: you may need to enable VNC access on your raspberry pi

5. Control the Raspberry Pi

Use the window on your computer to access your Raspberry Pi's OS.

Secure Copy

Secure Copy, scp, allows you to transfer files between two locations, using the SSH protocol. Check out copy_repo_to_pi.sh for an example.

Find IP Address

Private IP Address

When on the same network as your Raspberry Pi, connect via the private IP address.

To find, run hostname -I.

Public IP Address

When not on the same network as your Raspberry Pi, connect via the public IP address.

To find, run curl ifconfig.me

Python on Raspberry Pi

Python comes pre-installed with Raspberry Pi OS as the default system environment. The exact version (e.g., 3.11 or later) depends on your OS release and includes some commonly used libraries. However, you may want to create your own virtual environment using venv for more control over package versions and dependencies.

It is recommended to stay within the system Python environment if possible.

System Python Environment

The pre-installed system Python environment can be extended with packages available in the Raspberry Pi OS package repositories. Use this command:

sudo apt-get install python3-{package}

For example, sudo apt-get install python3-opencv installs the opencv library in the pre-installed system Python environment.

Virtual Environment

A virtual environment isolates your Python projects from the system Python, allowing independent package versions and avoiding conflicts. Here’s how to set one up:

  • Create a virtual environment: python -m venv {venv_name}
  • Activate it: source {venv_name}/bin/activate
  • Install packages within the environment: pip install {package}
  • Deactivate when done: deactivate

For example, pip install opencv installs the opencv library only in the active virtual environment.

Other Tips

Connecting to Wifi

To connect your Raspberry Pi to a wireless network without an Ethernet cable, follow these steps to configure your Wi-Fi credentials.

1. Edit the wpa_supplicant.conf File

Open the Wi-Fi configuration file with a text editor:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

2. Add your network

Add the following lines to the file, substituing your network's SSID and password


network={
    ssid="your_SSID"
    psk="your_password"
}

3. Restart the networking service

sudo systemctl restart wpa_supplicant

Connecting to IllinoisNet_Guest

1. Go to https://go.illinois.edu/illinoisnetguest and log in, click on "Register a New Device"

2. On your pi type in ifconfig and under wlan0 copy the number next to ether, that is the mac address for the device registration

pi ifconfig

IllinoisNet Guest Device Registration

3. On the raspberry pi type in sudo nmtui -> activate a new connection -> connect to IllinoisNet_Guest

Now the Pi is connected to the internet.

4. on the pi enter the command ifconfig again and under wlan0 find the number next to inet

5. ssh pi@<inet> from any device connected to IllinoisNet

Just like that you've done it. Multiple people can ssh in at once.

Author Notes

I hope you enjoy your HackIllinois experience! I really enjoyed designing this prompt for you all. Best of luck!

James Kabbes
Staff Software Engineer | Technical Coach - John Deere

About

John Deere's prompt and instructions for HackIllinois 2025

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages