Skip to content

Installation

RobotFreak edited this page Apr 26, 2017 · 1 revision

Der c't-Bot ist ein Roboter Projekt der Zeitschrift c't aus dem Jahre 2006. Da mir der Einstieg mit der Original Software für Einsteiger als zu hoch erscheint, starte ich hier von vorne Schritt für Schritt auf Arduino Basis.

Installation Arduino IDE

Um den c't-Bot unter der Arduino IDE zu programmieren wird neben der Arduino IDE (v1.6.x oer höher) eine Board Konfiguration für den Prozessor des c't-Bots benötigt. Ursprünglich war der c't-Bot mit einem ATmega32 (32kB Flash, bestückt. Pinkompatible Prozessoren mit mehr Speicher gibt es unter der Bezeichnung ATmega644 (64kB Flash), bzw. ATmega1284 (128kB Flash). DIe Board Konfiguration Arduino Mighty Core unterstützt diese Prozessor Reihe.

Zur Installation zusätzlicher Boards muss zunächst unter den Arduino IDE Voreinstellungen eine zusätzliche Boardverwalter-URLs eingetragen werden. In diesem Fall: ttps://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json

Danach kann man die Board Konfiguration unter Werkzeuge > Board > Boardmanager... unter dem Namen MightyCore finden und installieren. Nun stehen die zusätzlichen Boards zur Verfügung.

Arduino Bootloader installieren

Der nächste Schritt besteht darin, den Arduino Bootloader auf den Prozessor zu flashen. Dadurch besteht dann die Möglichkeit Programme direkt aus der Arduino IDE über einen USB-seriell Wandler zu laden. Dazu muss aber zunächst der Bootloader geflashed werden. Der Bootloader wird am Ende des Flash Bereich des Prozessors geladen und der Prozessor so programmiert, das dieser Flash Bereich geschützt wird, und nach einem Neustart immer zuerst ausgeführt wird. Der Bootloader selbst macht nichts anderes, als auf Befehle der seriellen Schnittstelle zu lauschen, um ein neues Progrmm zu laden. Oder das zuletzt geladene Programm im Flash Speicher zu starten.

Für das einmalige Flashen des Bootloaders wird ein ISP Programmer benötigt. Wer keinen ISP Programmer hat, kann auch ein Arduino Board als ISP Programmer benutzen. Siehe https://www.arduino.cc/en/Tutorial/ArduinoISP

ISP Programmer

Der ISP Flasher sollte von der Arduino IDE unterstützt werden. Die Liste der unterstützten ISP Programmer findet man unter Werkzeuge > Programmer. Falls der vorhanden Programmer nicht dabei ist, siehe nächsten Abschnitt. Die Schritte im einzelnen:

  • ISP Programmer mit dem 10poligen (ST6) bzw. 6poligen (ST5) ISP Steckverbinder auf dem c'T-Bot Mainboard verbinden
  • ISP Programmer über USB mit dem PC verbinden.
  • Arduino IDE öffnen.
  • ISP Programmer unter Werkzeuge > Programmer auswählen
  • Unter Werkzeuge > Board den verwendeten Prozessor auswählen, z.B. ATmega644
  • Pinout ist erst mal egal
  • Als Clock wählt man 16MHz extern aus.
  • Evtl die Variante 644P / 644PA bzw. 644 / 644A. Siehe Prozessor Aufdruck
  • BOD: 2,7V für den Brownout Detect Level
  • Den Port des ISP Programmers
  • Anschliessend klickt man auf Bootloader brennen.
  • Falls der Brennvorgang gelingt
  • Im Fehlerfall, die Verdrahtung überprüfen, ggfs. wiederholen. Einige Programmer werden nicht unterstützt. Dann hilft nur die Methode im nächsten Absatz.

Arduino als ISP Programmer

Da mein ISP Programmer, das AVR Dragon Board,nicht in der Luste der unterstützten ISP Programmer auftauchte, und mein STK500 Board defekt ist, blieb mir nur die Möglichkeit ein Arduino Board als ISP Programmer zu verwenden. Die Schritte im einzelnen:

  • Arduino über USB mit dem PC verbinden.
  • Arduino IDE öffnen.
  • Zunächst das Programm ArduinoISP unter Datei > Beispiele > 11:ArduinoISP auswählen
  • Unter Werkzeuge > Board Board ggfs. Prozessor und Port des Arduino Board einstellen
  • ArduinoISP Sketch auf das Arduino Board Flashen
  • Arduino vom PC trennen
  • 6poliger ISP Schnittstelle auf dem Arduino bis auf die Reset Leitung 1:1 mit dem c't-Bot Mainboard verbinden 6poliger (ST5) ISP Steckverbinder
  • Reset Leitung an Pin 10 vom Arduino mit Pin 6poliger (ST5) ISP Steckverbinder verbinden
  • Arduino über USB mit dem PC verbinden.
  • Arduino IDE öffnen.
  • Unter Werkzeuge > Board den verwendeten Prozessor auswählen, z.B. ATmega644
  • Pinout ist erst mal egal
  • Als Clock wählt man 16MHz extern aus.
  • Evtl die Variante 644P / 644PA bzw. 644 / 644A. Siehe Prozessor Aufdruck
  • BOD: 2,7V für den Brownout Detect Level
  • Den Port des Arduino Boards auswählen
  • Arduino as ISP unter Werkzeuge > Programmer auswählen
  • Anschliessend klickt man auf Bootloader brennen.
  • Falls der Brennvorgang gelingt
  • Im Fehlerfall, die Verdrahtung überprüfen, ggfs. wiederholen.

Einführung

Modifikationen

Arduino Beispiele

  • Hello World
  • LED Test
  • Sensor Test
  • Motor Test
Clone this wiki locally
You can’t perform that action at this time.