Grazie alla collaborazione con ROBOTICS-3D NASCE ROBOTICS OPEN SOURCE PLATFORM è la nuova piattaforma robotica 4WD ARDUINO UNO che interagisce con la tua App android tramite bluetooth.
La versione base consente di sperimentare le basi della robotica applicate a una piattaforma 4WD
Il robot "base" e composto da:
- Arduino Uno Rev3
- Dagu 4WD Magician Chassis
- 2A Motor Shield
- ULTRASONIC SENSOR HC-SR04
- 1 BUZZER
- 1 STAFFA X SR04
- 1 PORTABATTERIE
- 1 MODULO BLUETOOTH
- 10 jumper M/F
- 1 jumper a Y 1M/2F
Grazie agli sketch forniti come esempi, è possibile testare step by step le funzionalità base del 4wd, in particolare è possibile fare:
- TEST MOTORI
- TEST AUDIO
- TEST ULTRASUONI
- TEST BLUETOOH
Tra le applicazioni che puoi realizzare è incluso anche il Theremino (incluso nella versione base) altre in via di sviiluppo.
Android4WD è sia lo sketch Arduino sia l'applicazione Mobile che consente nella versione base di comandare il tuo ROSPI.
Con MIT App Inventor 2 puoi personalizzare la tua applicazione android per comandare il tuo robot
/* Nome: TestUltrasuoni.ino ------------------------------------------------------------- Semplice programma per misurare la distanza tramite HC-SR04 ------------------------------------------------------------- Autore : Ferrarini Fabio - www.robotics-3d.com www.artigianitecnologici.it Data : 27/09/2014 Revisione : */ #include "pitches.h" const int signalPin = 12; const int echoPin = 11; const int audioPin = 13; int distance = 0; // distanza ostacolo const int numOfReadings = 3; // numero letture int readings[numOfReadings]; // memorizza le letture in un array int arrayIndex = 0; // int total = 0; // Totale int avgDistance = 0; // Media int debug =1; const long baud = 9600; String pDist; void setup() { Serial.begin(baud); // pinMode(audioPin, OUTPUT); // Esegue una melodia PlayMelody(); } void loop() { distance = getDistance(); total = total - readings[arrayIndex]; // readings[arrayIndex] = distance; // total = total + readings[arrayIndex]; // arrayIndex++; // // if (arrayIndex >= numOfReadings) { arrayIndex = 0; } // calcola la media della distanza avgDistance = total / numOfReadings; pDist = String(avgDistance); Serial.print("distanza:"); Serial.println(pDist); } // Funzione di calcolo della distanza long getDistance() { unsigned long pulseTime; unsigned long distance; pinMode(signalPin, OUTPUT); digitalWrite(signalPin, LOW); // delayMicroseconds(2); // 2 microsecondi digitalWrite(signalPin, HIGH); // send a trigger pulse delayMicroseconds(10); // 10 microsecondi digitalWrite(signalPin, LOW); // signal pin low waiting for echo pulse pinMode(signalPin, INPUT); pulseTime = pulseIn(echoPin, HIGH); // read echo pulse length in microseconds distance = pulseTime/58; // distance in centimeters return distance; }