Go Down

Topic: Ardu-Megatank, ein Roboterkettenfahrzeug Projektvorstellung (In Progress) (Read 19603 times) previous topic - next topic

Megaionstorm

#15
Jun 24, 2012, 10:47 pm Last Edit: Jul 01, 2013, 11:09 am by Megaionstorm Reason: 1
Die Uhr, RTC DS1307

Dies ist das Uhrenmodul des Roboters:

Mit der oberen Stiftleiste wird das Modul mit der MCU verbunden, an die untere kann ein weiterer I2C Teilnehmen angeschlossen werden.
An der unteren Stiftleiste ist auch das 'SQUARE-WAVE OUT' (SO) Signal des DS1307 zugänglich, DS ist das Signal des optional einbaubarem Thermometers DS18B20.

Ein Sketch zum stellen der Uhrzeit:
Code: [Select]
/*Reads the value from a Real Time Clock (RTC) DS1307 and displays it in the serial monitor
*
*Created by D. Sjunnesson 1scale1.com d.sjunnesson (at) 1scale1.com
*
*Created with combined information from
*http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1180908809
*http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1191209057
*
*
*Big credit to  mattt (please contact me for a more correct name...) from the Arduino forum
*which has written the main part of the library which I have modified
*
*/

#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h> // written by  mattt on the Arduino forum and modified by D. Sjunnesson

void setup()
{
 Serial.begin(9600);

 RTC.stop();
 RTC.set(DS1307_SEC,0);        //set the seconds
 RTC.set(DS1307_MIN,43);     //set the minutes
 RTC.set(DS1307_HR,0);       //set the hours
 RTC.set(DS1307_DOW,1);       //set the day of the week
 RTC.set(DS1307_DATE,1);       //set the date
 RTC.set(DS1307_MTH,7);        //set the month
 RTC.set(DS1307_YR,12);         //set the year
 RTC.start();
}

void loop()
{
 Serial.print(RTC.get(DS1307_HR,true)); //read the hour and also update all the values by pushing in true
 Serial.print(":");
 Serial.print(RTC.get(DS1307_MIN,false));//read minutes without update (false)
 Serial.print(":");
 Serial.print(RTC.get(DS1307_SEC,false));//read seconds
 Serial.print("      ");                 // some space for a more happy life
 Serial.print(RTC.get(DS1307_DATE,false));//read date
 Serial.print("/");
 Serial.print(RTC.get(DS1307_MTH,false));//read month
 Serial.print("/");
 Serial.print(RTC.get(DS1307_YR,false)); //read year
 Serial.println();
 Wire.beginTransmission(1);
 Wire.send(DS1307_HR);
 Wire.send(DS1307_MIN);
 Wire.endTransmission();  
}


Ein Sketch zur Ausgabe der Uhrzeit über das Terminal:
Code: [Select]
/*Reads the value from a Real Time Clock (RTC) DS1307 and displays it in the serial monitor
*
*Created by D. Sjunnesson 1scale1.com d.sjunnesson (at) 1scale1.com
*
*Created with combined information from
*http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1180908809
*http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1191209057
*
*
*Big credit to  mattt (please contact me for a more correct name...) from the Arduino forum
*which has written the main part of the library which I have modified
*
*/

#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h> // written by  mattt on the Arduino forum and modified by D. Sjunnesson

void setup()
{
 Serial.begin(9600);
}

void loop()
{

 Serial.print(RTC.get(DS1307_HR,true)); //read the hour and also update all the values by pushing in true
 Serial.print(":");
 Serial.print(RTC.get(DS1307_MIN,false));//read minutes without update (false)
 Serial.print(":");
 Serial.print(RTC.get(DS1307_SEC,false));//read seconds
 Serial.print("      ");                 // some space for a more happy life
 Serial.print(RTC.get(DS1307_DATE,false));//read date
 Serial.print("/");
 Serial.print(RTC.get(DS1307_MTH,false));//read month
 Serial.print("/");
 Serial.print(RTC.get(DS1307_YR,false)); //read year
 Serial.println();
 Wire.beginTransmission(1);
 Wire.send(DS1307_HR);
 Wire.send(DS1307_MIN);
 Wire.endTransmission();  
}
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Megaionstorm

Die I2C Kommunikation

Manche der Bauteile die im Roboter verwendet werden kommunizieren über I2C.
RTC DS1307, MPU9250 9-Axis Gyro.

Dabei ist jedoch zu beachten das der DS1307 I2C 5V benötigt, die MPU9250 hingegen I2C 3,3V.

Hier kommt ein sogenanntes I2C Level Conversion Modul zum Einsatz:


Dieses Modul convertiert die 5V I2C Signale zu 3,3V I2C Signale und umgekehrt !

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Megaionstorm

#17
Jun 26, 2012, 12:37 am Last Edit: Jul 02, 2013, 04:49 am by Megaionstorm Reason: 1
Der Temperatursensor

Im Inneren des Panzers befindet sich zwischen den Spannungsreglern und den Motoren ein DS18B20 Temperatursensor.
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Megaionstorm

#18
Jun 28, 2012, 02:12 am Last Edit: Jul 02, 2013, 04:50 am by Megaionstorm Reason: 1
Die Programmierung der KI

Durch dieses Modul, welches in die Rückseite des Panzers eingebaut ist, kann der Sanguino über USB programmiert werden:
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Megaionstorm

#19
Jun 28, 2012, 10:52 pm Last Edit: Jul 01, 2012, 04:30 am by Megaionstorm Reason: 1
Die KI

Sketch kommt noch !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

uwefed

VFD sind zwar sehr schön, verbrauchen aber gegenüber LCD mit Hintergrundbeleuchtung sehr viel mehr Strom. (um die 5W)
Grüße Uwe

Megaionstorm

Zukünftige Features

GPS: PA6C GPS + LLC breakout board


Informations Display: ART128064MN37-DIW-R LCD-Display 128X64 ST7565R-Kontroller
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

volvodani

Gibt es schon etwas Konkretes oder ist das noch ein "Vorhaben". Auf dem Blog gibt leider auch keinen Fortschritt.
Gruß
Der Dani
0x2B | ~ 0x2B = 0xFF   
(Shakespeare)

Go Up