Git Product home page Git Product logo

scrappybot's Introduction

ScrappyBot

License

Alt text

Ecco dei piccoli script in Python per il controllo del mio robot, forgiato con un Raspberry Pi 4B, dei cingoli giocattolo e... pezzi di fortuna.

Per il Bot Telegram devo ringraziare Mr. Francesco Tucci, che mi ha ispirato nell'impresa, e dal cui repo - essendo io un totale noob in materia di programmazione - ho preso svariate righe di codice, modificandolo poi a mio uso e consumo. Il suo è più completo, e permette di usare un solo token.

Cito quindi il sito del suo progetto: www.ladomoticafaidame.it e il blog in cui ne spiega le specifiche: https://www.iltucci.com/blog/la-domotica-fai-da-me

1 - robot_basics.py

Controlla i pin GPIO che ho collegato al L298N (un dual controller per motori, anche detto H-bridge).

Alt text

2 - RMBot.py

E' un piccolo Telegram Bot, e dipende da Motion (https://motion-project.github.io). Permette di avviare/fermare il motion detection, catturare istantanee, cancellare tutti i media presenti nel path specificato in motion.conf, controllare i movimenti del robot e la sua velocità, acquisire brevi registrazioni audio/video.

3 - REyeBot.py

Va inserito nella config di Motion (nel mio caso, on_picture_save /usr/bin/python /path/to/REyebot.py).

Invia all'amministratore del sistema le istantanee e i video acquisiti da Motion, e una breve registrazione audio quando rileva movimento.

Dopo l'invio, cancella tutti i file multimediali.

Motion deve essere correttamente configurato affinché funzioni (target e filename, soglie di attivazione, abilitazione istantanee e video preview).

Alt text

4 - kbd_control.py

Controllo del robot mediante la tastiera di PC, smartphone o tablet (via SSH/VNC/Anydesk, etc.) oppure con una tastiera WiFi/Bluetooth. Le frecce direzionali controllano i movimenti del robot:

UP_ARROW = avanti

DOWN_ARROW = indietro

LEFT_ARROW = sinistra

RIGHT_ARROW = destra

La barra spaziatrice arresta i motori.

Il tasto 'i' permette di inserire caratteri che poi il robot pronuncerà (occore installare il motore di sintesi vocale Espeak e le voci aggiuntive Mbrola - ho usato it3).

ACQUISIZIONE CONTENUTI MULTIMEDIALI:

Tasto 'p' = scatta un'instantanea e la invia alla chat Telegram specificata.

Tasto 'r' = registra un file audio di 10 secondi e lo invia alla chat Telegram specificata.

Tasto 'v' = registra un file video di 5: secondi e lo invia alla chat Telegram specificata.

VELOCITA' MOTORI:

h = velocità massima (high)

m = velocità media (medium)

l = velocità ridotta (low)

Il tasto 'q' interrompe l'esecuzione dello script.

Watch the video

4 - tgSend.py

Contiene le funzioni necessarie all'esecuzione degli script precedentemente descritti.

5 - streamCam.Py

Avvia l'anteprima della PICam e la rende disponibile all'IP locale del Raspberry (porta 8080) nel browser di qualsiasi periferica connessa alla rete locale.

Alt text

6 - VRStream.Py

Come "streamCam.py", ma l'anteprima viene visualizzata in due immagini adiacenti. In questo modo, se inseriamo lo smartphone in un visore per la realtà virtuale/aumentata, potremo controllare il robot in FPV.

Alt text Alt text

scrappybot's People

Contributors

fatualux avatar

Stargazers

Erik Golinelli avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.