Introduction: J.A.R.V.I.S Workshop Assistant Tool

About: I'm a 16 years old student, I like making projects with eletronics, computing and 3D Printing.

GitHub: AfonsoTenda

Printables: PrintLab

Introducing J.A.R.V.I.S (Just A Rather Very Intelligent System), your real-world interpretation of Iron Man's iconic AI. Designed as a versatile workshop companion, J.A.R.V.I.S harnesses the power of GPT-4, the latest in natural language processing technology, to provide responses to any question you throw its way with remarkable accuracy and insight.

More than just a repository of information, J.A.R.V.I.S serves as a multifunctional tool within your workshop. Need assistance with a complex problem or project? J.A.R.V.I.S is there to offer guidance, suggestions, and even innovative solutions based on its vast database of knowledge.

But J.A.R.V.I.S isn't limited to just answering questions. With its integrated control capabilities, it can effortlessly manage and control a variety of smart devices in your workshop, from lighting and temperature control to machinery and equipment. Its modular design allows for seamless integration of additional functionalities, meaning you can tailor J.A.R.V.I.S to suit your specific needs and preferences.

Imagine having a trusted assistant by your side, capable of understanding and executing your commands with precision and efficiency. That's the power of J.A.R.V.I.S – the ultimate workshop companion for the modern innovator.


Demo:



Supplies

Basic Materials :

  • Orange Pi 3 LTS
  • Micro SD Card and Reader
  • ⚡USB C Power

Optional Materials (for the case):

  • 3 LEDS
  • 1 Buzzer
  • PLA (or other) 3D Printer Filament
  • M3 screws
  • M3 Brass Standoffs 22.00mm and 5.00 mm 

Tools:

  • ⚙️3D Printer
  • ♨️Soldering Iron

Step 1: Flashing the Os to the Orange Pi 3 LTS

To begin, ensure you have Balena Etcher and the Ubuntu image for the orange pi 3 lts(I tried with the server image but it didn't work for some reason) downloaded onto your system. Once installed, launch Balena Etcher. You will be greeted with the following screen:

On this screen, locate and click on "Flash from file." Browse your computer to find the Ubuntu image you downloaded. Then, click "Select target" to choose your micro SD card, which should be plugged into your computer. Once both the image and the target are selected, click "Flash" to initiate the process. It can take a little bit but after that your micro SD should be ready to boot.

Step 2: Connect Via SSH (Optional)

Upon powering up the Orange Pi using the micro SD card, proceed to connect the HDMI cable, keyboard, and mouse to the available USB ports. Once the system boots up, access the internet by clicking on the button located at the top right corner. You will need to select your SSID and put your password.

Then, open the terminal and type:

ifconfig

And make sure to note down your local IP address.

On your other computer, open the terminal and type:

ssh orangepi@[Local IP Adress of the orange pi]


With these steps completed, you can now access your Orange Pi terminal via SSH without requiring the HDMI cable or using the keyboard and mouse.

Step 3: Installing JARVIS

To get started with J.A.R.V.I.S type this in the terminal:

git clone https://github.com/AfonsoTenda/JARVIS-GPT4.git
  • Install Ubuntu Dependencies:
sudo apt install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 espeak python3-pip python3-pyaudio flac -y 
  • Install Python Dependencies:
cd JARVIS-GPT4
pip install -r requirements.txt

Step 4: Installing Wiring OP (only Needed for the Case)

What is Wiring OP?

Wiring OP is a library designed to facilitate the control of GPIO pins on Orange Pi boards. It offers an interface to manage the configuration and state of these pins, simplifying tasks such as setting pins as inputs or outputs, reading their status, and writing values to them. This library streamlines the process of hardware interaction, enabling developers to focus on the functionality of their projects without getting bogged down in low-level details.

How to install it

Now let's see how we install it. First type:

git clone https://github.com/zhaolei/WiringOP.git -b h3 

This command allows us to retrieve the installation files. After getting the files type:

cd WiringOP

To get inside the folder where we are going to install it. Now to install type:

chmod +x ./build
sudo ./build

Step 5: Configuring JARVIS

Before we begin using Jarvis, we'll need to configure it. This involves setting up some variables within the Python scripts and obtaining the necessary API keys.


Pico voice API key:

Obtain your Picovoice Access Key:

  • Visit the Picovoice Console: Picovoice Console: https://console.picovoice.ai/
  • Create a free account if you don't have one already.
  • Copy the access key.

To update the main.py Script tou need to go where it says [Porcupine Key] , and put your access key:

porcupine = pvporcupine.create(keywords=["jarvis", "computer"], access_key="[Porcupine Key]")


Tuya smart bulbs configuration:

To complete this step, you'll need to visit the provided link and follow the instructions outlined in the "Tuya Device Preparation" tab (I apologize for not including all the instructions, but they're quite extensive, and I would just repeat what is on there).

If everything was done correctly, you just need to input the information into the lib\tuya.py script, right here:

d = tinytuya.BulbDevice('[Device ID]', '[Device IP]', '[Local Key]')


Wiz bulbs configuration:

Now, for the simplest step, we just need to obtain the IP address of our light bulb, which we can easily get using the command:

python -m pywizlight.cli discover

Now just put the IP address on the lib\wiz.py:

light = wizlight("[Bulb IP]")

Step 6: The Circuit

The circuit is extremely simple. I've drawn a schematic, and all you need to do is follow it. If there are any questions, you can just put it in the comments.

Step 7: The Case

The case is 3D printable, created by me on onshape and it can be found on my printable profile.

How to build:

  1. Place the Base.stl with 4 screws on the corners.
  2. Fasten the 22.00 mm brass standoffs onto the screws.
  3. Put the EletronicsBox.stl on top of the base with the four corners aligned.
  4. You can now place all the LEDs into the holes on the box, and build the circuit.
  5. Now put the BaseOrangePI.stl on top of everything and fasten the 5.00mm standoffs.
  6. Put the Orange Pi 3lts and top it all with the OrangePIBox.stl

Step 8: How to Use

After all this you can test your new AI workshop tool typing:

Python3 main.py

Or editing the start.sh and doing:

bash start.sh
All Things Pi Contest

Participated in the
All Things Pi Contest