Archivi tag: open source

Doggy, an Arduino DIY quadruped Robot

Hi everyone!

This is Doggy, it is a quadruped robot realized with cheap components as Arduino, Sg90 (x12), PCA9685 and an external battery (5V, 2A max). In the future, I will add sensor components to improve the robot behaviour. The project goal is to provide a very simple robot with a very low price, in such a way everyone will be able to make its own Doggy.

The robot mathematic model is based on the 2R Robotic Arm in 3D space: the main idea is to consider the quadruped legs as 4 human arms (independently controlled) and thanks to the end-effector linear trajectories we can realize complex movements.

The robot 3D model has been inspired by this thingiverse project: https://www.thingiverse.com/thing:4274304

I work in my spare time on this project and I hope to be able to open source it as soon as possible, stay tuned!

Arduino Matrice 4×4

Questa tastiera è composta da 16 pulsanti che possono essere letti in due modi:

  • -SINGOLARMENTE cioè utilizziamo 16 pin di arduino per leggere tutti i pulsanti.
  • -SISTEMA A MATRICE cioè utilizziamo un numero limitato di pin(nel nostro caso 8) per leggere sempre 16 pulsanti.

Per usare una tastiera 4×4 con arduino dovrete fare i seguenti collegamenti: keypadb

Le 8 resistenze devono avere tutte  lo stesso valore(nel nostro caso  1Kohm), il loro compito è quello di evitare cortocircuiti.

Il programma si può dividere in 3 parti:

  1. – lettura delle colonne valori: 0,1,2,3
  2. -lettura delle righe valori: 0,1,2,3
  3. – Calcolo del tasto = colonna + ( riga * 4 )

DOWNLOAD PROGRAMMA

download-icon

Arduino Display LCD 16×2

LCd

Questo LCD 16×2 retroilluminato è il display  utilizzato nell’ ArduFonino.

Ha 16 piedini:

  1. GND
  2. VCC
  3. V0 (Regolazione NERO delle lettere )
  4. RS register select
  5. Read / Write ( leggere o scrivere col microcontrollore )
  6. ENABLE  attivare o disattivare il display
  7. NON USATO
  8. NON USATO
  9. NON USATO
  10. NON USATO
  11. D4 pin di comunicazione
  12. D5 pin di comunicazione
  13. D6 pin di comunicazione
  14. D7 pin di comunicazione
  15. Retroilluminazione
  16. Retroilluminazione

LCD_bb

Comandi usati nell’ Ardufonino:

#include <LiquidCrystal.h>     Inseriamo la libreria arduino del display.

LiquidCrystal lcd(RS, EN, D4, D5 ,D6, D7);    va sempre messo in cima al programma, perchè serve a inizializzare i pin din arduino.

–   lcd.begin(Numero_colonne, Numero_righe);   va  messo nel setup.

lcd.print(numero);   scrivo una parola o una variabile.

lcd.setCursor(Asse_X, Asse_Y);    decido dove iniziare a scrivere.

lcd.clear();   cancello tutto.

lcd.createChar(0,ARRAY);   inserisco un Array 8×5 in una casella del display ( si usa pe fare dei simboli ).

 

 

Arduino CLOCK (Serial Monitor)

Questo è il modo più semplice per poter realizzare, con arduino , un orologio, senza l’utilizzo di componenti esterne.
Copiando questo Software nel vostro arduino, visualizzerete nel il serial monitor un orario (inizialmente impostato a 00:00:00) che cambierà ad ogni secondo.

00 (ORE):00 (MINUTI):00 (SECONDI)

Per impostare l’orario esatto vi basterà cambiare i valori delle sei variabili:

– secondi_unita
– secondi_decine
– minuti_unita
– minuti_decine
– ore_unita
– ore_decine

Se invece volete velocizzare il vostro conteggio vi basterà modificare il valore di #define CLOCK

 #define CLOCK 1000 //con questo define decidiamo il Clock del nostro orologio che normalmente è 1 Secondo
 // VARIANDO QUESTE 6 VARIABILI DECIDIAMO L'ORARIO INIZIALE DEL NOSTRO OROLOGIO
 byte secondi_unita=0;
  byte secondi_decine=0;
  byte minuti_unita=0;
  byte minuti_decine=0;
  byte ore_unita=0;
  byte ore_decine=0;
 void setup (void)
  {
  Serial.begin(57600);
  }
  void loop (void)
  {
  secondi_unita=secondi_unita+1;
  delay(CLOCK);
  if(secondi_unita>9)
  {
  secondi_unita=0;
  secondi_decine=secondi_decine+1;
  }
  if(secondi_decine>=6)
  {
  secondi_decine=0;
  minuti_unita=minuti_unita+1;
  }
  if(minuti_unita>9)
  {
  minuti_unita=0;
  minuti_decine=minuti_decine+1;
  }
  if(minuti_decine>=6)
  {
  minuti_decine=0;
  ore_unita=ore_unita+1;
  }
  if(ore_unita>9)
  {
  ore_unita=0;
  ore_decine=ore_decine+1;
  }
  if((ore_decine>=2)&&(ore_unita==4))
  {
  secondi_unita=0;
  secondi_decine=0;
  minuti_unita=0;
  minuti_decine=0;
  ore_unita=0;
  ore_decine=0;
  }
 Serial.print("                                                          ");
  Serial.print(ore_decine);
  Serial.print(ore_unita);
  Serial.print(":");
  Serial.print(minuti_decine);
  Serial.print(minuti_unita);
  Serial.print(":");
  Serial.print(secondi_decine);
  Serial.println(secondi_unita);
  }

 

ArduFonino 1.0 Start 1°

“IPHONE ZERO è il primo modello di iPhone, che Steve Jobs realizzò a 8 anni, nel garage di casa, collegando due lattine di coca-cola con un filo della biancheria e gridando “pronto!” in una delle due lattine mentre sua madre era in ascolto all’altra lattina.Ognuno può realizzarlo con le sue mani, a costo quasi nullo, personalizzando il regalo con una spiritosa cover di carta di giornale.”

ArduFonino è un cellulare opensource creato con arduino, capace di effettuare e ricevere chiamate e di inviare e ricevere messaggi, inoltre con la realizzazione di questo progetto ho voluto gettare le basi per la costruzione di un sistema telefonico elementare. L’idea mi è venuta per semplice curiosità, perché volevo fare qualcosa che nessuno avesse mai fatto, dimostrando a tutti che volere è potere.

 

Clicca qui per vedere la Versione 2.0

 

ArduFonino è composto da 3 parti: 


-Shield di interfacciamento, è la parte con la quale controlliamo il telefono, è costituita da una tastiera di 11 pulsanti, da un display LCD retroilluminato, da un microfono, da un altoparlante, da un trimmer e da 13 resistenze. La disposizione dei componenti è quasi uguale a quella dei vecchi cellulari con tastiera, per via della sua  enorme comodità, inoltre questa interfaccia può essere collegata sia ad un arduino UNO e ad un arduino MEGA.

keyboard-shield comp

-Shield GSM, un circuito che ci permette appunto di ricevere ed inviare chiamate e messaggi, per pilotarlo utilizzeremo dei comandi AT che arduino invierà tramite una comunicazione seriale . Questa shield a integrata l’uscita e l’ingresso audio (tramite un connettore jack), l’antenna ed un modulino GSM.

Compra la tua prima Shield GSM

Arduphone comp

 

-Arduino UNO, un microcontrollore che funzina a 16 Mhz, con 13 pin digitali e 6 analogici è il componente più importante del progetto, perché permette, la realizzazione vera e propria del cellulare, dato che fa da tramite tra le due shield.

Compra il tuo primo Arduino Uno

arduino_uno_large comp

freccia a destra

ArduFonino 1.0 Batteria 2°

Per visualizzare il livello della batteria sul display creeremo la funzione Livello batteria(), che ci permetterà di vedere sulla parte alta a destra dello schermo lo stato della pila.

Per prima cosa facciamo 8 array chiamati: batteria_1, batteria_2, batteria_3, batteria_4, batteria_5, batteria_6, batteria_7, batteria_8 e simbolo_USB, ognuno dei quali rappresenterà  un livello di carica della batteria.

Per poter leggere il voltaggio della pila utilizzeremo un partitore di tensione, che fornirà al pin analogico di arduino una tensione pari alla metà dell’ alimentazione.

La formula per svolgere il calcolo è molto semplice:

A1 = [ R2 / ( R1 + R2 ) ] * Vcc

Nel nostro caso avremo

A1 = [ 82000 / ( 82000 + 82000 ) ] * 9 = 4,5VLivello batteria

Per poter sapere la tensione, saremo obbligati ad utilizzare questo circuito, perché i pin analogici di arduino supportano massimo 5V, e collegandone 9 avremmo probabilmente bruciato il microcontrollore.

batteria comp

 Una volta finito il circuito completiamo la funzione, nella quale, per prima cosa,leggeremo il valore della tensione compreso tra 0-1023 e tramite una proporzione (map), convertiremo questo risultato in valori compresi tra 0-8 (variabile “batteria”), successivamente ci basterà assegnare ad ognuno di essi uno degli array precedenti.

Livello batteria

Questa funzione ci permette anche, di capire se il cellulare è alimentato tramite USB, mostrandoci quest’icona, in alto a destra del display.

Attacco USB

Sapendo quanto valgono 5V (più o meno 530-541), mettiamo un if, che fa comparire l’immagine a sinistra solamente quando collego l’USB.

freccia a sinistrafreccia a destra

 

 

 

Arduino Ultrasonic sensor HC-SR04

Il sensore HC-SR04 è un sensore ad ultrasuoni molto facile da interfacciare ad arduino composto da 4 pin:

–      VCC deve essere 5V

–      GND

–      TRIGGER pin per attivare e disattivare il trigger

–      ECHO il pin che ci restituisce il valore della lettura

hc-sr04_ultrasonic_sensor

Per poter acquisire dei dati da questo sensore dovremo solamente mettere a livello logico 1 e poi dopo un ritardo a livello logico 0 il pin di TRIGGER, successivamente leggeremo tramite l’echo il tempo che ha impiegato l’ultrasuono a  ritornare.

Infine ci basterà calcolare tramite una semplice formula la distanza tra sensore ed ostacolo.

Troverete tutte le informazioni all’interno del file ZIP

DOWNLOAD FILE

download-icon

ArduFonino 1.0 Download 6°

Una volta che avrete realizzato la vostra shield tastiera/display, potrete scaricare il programma completo del cellulare .

Ricontrollate per sicurezza tutti i collegamenti!!!

istruzioni:

tasto 2 = vai su

tasto 8 = vai giù

tasto 5 = seleziona messaggio/numero rubrica

tasto chiamata = effettua/concludi chiamata ed invia SMS

Clicca qui per scaricare il file ZIP

download-icon

freccia a sinistra

Arduino Touch Screen

In questa pagina vi spiegherò come interfacciare un arduino qualsiasi ad un touch screen RESISTIVO. ci serviranno:

– Un arduino

arduino_uno_large comp

– Un connettorino per il touch screen

connector ds

– Un touchscreen

nintendo-ds-touch-screen-500x500

L’adattatore di colore rosso ci servirà a collegare i pin del touch con quelli di arduino. La logica di funzionamento del touch è molto semplice, esso può essere rappresentato come un insieme di 2 potenziometri.

ASSE_X ASSE_Y

Quando eserciterete una pressione sul touch esso farà variare i valori di questi due componenti,

e per sapere con precisione il punto in cui verrà applicata questa forza ci basterà sapere il valore di X ed Y.

Una volta fatto ciò intersecheremo questi due risultati che ci forniranno il punto di contatto.

    Collegamenti:

   arduino pin A0 (14) collegato ad Y1

    arduino pin A1 (15) collegato ad X2

    arduino pin A2 (16) collegato ad Y2

    arduino pin A3 (17) collegato ad X1

Nel programma i valori di X ed Y saranno in millimetri

X   =    0 mm – 500 mm

Y   =    0 mm – 650 mm

Per Scaricare il programma clicca qui:

download-icon