Show Posts
Pages: 1 2 [3] 4 5 ... 44
31  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: May 23, 2014, 05:25:39 am
Ich bin bis Sonntag im Urlaub und schick dir dann ein Beispiel. Es kann auch Montag werde, je nachdem wie gut das Wetter am Sonntag ist ;-)
32  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: May 15, 2014, 11:36:40 am
Hi, beides ist möglich.  Der Innit Screen ist quasi so eine Funktion.  Du kannst aber auch das Menü mit einer Funktionen beginnen lassen. ( LCDMenuLib_jumpToFunc(funcname); ) Das mit dem Zurück Knopf versteh ich nicht ganz, mal funktionierts, mal nicht oder wie ?
Wieso sind bei der Funktion mehr { }  drin als benötigt werden ?
33  International / Deutsch / Re: Arduino + Raspberry Pi Roboter on: May 15, 2014, 10:05:11 am
Hi,
Möglichkeiten, um die Drehung zu erkennen
- Radsensoren (Vorsichtig mit Schlupf)
- Gyroskop (vor jeder Drehung neu auf 0 setzen)
- optischer Maussensor (anbringung nicht am Mittelpunkt des Fahrzeuges. Die zurückgelegte Strecke sollte bei einer Drehung auf der Stelle gleich sein, somit könnte damit auch der Winkel der Drehung bestimmt werden (Über den Rand des Kreises/Elipse))
34  International / Deutsch / Re: CAN Schnittstelle mit ATMEL STUDIO on: May 13, 2014, 09:54:04 am
Klingt gut, so ähnlich hab ich es auch beim erstenmal gelöst ;-)
Die Fehlermeldung sind ja auch keine schlimmen, da nur einige Hardwaredefinitionen bei dem Due nicht vorhanden sind.
35  International / Deutsch / Re: CAN Schnittstelle mit ATMEL STUDIO on: May 13, 2014, 08:38:25 am
Es befindet sich ein Beispiel welches du verwenden kannst unter den Beispiel Projekten. Das du den Arduino Due verwendest ist klar, da es keinen anderen mit direktem CAN Anschluss gibt.

Pfad zum Beispiel:
- File->New->Example Projects
- im Suchfeld oben rechts "CAN" eingeben
- als Device Family: "SAM3, 32-bit" auswählen
- Das "CAN Example - SAM3X-EK" öffnen.

Dieses Beispiel nutzt zwar ein anderes Board rund um den Prozessor, aber der Chip ist der gleiche und ich hab dieses Beispiel verwendet um CAN erfolgreich einzusetzen. Alle möglichen Konfigurationsmöglichkeiten sind in dem Beispiel vorhanden.

Bei der Ansteuerung der CAN Schnittstelle das verwendete Board egal, es kommt ja nur auf den CHIP an und SAM3X ist bei beiden der gleiche.

Welchen Programmer nutzt du um den Due zu Programmieren ?
Ich musste mir damals extra nen Adapter für die 2,0 mm Stiftleisten bestellen.




36  International / Deutsch / Re: CAN Schnittstelle mit ATMEL STUDIO on: May 12, 2014, 03:02:50 pm
Hi,
das ist aber nicht der komplette Code im Atmel Studio.
Ist in der Boardconfig die CAN Schnittstelle richtig initialisiert ?
Was ist mit den includes und dem restlichen drumherum ?

Du kannst im Atmel Studio direkt unter Beispiele. (Beispiel Projekte)  den Arduino auswählen und auch dazu ein Can Projekt öffnen. Dieses ist lauffähig. Ich hab diese Beispielprojekte von ein paar Monaten noch verwendet und daraus eine Anwendung programmiert. Bei den Beispielen muss man oft mit dem Watchdog aufpassen, da dieser Standard maäßig aktiviert ist. (16 Sekunden überlaufszeit)

Programmierst du den Arduino über die USB Schnittstelle oder direkt über den Jtag Header mit einem richtigen Debugger ?

Der Code sollte, so oder so ähnlich im Beispiel aussehen:
Code:
/**
 * \file
 *
 * \brief CAN example for SAM.
 *
 * Copyright (c) 2011 - 2013 Atmel Corporation. All rights reserved.
 *
 * \asf_license_start
 *
 * \page License
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 *
 * 3. The name of Atmel may not be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * 4. This software may only be redistributed and used in connection with an
 *    Atmel microcontroller product.
 *
 * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
 * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 *
 * \asf_license_stop
 *
 */

/**
 *  \mainpage CAN example
 *
 *  \par Purpose
 *
 *  This example demonstrates the basic functions of CAN controller.
 *
 *  \par Requirements
 *
 *  This package can be used with SAM3X or SAM4E evaluation kits.
 *  CAN0 and CAN1 should be hooked-up externally before running
 *  the example.
 *
 *  \par Description
 *
 *  In this example, it sends and receives messages over CAN bus to manage
 *  the LED on the board and display CAN message on the terminal window.
 *  There are four basic tests:
 *  - test1: Test the transmission from CAN0 Mailbox 0 to CAN1 Mailbox 0.
 *  - test2: Test the transmission from CAN0 Mailboxes 1 & 2 to CAN1 Mailbox 7
 *    without overwrite.
 *  - test3: Test the transmission from CAN0 Mailboxes 1 & 2 to CAN1 Mailbox 7
 *    with overwrite.
 *  - test4: Test the communication between CAN1 Mailbox 3 and CAN0 Mailbox 3.
 *
 *  \par Usage
 *
 *  -# Build the program and download it into the evaluation board.
 *  -# On the computer, open and configure a terminal application
 *     (e.g., HyperTerminal on Microsoft Windows) with these settings:
 *    - 115200 bauds
 *    - 8 bits of data
 *    - No parity
 *    - 1 stop bit
 *    - No flow control
 *  -# Connect CAN0 (J17 on SAM3X-EK or J13 on SAM4E-EK) and CAN1 (J20
 *     on SAM3X-EK or J14 on SAM4E-EK) in loop.
 *  -# Start the application.
 *  -# Upon startup, the application will output the following lines
 *     on the terminal window.
 *      \code
 *      -- CAN Example --
 *      -- SAMxx-EK --
 *      -- Compiled: xxx xx xxxx xx:xx:xx --
 *      \endcode
 *  -# Press a key in the terminal window to run the tests. CAN messages
 *     will be displayed on the terminal window and LED0 or LED1 will toggle
 *     according to the messages.
 */

#include <stdio.h>
#include <string.h>
#include "board.h"
#include "sysclk.h"
#include "exceptions.h"
#include "uart.h"
#include "pmc.h"
#include "ioport.h"
#include "can.h"
#include "stdio_serial.h"
#include "sn65hvd234.h"
#include "conf_board.h"
#include "conf_clock.h"

#define STRING_EOL    "\r"

#define STRING_HEADER "-- CAN Example --\r\n" \
                      "-- "BOARD_NAME" --\r\n" \
                      "-- Compiled: "__DATE__" "__TIME__" --"STRING_EOL

#define CAN_MSG_TOGGLE_LED_0        0x11223344
#define CAN_MSG_TOGGLE_LED_1        0xAABBCCDD
#define CAN_MSG_DUMMY_DATA          0x55AAAA55

//...
37  International / Deutsch / Re: Arduino <-> Raspberry <-> MySQL Serial Communication on: May 04, 2014, 03:31:21 am
Ich blick da gerade so schnell auch nicht durch:
Vielleicht zuviel abgeschnitten hier:  $gpin=substr($_GET['pin'],-2);
38  International / Deutsch / Re: Arduino + Raspberry Pi Roboter on: May 03, 2014, 02:26:34 am
Wenn es ums auswerten auf dem Arduino geht nicht. Aber falls du überprüfen willst, ob die Übertragung geklappt hat. Kannst du mit CRC8 eine Checksumme berechnen, die du z.B. hinten an den String anhängst. Die Checksumme wird dann von beiden Seiten berechnet, also von Raspberri Pi und vom Arduino. Stimmt diese Summe überein, ist die Übertragung technisch Fehlerfrei oder bewusst manipuliert worden ;-)

Du könntest deine Informationen anstatt in Bytes auch in Bits übertragen.  Z.b. passt in das Zeichen "a" = 01100001 (binär) auch viel viel mehr Informationen rein:

geschicktere Aufteilung:
Bits 0-2: Geschwindigkeit linkes Rad (0 - 7) => 8 Stufen
Bit  3:  Richtung des Rades:  0=> vor, 1=zurück
Bits 4-6: Geschwindigkeit des rechten Rades (0 - 7) => 8 Stufen
Bit 7: Richtung des rechten Rades

Nun wäre es möglich mit der Übertragung eines Bytes den Roboter zu lenken, zu navigieren, in alle Richtungen, links, rechts, vor und zurück. Denk mal drüber nach ;-)

39  International / Deutsch / Re: Arduino + Raspberry Pi Roboter on: May 02, 2014, 06:04:49 pm
Die einfachste Verbindung zwischen dem Raspberry Pi und dem Arduino kannst du per USB Herstellen und dann im Arduino einfach die serielle Schnittstelle nutzen. In welcher Software programierst du auf dem Raspberry Pi C / C++ / Python ?
Vorteil hier wäre, dass du den Arduino über das Raspberry Pi auch programmieren und flaschen kannst. Es ist auch möglich das Raspberry Pi per Wlan ins Netzwerk zu hängen und über den PC, -> Router -> Wlan -> Raspberry Pi  den Arduino mit neuer Firmware versorgen. ;-)
40  International / Deutsch / Re: Arduino <-> Raspberry <-> MySQL Serial Communication on: May 01, 2014, 03:41:14 pm
Ok das ist klar, weil du ja schön deine Variablen abfragst und eventuell eine Fehlermeldung ausgibts, aber das Script nicht stopps.

Würde das nun so aussehen
Code:
<?php 
//....
if (isset($_GET['xxy'])  or isset($_GET['xxz']) or ....) {
   
mysql_query("UPDATE $tabellenname SET Pin = '$gpin', Value = '$cmd' WHERE id = '$id'"$link);
}
//...
wird das Update nur ausgeführt wenn auch ein Eintrag vorhanden ist. xxy und xxz sind nur Beispiele

41  International / Deutsch / Re: Arduino <-> Raspberry <-> MySQL Serial Communication on: May 01, 2014, 03:32:23 pm
Ich finde den Fehler gerade auch nicht, wobei ich mich mit JavaScript auch nur wenig auskenne
42  International / Deutsch / Re: Arduino <-> Raspberry <-> MySQL Serial Communication on: May 01, 2014, 02:29:08 pm
Also:
Code:
<label for="P03"><b>OUT 03</b></label>
                    <select name="P03" id="P03" data-mini="false" data-role="slider">
                      <option value="0">Off</option>
                      <option value="1" selected>On</option>
                    </select>
Schaltet bei mir den Button auf On um, also wird der Wert irgendwie falsch aus der Datenbank geholt, bzw garnicht.

Ich dachte wegen:

Quote
Wenn ich direkt zB P12 nehme, dann kann ich in die DB schreiben aber nicht Updaten.
würde das Eintragen funktionieren. Was ist wenn du den Wert in der Datenbank mit PHPMyAdmin einträgst und dir anschauest, wird dann der Button richtig angezeigt ?

Wenn das funktioniert, kann man sich das Updaten anschauen
[/s]

Edit:
Ok
43  International / Deutsch / Re: Arduino <-> Raspberry <-> MySQL Serial Communication on: May 01, 2014, 02:07:31 pm
Ah das ist auch nicht schwer wenn du die Werte ausgelesen hast:

Code:
<?php

$p03 
= ... aus Datenbank auslesen  mit Status 0 oder 1
?>

                   <label for="P03"><b>OUT 03</b></label>
                    <select name="P03" id="P03" data-mini="false" data-role="slider">
                      <option value="0" <?php if ($p03 == "0") echo "selected"?>>Off</option>
                      <option value="1"<?php if ($p03 == "1") echo "selected"?>>On</option>
                    </select>

Edit:
Abfrage angepasst
44  International / Deutsch / Re: Arduino <-> Raspberry <-> MySQL Serial Communication on: May 01, 2014, 02:00:47 pm
Was heißt: In Db schreiben, aber nicht updaten

Also der Insert geht aber UPDATE nicht bei Sql
oder kommen die Daten nicht zurück. Welches Update genau ist gemeint ?
45  International / Deutsch / Re: Arduino <-> Raspberry <-> MySQL Serial Communication on: May 01, 2014, 01:49:39 pm
Also die Select Felder kannst du wie Checkboxen abfragen. Nur musst du erst einen Feld eintragen bevor du dieses Update kannst.

Pseudo-Code:
-> Select * FROM tabelle_xyz WHERE id=:id     
-> if count result == 0
->    INSERT .....
-> else
->     UPDATE ... WHERE id = :id

-> SELECT ....  wie gehabt

Pages: 1 2 [3] 4 5 ... 44