README.md 2.32 KB
Newer Older
hackEns's avatar
hackEns committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14

Jarvis
======

hackEns multifunction bot to handle most of our internal management.

## Installation

Jarvis can be easily installed on a Raspberry Pi, starting from an up-to-date Raspbian image.

1. Download and put the latest Raspbian image on a SD card.
2. Start the Raspberry Pi. Set it correctly running `sudo raspi-config` (enable camera and so on).
3. Clone Jarvis repo.
4. Run the scripts in `system/` folder to install the requirements.
hackEns's avatar
hackEns committed
15
5. Manually install `wiringPi` for the `gpio` command.
Phyks's avatar
Phyks committed
16
6. Make sure your user is member of the `gpio` and `video` groups.
hackEns's avatar
hackEns committed
17
7. Jarvis does not automatically export the GPIO pins to prevent it from running as `root`. So you should `gpio export PIN out` for the pins you use (1 and 7 by defautl).
hackEns's avatar
hackEns committed
18
8. Run `jarvis.py` and follow the instructions to start Jarvis.
hackEns's avatar
hackEns committed
19

hackEns's avatar
hackEns committed
20
*Note :* Jarvis requires a MySQL database to be used, and a webserver to serve the web visualisation (repo [Jarvis web](https://github.com/hackEns/Jarvis_web)). As our webserver does not run on the Raspberry Pi, the above scripts do not include the setup for the webserver and the MySQL database. You should install and set them yourself. `system/jarvis.sql` contains all the necessary information to setup the database and tables.
hackEns's avatar
hackEns committed
21

hackEns's avatar
hackEns committed
22
23
`startup.sh` is a service to use to start Jarvis automatically (Debian).

hackEns's avatar
hackEns committed
24
25
26
27
28
29
30

## Files and folders

* `arduino/`
  * This folder contains some example arduino scripts to use an Arduino and a regular PC instead of the Raspberry Pi GPIO pins. They are just here for demo purpose and are no longer used. Thus, they may be unstable.
* `aziz.py` is our moderation script, to inform us of new emails waiting for moderation. It's basically a Jarvis plugin.
* `data` folder contains the scripts, aliases etc you put into Jarvis.
Phyks's avatar
Phyks committed
31
* `irclog` folder contains the script to convert the Jarvis log as a nice HTML page.
hackEns's avatar
hackEns committed
32
* `jarvis.all.log` (created by Jarvis) is the complete log of the watched channel.
hackEns's avatar
hackEns committed
33
* `jarvis.py` is the main script, which serves the bot.
hackEns's avatar
hackEns committed
34
35
36
* `jarvis_cmd.py` is a collection of functions to translate Jarvis actions to GPIO actions etc.
* `Rules` contains a set of scripts for the various Jarvis actions.
* `STL export` contains 3D models for our setup.
hackEns's avatar
hackEns committed
37
38
* `stream.py` is the script used to handle the cam streaming.
* `system` contains the scripts necessary to setup Jarvis.
hackEns's avatar
hackEns committed
39
* `updater.sh` is a bash script called to update jarvis.