The plants driven vehicle. The Gowest project consist of a vehicle driven by plants used as light detector.
Go to file
Julien Oculi 357da50976 fix(sketch): update file label 2024-03-18 11:36:09 +01:00
.devcontainer feat(sketch): 👷 add fcinfo generation pre-commit hook 2024-03-11 12:25:06 +01:00
assets docs: 📝 add logo and update global readme 2024-03-07 14:35:00 +01:00
electronic docs: 📝 add and update readme of all modules 2024-03-07 14:03:20 +01:00
music style: 🎨 deno fmt 2024-03-07 14:35:39 +01:00
robot style: 🎨 deno fmt 2024-03-07 14:35:39 +01:00
scripts fix(config): 🐛 fcinfo script overwrite wrong files 2024-03-14 20:03:01 +01:00
sketch fix(sketch): update file label 2024-03-18 11:36:09 +01:00
translator test(translator): commit serial test mock 2024-03-11 17:40:29 +01:00
utils feat(sketch): 👷 add fcinfo generation pre-commit hook 2024-03-11 12:25:06 +01:00
web style: 🎨 deno fmt 2024-03-07 14:35:39 +01:00
.gitignore chore(config): 🔧 untrack freecad backup files 2024-03-14 17:29:40 +01:00
CONTRIBUTING.md docs: 📝 update contributing guidelines 2024-03-07 12:43:46 +01:00
LICENSE-AGPL docs: 📄 add software and hardware licenses 2024-03-07 12:17:54 +01:00
LICENSE-CERN docs: 📄 add software and hardware licenses 2024-03-07 12:17:54 +01:00
README.md docs: 📝 add local dev info section 2024-03-11 13:23:22 +01:00
deno.jsonc ci(config): 🐛 add a default arg for `fmt:check` hook 2024-03-12 15:26:14 +01:00
gowest.code-workspace chore(config): 🧑‍💻 configure default explorer file nesting 2024-03-11 12:13:36 +01:00
import_map.json feat(config): 🧑‍💻 add `config` workspace in `import_map.json` 2024-03-12 14:39:32 +01:00

README.md

logo

🪴 Gowest 🌱

The plant driven vehicle

project doc License: AGPL License: AGPL

Project overview

The Gowest project consist of a vehicle driven by plants used as light detector.

Gowest is split under the followings modules for flexibility, dev experience and to improve multiple profiles contributors involvement.

  • ⚙️ Config (global project configuration)
  • 🔌 Electronic (schemas and constrains)
  • 🎶 Music (signal to music)
  • 🤖 Robot (interface abstraction "voiture")
  • 🪚 Sketch (models and draws for constructing)
  • 🗣️ Translator (interface Vegetal Signal)
  • 🌐 Web (remote control interface)

▶️ Usage

TBA

---
title: Gowest architecture
---
flowchart TB
	subgraph plants [Plants]
	end
	subgraph vs [Vegetal Signals]
	end
	subgraph rp [Raspberry]
		direction TB
		translator[Translator]
		ai[AI model]
		robot[Robot API]
		server[Gowest API]
		client[Gowest UI]

		translator -- Parsed datas --> ai
		ai -- Directions --> robot
		server <-- API --> robot
		server <-- API --> ai
		server <-- API --> translator
		client <-- HTTP --> server
	end
	subgraph motorization [Motorization pack]
		direction TB
		drivers[Motors drivers]
		motors[Motors]

		drivers -- Power --> motors
	end
	subgraph battery [Battery pack]
		direction TB
		battery_ctrl[Controller]
		battery_bry[Batteries]

		battery_ctrl -- Power --> battery_bry
		battery_bry -- State --> battery_ctrl
	end

	battery -- Power --> vs
	battery -- Power --> rp
	battery -- Power --> motorization

	plants -- Signals --> vs

	vs -- Serial datas --> rp
	rp -- Commands --> vs

	rp -- Commands --> motorization

💭 Philosophy

This project is split under autonomous modules as a monorepo to:

  • Provide an unique minimalist toolchain.
  • Share dependencies, interfaces, assets, ... seamlessly.
  • Unify and simplify base of knowledge.
  • Distribute a coherent and complete releases.

We provide and work on Free/Libre and Open Source Softwares and try to use mostly well known standard (especially Web Standards) for security, resilience, portability and compatibility reasons.

For the same reasons and for readability and as common format we prefers plain text in most of the case.

To apply previous principles and use an ergonomic and minimalist toolchain most of the project use:

  • json for datas and config files as it is a widely common config file syntax.
  • markdown for text documents (documentations, wiki, ...) for his simplicity, flexibility and his widely usage.
  • 🦕 deno as runtime and main toolchain utils for his use of web standard, all in one tool, single portable executable format.
  • typescript for main code language for this support over all used platforms (embedded, server, web, ...) and the stability and security of a well typed interface.

📘 Documentation

  • All public code is documented with JsDoc and accessible through doc/api.
  • Hardware documentation and references is accessible through doc/sketch or doc/electronic.
  • Usage, setup and additional information is disponible in the 📖 wiki.

🤝 Contributing

Any kind of contribution is welcomed. Please read contributing guidelines before and respect contributor covenant.

For local development:

Required dependencies:

  • deno To run project (code, ci, ...).
  • python3 (only necessary for sketch/ workspace).

Before first commit or after editing ./scripts/*, ./deno.jsonc:

  • Run deno task hooks:install.

Using VSCode: