Sie befinden sich hier: Lego® - Bauanleitungen - Control Center an NXT

Control Center an NXT:


Daten vom Control Center über I2C (TWI- Hardwaremodul) zwischen AVR- Mikrocontroller und Lego mindstorms NXT senden/ empfangen.
NXT ist der Master; ATmega32 ist der Slave

Control Center Mit dem Control Center lassen sich Bewegungsabläufe programmieren.

Schaltplan


Schaltplan Schaltung mit Optokoppler ATmega 32 Board
Schaltplan Schaltung mit Optokoppler ATmega32- Board

Ansteuerung
 

Bascom Quellcode für ATmega32


TWI- Hardwaremodul

'********************************************************************
'Control Center an Atmega 32
'Daten über TWI an NXT
'2011-11
'********************************************************************

$regfile = "M32def.dat"
$crystal = 7372800
$baud = 9600
$hwstack = 100
$swstack = 100
$framesize = 100

'Control Center
Ddrd = 0                                                    'Taster Control Center
Portd = &B11111100                                          'pull ups
A Alias Pind.2
B Alias Pind.3
N Alias Pind.4
S Alias Pind.5
W Alias Pind.6
E Alias Pind.7

Dim Wert As Word                                            'betätigte Taste

'Twi
Dim Twi_control As Byte                                     'Controlregister lokale kopie
Dim Twi_status As Byte
Dim Twi_data As Byte

Declare Sub Twi_init_slave                                  'TWI

Twi_data = 0
Call Twi_init_slave                                         'TWI aktivieren
On Twi Twi_isr
Enable Twi
Enable Interrupts

Do

Loop
End

'---- TWI ----
' TWI als slave aktivieren
Sub Twi_init_slave
    Twsr = 0                                                'status und Prescaler auf 0
    Twdr = &HFF                                             'default
    Twar = &H40                                             'Slaveadresse setzen                 ´
    Twcr = &B01000101                                       'ACK einschalten, TWI aktivieren, enable Interrupt
End Sub

Twi_isr:
        Twi_status = Twsr And &HF8                          'Status
        'will der Master ein Byte haben
        If Twi_status = &HA8 Or Twi_status = &HB8 Then
          Gosub Taste
          Twdr = Wert
        End If
        'TWINT muss immer gelöscht werden, damit es auf dem Bus weiter geht
        Twcr = &B11000101
Return

Taste:
Wert = &HFF            
If A = 0 Then Wert = &H1 
If B = 0 Then Wert = &H2
If N = 0 Then Wert = &H3
If S = 0 Then Wert = &H5
If W = 0 Then Wert = &H6
If E = 0 Then Wert = &H4
If N = 0 And E = 0 Then Wert = &H7
If E = 0 And S = 0 Then Wert = &H8
If S = 0 And W = 0 Then Wert = &H9
If W = 0 And N = 0 Then Wert = &HA
Return


Programmierung mit NXT-G:

 






Auslesen und auf dem NXT Display anzeigen, welche Taster auf dem Control Center betätigt wurden
NXT-G Programm


Programmierung mit LabVIEW:


Direkt- Modus


Auslesen und im Frontpanel anzeigen, welche Taster auf dem Control Center betätigt wurden

LabVIEW VI



Ich kann keinerlei Haftung für die Schaltungen übernehmen und auch keine Funktionsfähigkeit garantieren. Der Nachbau und Einsatz der hier veröffentlichten Schaltungen erfolgt auf eigene Gefahr. Ich übernehme keinerlei Garantie. Die VDE-Vorschriften sind zu beachten.