<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>http://www.nibo-roboter.de/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Workwind</id>
		<title>Nibo Wiki - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="http://www.nibo-roboter.de/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Workwind"/>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/wiki/Spezial:Beitr%C3%A4ge/Workwind"/>
		<updated>2026-05-07T11:26:37Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee&amp;diff=1295</id>
		<title>NIBObee</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee&amp;diff=1295"/>
				<updated>2018-01-26T19:07:40Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:NIBObee.jpg|180px|left|NIBObee]]&lt;br /&gt;
&lt;br /&gt;
Der [[Roboterbausatz]] '''NIBObee''' ist ein speziell für Schüler entwickelter, in C, C++, Java und Assembler [[Programmierung (NIBObee)|programmierbarer]] autonomer Roboter. Der Roboter hat einen [[ATmega16]] als Hauptprozessor, zwei [[Fühler (NIBObee)|Fühler]] und drei [[Bodensensoren (NIBObee)|Boden-/Liniensensoren]] zur Wahrnehmung seiner Umgebung und einen integrierten USB-Programmer ([[ATtiny44]]), der zusätzlich als Ladegerät für die Akkus dient. Zwei Motoren dienen als [[NIBObee/Antrieb|Antrieb]], die [[Odometrie (NIBObee)|Odometriemessung]] erfolgt durch zwei Lichtschranken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==Informationen==&lt;br /&gt;
[[image:1787_NIBObee.JPG|thumb|NIBObee]]&lt;br /&gt;
[[image:NIBObee_RoboCup2011.JPG|thumb|NIBObee RoboCup2011]]&lt;br /&gt;
[[image:NIBObee_schematic_overview.png|thumb|System-Architektur]]&lt;br /&gt;
[[image:NIBObee_seitlich.jpg|thumb|NIBObee]]&lt;br /&gt;
[[image:NIBObee_Platine.jpg|thumb|NIBObee]]&lt;br /&gt;
[[image:NIBObee_Augen.JPG|thumb|NIBObee]]&lt;br /&gt;
* [[NIBObee Library|C-Bibliothek]]&lt;br /&gt;
* [[NIBObee/FAQ|'''FAQ''' (Häufig gestellte Fragen)]]&lt;br /&gt;
* [[NIBObee/Ersatzteile|Ersatzteile]]&lt;br /&gt;
* [[NanoVM|NanoVM]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungen/Zubehör==&lt;br /&gt;
* [[Blue-Modul]]&lt;br /&gt;
* [[NIBObee/Tuning-Kit|NIBObee-Tuning-Kit]]&lt;br /&gt;
* [[BGX1|BGX1 Grafikdisplay und IO Erweiterung]]&lt;br /&gt;
* [[NIBObee-Berry|NIBObee-Berry Add-On für Anbindung eines Raspberry Pi (Linux)]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* [[nibobee_nicai_de:|nibobee.nicai-systems.de]] - Produktseite bei ''nicai-systems''&lt;br /&gt;
* [[download_nicai_com:nibo/Doku_NIBObee_20141122.pdf|Doku_NIBObee_20141122.pdf]] - Die Bauanleitung des NIBObee Roboters&lt;br /&gt;
* [[download_nicai_com:nibo/Tutorial_NIBObee_20141201.pdf|Tutorial_NIBObee_20141201.pdf]] - Programmiertutorial zur C-Programmierung des NIBObee Roboters&lt;br /&gt;
* [[reichelt_article:91023|www.reichelt.de]] - NIBObee bei ''reichelt elektronik''&lt;br /&gt;
&lt;br /&gt;
* weitere [[Linksammlung|Links]] zum Thema&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBObee]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1290</id>
		<title>ATmega88</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1290"/>
				<updated>2016-05-05T09:22:35Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATmega88PA-AU.jpg|thumb|Atmel ATmega88PA-AU im TQFP32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88A-MU.jpg|thumb|Atmel ATmega88A-MU im MLF32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88PA-PU.jpg|thumb|Atmel ATmega88PA-PU im PDIP28-Gehäuse]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der ''ATmega88'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 8 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
==Verwendung==&lt;br /&gt;
* NIBObee: [[BGX1|BGX1 Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
* NIBO 2: [[NIBO 2/Coprozessor|Coprozessor]] (ATmega88PA-AU)&lt;br /&gt;
* NIBO burger: [[Maroon Shield|maroon SHIELD Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega88'''&lt;br /&gt;
 |''ATmega88V''&lt;br /&gt;
 |'''ATmega88A'''&lt;br /&gt;
 |''ATmega88PA''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |8&lt;br /&gt;
 |8&lt;br /&gt;
 |8&lt;br /&gt;
 |8&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |512&lt;br /&gt;
 |512&lt;br /&gt;
 |512&lt;br /&gt;
 |512&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |1024&lt;br /&gt;
 |1024&lt;br /&gt;
 |1024&lt;br /&gt;
 |1024&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |10&lt;br /&gt;
 |20&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf ATmega88PA datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega88 von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=77 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 88 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBO 2]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:BGX1]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1289</id>
		<title>ATmega88</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1289"/>
				<updated>2016-05-05T09:21:57Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATmega88PA-AU.jpg|thumb|Atmel ATmega88PA-AU im TQFP32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88A-MU.jpg|thumb|Atmel ATmega88A-MU im MLF32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88PA-PU.jpg|thumb|Atmel ATmega88PA-PU im PDIP28-Gehäuse]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der ''ATmega88'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 8 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
==Verwendung==&lt;br /&gt;
* NIBObee: [[BGX1|BGX1 Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
* NIBO 2: [[NIBO 2/Coprozessor|Coprozessor]] (ATmega88PA-AU)&lt;br /&gt;
* NIBO burger: [[Maroon Shield|maroon SHIELD Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega88'''&lt;br /&gt;
 |'''ATmega88V'''&lt;br /&gt;
 |'''ATmega88A'''&lt;br /&gt;
 |'''ATmega88PA'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |8&lt;br /&gt;
 |8&lt;br /&gt;
 |8&lt;br /&gt;
 |8&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |512&lt;br /&gt;
 |512&lt;br /&gt;
 |512&lt;br /&gt;
 |512&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |1024&lt;br /&gt;
 |1024&lt;br /&gt;
 |1024&lt;br /&gt;
 |1024&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |10&lt;br /&gt;
 |20&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf ATmega88PA datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega88 von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=77 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 88 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBO 2]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:BGX1]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATtiny44&amp;diff=1288</id>
		<title>ATtiny44</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATtiny44&amp;diff=1288"/>
				<updated>2016-05-05T09:13:28Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATtiny44A-PU.jpg|thumb|Atmel ATtiny44A-PU im PDIP14-Gehäuse]]&lt;br /&gt;
Der ''ATtiny44'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 4 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
====Gehäuse====&lt;br /&gt;
Sowohl in der SMD Version (SOIC), als auch in der THT Version (PDIP) verfügt der Baustein über 14 Anschlüsse. &lt;br /&gt;
Die quadratischen SMD-Versionen (QFN/MLF) haben 20 Anschlüsse, von denen 6 Anschlüsse nicht belegt sind.&lt;br /&gt;
&lt;br /&gt;
===NIBO===&lt;br /&gt;
Der ''ATtiny44-20SSU'' wurde bei der ersten Version des [[Nibo|Roboterbausatz Nibo]] gleich zwei mal verwendet: Ein Controller f&amp;amp;uuml;r die Motorregelung und der zweite zur Auswertung der Distanzsensoren. &lt;br /&gt;
Da es sich um die SMD (surface-mounted device) Variante handelt, waren die beiden Mikrocontroller beim Bausatz bereits auf der Platine aufgel&amp;amp;ouml;tet.&lt;br /&gt;
&lt;br /&gt;
===NIBObee===&lt;br /&gt;
Beim [[NIBObee]] wird ein ''ATtiny44A-PU'' zur USB-Anbindung, als Programmieradapter und als Ladecontroller verwendet.&lt;br /&gt;
&lt;br /&gt;
===NIBO burger===&lt;br /&gt;
Beim [[NIBO burger]] wird ein ''ATtiny44A-PU'' zur USB-Anbindung, als Programmieradapter und als Ladecontroller verwendet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATtiny44'''&lt;br /&gt;
 |''ATtiny44V''&lt;br /&gt;
 |'''ATtiny44A'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(Bytes)&lt;br /&gt;
 |4096&lt;br /&gt;
 |4096&lt;br /&gt;
 |4096&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |10&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |4,5 - 5,5&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8006.pdf ATtiny44 datasheet] - Datenblatt &amp;amp;uuml;ber den ATtiny44 von Atmel&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8183.pdf ATtiny44A datasheet] - Datenblatt &amp;amp;uuml;ber den ATtiny44A von Atmel&lt;br /&gt;
* [http://avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=140 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATtiny44 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:Nibo]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:NIBO burger]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATtiny]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATtiny44&amp;diff=1287</id>
		<title>ATtiny44</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATtiny44&amp;diff=1287"/>
				<updated>2016-05-04T12:28:18Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: /* NIBO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATtiny44A-PU.jpg|thumb|Atmel ATtiny44A-PU im PDIP14-Gehäuse]]&lt;br /&gt;
Der ''ATtiny44'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 4 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
====Gehäuse====&lt;br /&gt;
Sowohl in der SMD Version (SOIC), als auch in der THT Version (PDIP) verfügt der Baustein über 14 Anschlüsse. &lt;br /&gt;
Die quadratischen SMD-Versionen (QFN/MLF) haben 20 Anschlüsse, von denen 6 Anschlüsse nicht belegt sind.&lt;br /&gt;
&lt;br /&gt;
===NIBO===&lt;br /&gt;
Der ''ATtiny44'' wurde bei der ersten Version des [[Nibo|Roboterbausatz Nibo]] zweimal verwendet: Ein Controller f&amp;amp;uuml;r die Motorregelung und der zweite zur Auswertung der Distanzsensoren. &lt;br /&gt;
Da es sich um ein SMD (surface-mounted device) Bauteil handelt, waren die beiden Mikrocontroller beim Bausatz bereits auf der Platine aufgel&amp;amp;ouml;tet.&lt;br /&gt;
&lt;br /&gt;
===NIBObee===&lt;br /&gt;
Beim [[NIBObee]] wird der ''ATtiny44'' zur USB-Anbindung, als Programmieradapter und als Ladecontroller verwendet.&lt;br /&gt;
&lt;br /&gt;
===NIBO burger===&lt;br /&gt;
Beim [[NIBO burger]] wird der ''ATtiny44'' zur USB-Anbindung, als Programmieradapter und als Ladecontroller verwendet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATtiny44'''&lt;br /&gt;
 |''ATtiny44V''&lt;br /&gt;
 |'''ATtiny44A'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(Bytes)&lt;br /&gt;
 |4096&lt;br /&gt;
 |4096&lt;br /&gt;
 |4096&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |10&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |4,5 - 5,5&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8006.pdf ATtiny44 datasheet] - Datenblatt &amp;amp;uuml;ber den ATtiny44 von Atmel&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8183.pdf ATtiny44A datasheet] - Datenblatt &amp;amp;uuml;ber den ATtiny44A von Atmel&lt;br /&gt;
* [http://avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=140 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATtiny44 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:Nibo]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:NIBO burger]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATtiny]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATtiny44&amp;diff=1286</id>
		<title>ATtiny44</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATtiny44&amp;diff=1286"/>
				<updated>2016-05-04T12:26:49Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATtiny44A-PU.jpg|thumb|Atmel ATtiny44A-PU im PDIP14-Gehäuse]]&lt;br /&gt;
Der ''ATtiny44'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 4 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
====Gehäuse====&lt;br /&gt;
Sowohl in der SMD Version (SOIC), als auch in der THT Version (PDIP) verfügt der Baustein über 14 Anschlüsse. &lt;br /&gt;
Die quadratischen SMD-Versionen (QFN/MLF) haben 20 Anschlüsse, von denen 6 Anschlüsse nicht belegt sind.&lt;br /&gt;
&lt;br /&gt;
===NIBO===&lt;br /&gt;
Der ''ATtiny44'' wird beim [[Nibo|Roboterbausatz Nibo]] zweimal verwendet: Ein Controller f&amp;amp;uuml;r die Motorregelung und der zweite zur Auswertung der Distanzsensoren. &lt;br /&gt;
Da es sich um ein SMD (surface-mounted device) Bauteil handelt, sind die beiden Mikrocontroller im Bausatz bereits auf der Platine aufgel&amp;amp;ouml;tet.&lt;br /&gt;
&lt;br /&gt;
===NIBObee===&lt;br /&gt;
Beim [[NIBObee]] wird der ''ATtiny44'' zur USB-Anbindung, als Programmieradapter und als Ladecontroller verwendet.&lt;br /&gt;
&lt;br /&gt;
===NIBO burger===&lt;br /&gt;
Beim [[NIBO burger]] wird der ''ATtiny44'' zur USB-Anbindung, als Programmieradapter und als Ladecontroller verwendet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATtiny44'''&lt;br /&gt;
 |''ATtiny44V''&lt;br /&gt;
 |'''ATtiny44A'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(Bytes)&lt;br /&gt;
 |4096&lt;br /&gt;
 |4096&lt;br /&gt;
 |4096&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |256&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |10&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |4,5 - 5,5&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8006.pdf ATtiny44 datasheet] - Datenblatt &amp;amp;uuml;ber den ATtiny44 von Atmel&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8183.pdf ATtiny44A datasheet] - Datenblatt &amp;amp;uuml;ber den ATtiny44A von Atmel&lt;br /&gt;
* [http://avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=140 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATtiny44 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:Nibo]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:NIBO burger]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATtiny]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:Atmel_ATtiny44A-PU.jpg&amp;diff=1285</id>
		<title>Datei:Atmel ATtiny44A-PU.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:Atmel_ATtiny44A-PU.jpg&amp;diff=1285"/>
				<updated>2016-05-04T12:25:52Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: Atmel ATtiny44A-PU AVR Mikrocontroller&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Atmel ATtiny44A-PU AVR Mikrocontroller&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1284</id>
		<title>ATmega88</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1284"/>
				<updated>2016-05-04T12:18:24Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATmega88PA-AU.jpg|thumb|Atmel ATmega88PA-AU im TQFP32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88A-MU.jpg|thumb|Atmel ATmega88A-MU im MLF32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88PA-PU.jpg|thumb|Atmel ATmega88PA-PU im PDIP28-Gehäuse]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der ''ATmega88'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 8 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
==Verwendung==&lt;br /&gt;
* NIBObee: [[BGX1|BGX1 Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
* NIBO 2: [[NIBO 2/Coprozessor|Coprozessor]] (ATmega88PA-AU)&lt;br /&gt;
* NIBO burger: [[Maroon Shield|maroon SHIELD Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega88PA'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |8&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |512&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |1024&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf ATmega88PA datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega88 von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=77 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 88 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBO 2]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:BGX1]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1283</id>
		<title>ATmega88</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1283"/>
				<updated>2016-05-04T12:17:48Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATmega88PA-AU.jpg|thumb|Atmel ATmega88PA-AU im TQFP32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88A-MU.jpg|thumb|Atmel ATmega88A-MU im MLF32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88PA-PU.jpg|thumb|Atmel ATmega88PA-PU im PDIP28-Gehäuse]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der ''ATmega88'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 8 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
==Verwendung==&lt;br /&gt;
* NIBObee: [[BGX1|BGX1 Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
* NIBO 2: [[NIBO 2/Coprozessor|Coprozessor]] (ATmega88PA-AU)&lt;br /&gt;
* NIBO burger: [[maroon SHIELD|maroon SHIELD Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega88PA'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |8&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |512&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |1024&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf ATmega88PA datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega88 von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=77 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 88 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBO 2]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:BGX1]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1282</id>
		<title>ATmega88</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1282"/>
				<updated>2016-05-04T12:16:56Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: /* Pinkompatible ATmegas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATmega88PA-AU.jpg|thumb|Atmel ATmega88PA-AU im TQFP32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88A-MU.jpg|thumb|Atmel ATmega88A-MU im MLF32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88PA-PU.jpg|thumb|Atmel ATmega88PA-PU im PDIP28-Gehäuse]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der ''ATmega88'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 8 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
==Verwendung==&lt;br /&gt;
* NIBObee: [[BGX1|BGX1 Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
* NIBO 2: [[NIBO 2/Coprozessor|Coprozessor]] (ATmega88PA-AU)&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega88PA'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |8&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |512&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |1024&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf ATmega88PA datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega88 von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=77 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 88 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBO 2]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:BGX1]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1281</id>
		<title>ATmega88</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1281"/>
				<updated>2016-05-04T12:16:35Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATmega88PA-AU.jpg|thumb|Atmel ATmega88PA-AU im TQFP32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88A-MU.jpg|thumb|Atmel ATmega88A-MU im MLF32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88PA-PU.jpg|thumb|Atmel ATmega88PA-PU im PDIP28-Gehäuse]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der ''ATmega88'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 8 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
==Verwendung==&lt;br /&gt;
* NIBObee: [[BGX1|BGX1 Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
* NIBO 2: [[NIBO 2/Coprozessor|Coprozessor]] (ATmega88PA-AU)&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega88PA'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |8&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |512&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |1024&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Pinkompatible ATmegas==&lt;br /&gt;
* ATmega88&lt;br /&gt;
* [[ATmega48]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf ATmega88PA datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega88 von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=77 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 88 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBO 2]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:BGX1]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega16&amp;diff=1280</id>
		<title>ATmega16</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega16&amp;diff=1280"/>
				<updated>2016-05-04T11:12:53Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATmega16A-PU.jpg|thumb|Atmel ATmega16A-PU im PDIP40-Gehäuse]]&lt;br /&gt;
Der ''ATmega16'' wird bei den Roboterbausätzen [[NIBObee]] und [[NIBOburger]] als Hauptprozessor eingesetzt. Es handelt sich hierbei um einen 8-Bit AVR Mikrocontroller von Atmel mit 16 kByte Flash-Speicher im DIL40 Gehäuse. &lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega16'''&lt;br /&gt;
 |''ATmega16L''&lt;br /&gt;
 |'''ATmega16A'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |16&lt;br /&gt;
 |16&lt;br /&gt;
 |16&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(kBytes)&lt;br /&gt;
 |0,5&lt;br /&gt;
 |0,5&lt;br /&gt;
 |0,5&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(kBytes)&lt;br /&gt;
 |1&lt;br /&gt;
 |1&lt;br /&gt;
 |1&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |16&lt;br /&gt;
 |8&lt;br /&gt;
 |16&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |4,5 - 5,5&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Pinkompatible ATmegas==&lt;br /&gt;
* ATmega16&lt;br /&gt;
* [[ATmega32]]&lt;br /&gt;
* [[ATmega164]]&lt;br /&gt;
* [[ATmega324]]&lt;br /&gt;
* [[ATmega644]]&lt;br /&gt;
* [[ATmega1284]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf ATmega16(L) datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega16(L) von Atmel&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8154.pdf ATmega16A datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega16A von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=56 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 16 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=57 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 16L bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:NIBO burger]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1279</id>
		<title>ATmega88</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1279"/>
				<updated>2016-05-04T11:09:55Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATmega88PA-AU.jpg|thumb|Atmel ATmega88PA-AU im TQFP32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88A-MU.jpg|thumb|Atmel ATmega88A-MU im MLF32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88PA-PU.jpg|thumb|Atmel ATmega88PA-PU im PDIP28-Gehäuse]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der ''ATmega88'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 8 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
==Verwendung==&lt;br /&gt;
* NIBObee: [[BGX1|BGX1 Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
* NIBO 2: [[NIBO 2/Coprozessor|Coprozessor]] (ATmega88PA-AU)&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega88PA'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |8&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |512&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |1024&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf ATmega88PA datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega88 von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=77 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 88 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBO 2]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:BGX1]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1278</id>
		<title>ATmega88</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1278"/>
				<updated>2016-05-04T11:09:38Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATmega88PA-AU.jpg|thumb|Atmel ATmega88PA-AU im MLF32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88A-MU.jpg|thumb|Atmel ATmega88A-MU im TQFP32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88PA-PU.jpg|thumb|Atmel ATmega88PA-PU im PDIP28-Gehäuse]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der ''ATmega88'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 8 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
==Verwendung==&lt;br /&gt;
* NIBObee: [[BGX1|BGX1 Erweiterung]] (ATmega88PA-PU)&lt;br /&gt;
* NIBO 2: [[NIBO 2/Coprozessor|Coprozessor]] (ATmega88PA-AU)&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega88PA'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |8&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |512&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |1024&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf ATmega88PA datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega88 von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=77 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 88 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBO 2]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:BGX1]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1277</id>
		<title>ATmega88</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1277"/>
				<updated>2016-05-04T11:08:49Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATmega88PA-AU.jpg|thumb|Atmel ATmega88PA-AU im MLF32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88A-MU.jpg|thumb|Atmel ATmega88A-MU im TQFP32 Gehäuse]]&lt;br /&gt;
[[image:Atmel ATmega88PA-PU.jpg|thumb|Atmel ATmega88PA-PU im PDIP28-Gehäuse]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der ''ATmega88'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 8 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
==Verwendung==&lt;br /&gt;
* NIBObee: [[BGX1|BGX1 Erweiterung]]&lt;br /&gt;
* NIBO 2: [[NIBO 2/Coprozessor|Coprozessor]]&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega88PA'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |8&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |512&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |1024&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf ATmega88PA datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega88 von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=77 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 88 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBO 2]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:BGX1]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:Atmel_ATmega88PA-PU.jpg&amp;diff=1276</id>
		<title>Datei:Atmel ATmega88PA-PU.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:Atmel_ATmega88PA-PU.jpg&amp;diff=1276"/>
				<updated>2016-05-04T11:05:20Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: Atmel ATmega88PA-PU AVR Mikrocontroller&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Atmel ATmega88PA-PU AVR Mikrocontroller&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1275</id>
		<title>ATmega88</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega88&amp;diff=1275"/>
				<updated>2016-05-04T11:00:05Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Atmel ATmega88PA-AU.jpg|thumb|Atmel ATmega88PA-AU]]&lt;br /&gt;
[[image:Atmel ATmega88A-MU.jpg|thumb|Atmel ATmega88A-MU]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der ''ATmega88'' ist ein 8-Bit AVR Mikrocontroller von Atmel mit 8 kByte Flash-Speicher.&lt;br /&gt;
&lt;br /&gt;
==Verwendung==&lt;br /&gt;
* NIBObee: [[BGX1|BGX1 Erweiterung]]&lt;br /&gt;
* NIBO 2: [[NIBO 2/Coprozessor|Coprozessor]]&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega88PA'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |8&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(Bytes)&lt;br /&gt;
 |512&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(Bytes)&lt;br /&gt;
 |1024&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |20&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |1,8 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf ATmega88PA datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega88 von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=77 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 88 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBO 2]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:BGX1]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:Atmel_ATmega88PA-AU.jpg&amp;diff=1274</id>
		<title>Datei:Atmel ATmega88PA-AU.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:Atmel_ATmega88PA-AU.jpg&amp;diff=1274"/>
				<updated>2016-05-04T10:58:25Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: Atmel ATmega88PA-AU AVR Mikrocontroller&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Atmel ATmega88PA-AU AVR Mikrocontroller&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:Atmel_ATmega88A-MU.jpg&amp;diff=1273</id>
		<title>Datei:Atmel ATmega88A-MU.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:Atmel_ATmega88A-MU.jpg&amp;diff=1273"/>
				<updated>2016-05-04T10:57:53Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: Atmel ATmega88A-MU AVR Mikrocontroller&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Atmel ATmega88A-MU AVR Mikrocontroller&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:Atmel_ATmega16A-PU.jpg&amp;diff=1272</id>
		<title>Datei:Atmel ATmega16A-PU.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:Atmel_ATmega16A-PU.jpg&amp;diff=1272"/>
				<updated>2016-05-04T10:57:08Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: Atmel ATmega16A-PU AVR Mikrocontroller&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Atmel ATmega16A-PU AVR Mikrocontroller&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega16&amp;diff=1271</id>
		<title>ATmega16</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=ATmega16&amp;diff=1271"/>
				<updated>2016-05-03T08:06:06Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der ''ATmega16'' wird bei den Roboterbausätzen [[NIBObee]] und [[NIBOburger]] als Hauptprozessor eingesetzt. Es handelt sich hierbei um einen 8-Bit AVR Mikrocontroller von Atmel mit 16 kByte Flash-Speicher im DIL40 Gehäuse. &lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''ATmega16'''&lt;br /&gt;
 |''ATmega16L''&lt;br /&gt;
 |'''ATmega16A'''&lt;br /&gt;
 |-&lt;br /&gt;
 |FLASH(kBytes)&lt;br /&gt;
 |16&lt;br /&gt;
 |16&lt;br /&gt;
 |16&lt;br /&gt;
 |-&lt;br /&gt;
 |EEPROM(kBytes)&lt;br /&gt;
 |0,5&lt;br /&gt;
 |0,5&lt;br /&gt;
 |0,5&lt;br /&gt;
 |-&lt;br /&gt;
 |SRAM(kBytes)&lt;br /&gt;
 |1&lt;br /&gt;
 |1&lt;br /&gt;
 |1&lt;br /&gt;
 |-&lt;br /&gt;
 |Freq(MHz)&lt;br /&gt;
 |16&lt;br /&gt;
 |8&lt;br /&gt;
 |16&lt;br /&gt;
 |-&lt;br /&gt;
 |Spannung(V)&lt;br /&gt;
 |4,5 - 5,5&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |2,7 - 5,5&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Pinkompatible ATmegas==&lt;br /&gt;
* ATmega16&lt;br /&gt;
* [[ATmega32]]&lt;br /&gt;
* [[ATmega164]]&lt;br /&gt;
* [[ATmega324]]&lt;br /&gt;
* [[ATmega644]]&lt;br /&gt;
* [[ATmega1284]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf ATmega16(L) datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega16(L) von Atmel&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc8154.pdf ATmega16A datasheet] - Datenblatt &amp;amp;uuml;ber den ATmega16A von Atmel&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=56 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 16 bei ''AVR Freaks''&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=displayDev&amp;amp;objectid=57 avrfreaks.net] - Informationen &amp;amp;uuml;ber den ATmega 16L bei ''AVR Freaks''&lt;br /&gt;
* [http://www.atmel.com/products/AVR/ www.atmel.com] - AVR Webseite von Atmel &lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:NIBObee]]&lt;br /&gt;
[[Category:NIBO burger]]&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Category:ATmega]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1270</id>
		<title>NIBO burger</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1270"/>
				<updated>2016-05-03T08:01:52Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:NIBO_burger_wings.jpg|180px|left|NIBO burger mit Wings]]&lt;br /&gt;
Der [[Roboterbausatz]] '''NIBO burger''' ist ein [[Programmierung (NIBO burger)|programmierbarer]] autonomer Roboter. Der Roboter hat einen [[ATmega16]] als Hauptprozessor, vier IR-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] und drei Farb-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] zur Wahrnehmung seiner Umgebung und einen integrierten USB-Programmer ([[ATtiny44]]), der zusätzlich als Ladegerät für die Akkus dient. Zwei Motoren dienen als [[NIBO burger/Antrieb|Antrieb]], die [[Odometrie (NIBO burger)|Odometriemessung]] erfolgt durch zwei Lichtschranken.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==Informationen==&lt;br /&gt;
* [[NIBO burger/Ersatzteile|Ersatzteile]]&lt;br /&gt;
* [[NIBO burger/FAQ|'''FAQ''' - Häufig gestellte Fragen]]&lt;br /&gt;
&lt;br /&gt;
==Erweiterungen/Zubehör==&lt;br /&gt;
* [[Blue-Modul]]&lt;br /&gt;
* [[Maroon Shield]]&lt;br /&gt;
* [[NIBObee/Tuning-Kit|NIBObee-Tuning-Kit]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* weitere [[Linksammlung|Links]] zum Thema&lt;br /&gt;
* [[nicai_eu:burger|Produktwebseite bei nicai-systems]]&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/375728#4309793 mikrocontroller.net] - Bericht über den Zusammenbau des NIBO burgers&lt;br /&gt;
* [https://niboburger005.wordpress.com/blog/ wordpress.com] - Blog über den Zusammenbau des NIBO burgers&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1269</id>
		<title>NIBO burger</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1269"/>
				<updated>2016-05-03T08:01:24Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:NIBO_burger_wings.jpg|180px|left|NIBO burger mit Wings]]&lt;br /&gt;
Der [[Roboterbausatz]] '''NIBO burger''' ist ein [[Programmierung (NIBO burger)|programmierbarer]] autonomer Roboter. Der Roboter hat einen [[ATmega16]] als Hauptprozessor, vier IR-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] und drei Farb-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] zur Wahrnehmung seiner Umgebung und einen integrierten USB-Programmer ([[ATtiny44]]), der zusätzlich als Ladegerät für die Akkus dient. Zwei Motoren dienen als [[NIBO burger/Antrieb|Antrieb]], die [[Odometrie (NIBO burger)|Odometriemessung]] erfolgt durch zwei Lichtschranken.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==Informationen==&lt;br /&gt;
* [[NIBO burger/Ersatzteile|Ersatzteile]]&lt;br /&gt;
* [[NIBO burger/FAQ|'FAQ' - Häufig gestellte Fragen]]&lt;br /&gt;
&lt;br /&gt;
==Erweiterungen/Zubehör==&lt;br /&gt;
* [[Blue-Modul]]&lt;br /&gt;
* [[Maroon Shield]]&lt;br /&gt;
* [[NIBObee/Tuning-Kit|NIBObee-Tuning-Kit]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* weitere [[Linksammlung|Links]] zum Thema&lt;br /&gt;
* [[nicai_eu:burger|Produktwebseite bei nicai-systems]]&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/375728#4309793 mikrocontroller.net] - Bericht über den Zusammenbau des NIBO burgers&lt;br /&gt;
* [https://niboburger005.wordpress.com/blog/ wordpress.com] - Blog über den Zusammenbau des NIBO burgers&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1268</id>
		<title>NIBO burger</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1268"/>
				<updated>2016-05-03T08:00:57Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:NIBO_burger_wings.jpg|180px|left|NIBO burger mit Wings]]&lt;br /&gt;
Der [[Roboterbausatz]] '''NIBO burger''' ist ein [[Programmierung (NIBO burger)|programmierbarer]] autonomer Roboter. Der Roboter hat einen [[ATmega16]] als Hauptprozessor, vier IR-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] und drei Farb-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] zur Wahrnehmung seiner Umgebung und einen integrierten USB-Programmer ([[ATtiny44]]), der zusätzlich als Ladegerät für die Akkus dient. Zwei Motoren dienen als [[NIBO burger/Antrieb|Antrieb]], die [[Odometrie (NIBO burger)|Odometriemessung]] erfolgt durch zwei Lichtschranken.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==Informationen==&lt;br /&gt;
* [[NIBO burger/Ersatzteile|Ersatzteile]]&lt;br /&gt;
* [[NIBO burger/FAQ|FAQ]] - Häufig gestellte Fragen&lt;br /&gt;
&lt;br /&gt;
==Erweiterungen/Zubehör==&lt;br /&gt;
* [[Blue-Modul]]&lt;br /&gt;
* [[Maroon Shield]]&lt;br /&gt;
* [[NIBObee/Tuning-Kit|NIBObee-Tuning-Kit]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* weitere [[Linksammlung|Links]] zum Thema&lt;br /&gt;
* [[nicai_eu:burger|Produktwebseite bei nicai-systems]]&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/375728#4309793 mikrocontroller.net] - Bericht über den Zusammenbau des NIBO burgers&lt;br /&gt;
* [https://niboburger005.wordpress.com/blog/ wordpress.com] - Blog über den Zusammenbau des NIBO burgers&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1267</id>
		<title>NIBO burger/Ersatzteile</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1267"/>
				<updated>2016-05-03T07:59:45Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| {{BlueTable}}&lt;br /&gt;
!Bauteil&lt;br /&gt;
!Typ&lt;br /&gt;
!Lieferant&lt;br /&gt;
!Verwendung&lt;br /&gt;
|-&lt;br /&gt;
|IR-LED, 3mm&lt;br /&gt;
|EL IR 204-A&lt;br /&gt;
|[[reichelt_article:163903|reichelt]]&lt;br /&gt;
|IR-Sensor-Brick, Odometrie&lt;br /&gt;
|-&lt;br /&gt;
|IR-Phototransitor, 3mm&lt;br /&gt;
|SFH 309 FA&lt;br /&gt;
|[[reichelt_article:60553|reichelt]]&lt;br /&gt;
|IR-Sensor-Brick, Odometrie&lt;br /&gt;
|-&lt;br /&gt;
|LED, rot, 3mm&lt;br /&gt;
|L-934HD&lt;br /&gt;
|[[reichelt_article:6828|reichelt]]&lt;br /&gt;
|Farb-Sensor-Brick Rot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Da die Empfindlichkeit von optischen Bauelementen von Charge zu Charge schwankt, sollten die Bauelemente des '''Liniensensors''' möglichst gemeinsam getauscht werden: Wenn ein Phototransitor defekt ist sollten alle drei Phototransitoren getauscht werden, wenn eine LED defekt ist sollten beide LEDs getauscht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1266</id>
		<title>NIBO burger/Ersatzteile</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1266"/>
				<updated>2016-05-03T07:59:18Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| {{BlueTable}}&lt;br /&gt;
!Bauteil&lt;br /&gt;
!Typ&lt;br /&gt;
!Lieferant&lt;br /&gt;
!Bemerkung&lt;br /&gt;
|-&lt;br /&gt;
|IR-LED, 3mm&lt;br /&gt;
|EL IR 204-A&lt;br /&gt;
|[[reichelt_article:163903|reichelt]]&lt;br /&gt;
|IR-Sensor-Brick, Odometrie&lt;br /&gt;
|-&lt;br /&gt;
|IR-Phototransitor, 3mm&lt;br /&gt;
|SFH 309 FA&lt;br /&gt;
|[[reichelt_article:60553|reichelt]]&lt;br /&gt;
|IR-Sensor-Brick, Odometrie&lt;br /&gt;
|-&lt;br /&gt;
|LED, rot, 3mm&lt;br /&gt;
|L-934HD&lt;br /&gt;
|[[reichelt_article:6828|reichelt]]&lt;br /&gt;
|Farb-Sensor-Brick Rot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Da die Empfindlichkeit von optischen Bauelementen von Charge zu Charge schwankt, sollten die Bauelemente des '''Liniensensors''' möglichst gemeinsam getauscht werden: Wenn ein Phototransitor defekt ist sollten alle drei Phototransitoren getauscht werden, wenn eine LED defekt ist sollten beide LEDs getauscht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1265</id>
		<title>NIBO burger/Ersatzteile</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1265"/>
				<updated>2016-05-03T07:58:27Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| {{BlueTable}}&lt;br /&gt;
!Bauteil&lt;br /&gt;
!Typ&lt;br /&gt;
!Lieferant&lt;br /&gt;
!Bemerkung&lt;br /&gt;
|-&lt;br /&gt;
|IR-LED, 3mm&lt;br /&gt;
|EL IR 204-A&lt;br /&gt;
|[[reichelt_article:163903|reichelt]]&lt;br /&gt;
|IR-Sensor-Brick, Odometrie&lt;br /&gt;
|-&lt;br /&gt;
|IR-Phototransitor, 3mm&lt;br /&gt;
|SFH 309 FA&lt;br /&gt;
|[[reichelt_article:60553|reichelt]]&lt;br /&gt;
|IR-Sensor-Brick, Odometrie&lt;br /&gt;
|-&lt;br /&gt;
|LED, rot, 3mm&lt;br /&gt;
|L-934HD&lt;br /&gt;
|[[reichelt_article:6828|reichelt]]&lt;br /&gt;
|Farb-Sensor-Brick Rot&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Da die Empfindlichkeit von optischen Bauelementen von Charge zu Charge schwankt, sollten die Bauelemente des '''Liniensensors''' möglichst gemeinsam getauscht werden: Wenn ein Phototransitor defekt ist sollten alle drei Phototransitoren getauscht werden, wenn eine LED defekt ist sollten beide LEDs getauscht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1264</id>
		<title>NIBO burger/Ersatzteile</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1264"/>
				<updated>2016-05-03T07:57:22Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| {{BlueTable}}&lt;br /&gt;
!Bauteil&lt;br /&gt;
!Typ&lt;br /&gt;
!Lieferant&lt;br /&gt;
!Bemerkung&lt;br /&gt;
|-&lt;br /&gt;
|IR-LED, 3mm&lt;br /&gt;
|EL IR 204-A&lt;br /&gt;
|[[reichelt_article:163903|reichelt]]&lt;br /&gt;
|Im Satz tauschen (siehe Text)&lt;br /&gt;
|-&lt;br /&gt;
|IR-Phototransitor, 3mm&lt;br /&gt;
|SFH 309 FA&lt;br /&gt;
|[[reichelt_article:60553|reichelt]]&lt;br /&gt;
|Im Satz tauschen (siehe Text)&lt;br /&gt;
|-&lt;br /&gt;
|LED, rot, 3mm&lt;br /&gt;
|L-934HD&lt;br /&gt;
|[[reichelt_article:6828|reichelt]]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Da die Empfindlichkeit von optischen Bauelementen von Charge zu Charge schwankt, sollten die Bauelemente des '''Liniensensors''' möglichst gemeinsam getauscht werden: Wenn ein Phototransitor defekt ist sollten alle drei Phototransitoren getauscht werden, wenn eine LED defekt ist sollten beide LEDs getauscht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1263</id>
		<title>NIBO burger/Ersatzteile</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1263"/>
				<updated>2016-05-03T07:57:03Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| {{BlueTable}}&lt;br /&gt;
!Bauteil&lt;br /&gt;
!Typ&lt;br /&gt;
!Lieferant&lt;br /&gt;
!Bemerkung&lt;br /&gt;
|-&lt;br /&gt;
|IR-LED&lt;br /&gt;
|EL IR 204-A&lt;br /&gt;
|[[reichelt_article:163903|reichelt]]&lt;br /&gt;
|Im Satz tauschen (siehe Text)&lt;br /&gt;
|-&lt;br /&gt;
|IR-Phototransitor&lt;br /&gt;
|SFH 309 FA&lt;br /&gt;
|[[reichelt_article:60553|reichelt]]&lt;br /&gt;
|Im Satz tauschen (siehe Text)&lt;br /&gt;
|-&lt;br /&gt;
|LED, rot&lt;br /&gt;
|L-934HD&lt;br /&gt;
|[[reichelt_article:6828|reichelt]]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Da die Empfindlichkeit von optischen Bauelementen von Charge zu Charge schwankt, sollten die Bauelemente des '''Liniensensors''' möglichst gemeinsam getauscht werden: Wenn ein Phototransitor defekt ist sollten alle drei Phototransitoren getauscht werden, wenn eine LED defekt ist sollten beide LEDs getauscht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1262</id>
		<title>NIBO burger</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1262"/>
				<updated>2016-05-03T07:56:50Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:NIBO_burger_wings.jpg|180px|left|NIBO burger mit Wings]]&lt;br /&gt;
Der [[Roboterbausatz]] '''NIBO burger''' ist ein [[Programmierung (NIBO burger)|programmierbarer]] autonomer Roboter. Der Roboter hat einen [[ATmega16]] als Hauptprozessor, vier IR-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] und drei Farb-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] zur Wahrnehmung seiner Umgebung und einen integrierten USB-Programmer ([[ATtiny44]]), der zusätzlich als Ladegerät für die Akkus dient. Zwei Motoren dienen als [[NIBO burger/Antrieb|Antrieb]], die [[Odometrie (NIBO burger)|Odometriemessung]] erfolgt durch zwei Lichtschranken.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==Informationen==&lt;br /&gt;
* [[NIBO burger/Ersatzteile|Ersatzteile]]&lt;br /&gt;
&lt;br /&gt;
==Erweiterungen/Zubehör==&lt;br /&gt;
* [[Blue-Modul]]&lt;br /&gt;
* [[Maroon Shield]]&lt;br /&gt;
* [[NIBObee/Tuning-Kit|NIBObee-Tuning-Kit]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* weitere [[Linksammlung|Links]] zum Thema&lt;br /&gt;
* [[nicai_eu:burger|Produktwebseite bei nicai-systems]]&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/375728#4309793 mikrocontroller.net] - Bericht über den Zusammenbau des NIBO burgers&lt;br /&gt;
* [https://niboburger005.wordpress.com/blog/ wordpress.com] - Blog über den Zusammenbau des NIBO burgers&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1260</id>
		<title>NIBO burger/Ersatzteile</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1260"/>
				<updated>2016-05-03T07:55:17Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: hat „NIBOburger/Ersatzteile“ nach „NIBO burger/Ersatzteile“ verschoben&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| {{BlueTable}}&lt;br /&gt;
!Bauteil&lt;br /&gt;
!Typ&lt;br /&gt;
!Lieferant&lt;br /&gt;
!Bemerkung&lt;br /&gt;
|-&lt;br /&gt;
|IR-LED&lt;br /&gt;
|EL IR 204-A&lt;br /&gt;
|[[reichelt_article:163903|reichelt]]&lt;br /&gt;
|Im Satz tauschen (siehe Text)&lt;br /&gt;
|-&lt;br /&gt;
|IR-Phototransitor&lt;br /&gt;
|SFH 309 FA&lt;br /&gt;
|[[reichelt_article:60553|reichelt]]&lt;br /&gt;
|Im Satz tauschen (siehe Text)&lt;br /&gt;
|-&lt;br /&gt;
|LED, rot&lt;br /&gt;
|L-934HD&lt;br /&gt;
|[[reichelt_article:6828|reichelt]]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Da die Empfindlichkeit von optischen Bauelementen von Charge zu Charge schwankt, sollten die Bauelemente des '''Liniensensors''' möglichst gemeinsam getauscht werden: Wenn ein Phototransitor defekt ist sollten alle drei Phototransitoren getauscht werden, wenn eine LED defekt ist sollten beide LEDs getauscht werden.&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBOburger/Ersatzteile&amp;diff=1261</id>
		<title>NIBOburger/Ersatzteile</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBOburger/Ersatzteile&amp;diff=1261"/>
				<updated>2016-05-03T07:55:17Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: hat „NIBOburger/Ersatzteile“ nach „NIBO burger/Ersatzteile“ verschoben&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[NIBO burger/Ersatzteile]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1259</id>
		<title>NIBO burger/Ersatzteile</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger/Ersatzteile&amp;diff=1259"/>
				<updated>2016-05-03T07:53:58Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: Die Seite wurde neu angelegt: „{| {{BlueTable}} !Bauteil !Typ !Lieferant !Bemerkung |- |IR-LED |EL IR 204-A |reichelt |Im Satz tauschen (siehe Text) |- |IR-Phototran…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| {{BlueTable}}&lt;br /&gt;
!Bauteil&lt;br /&gt;
!Typ&lt;br /&gt;
!Lieferant&lt;br /&gt;
!Bemerkung&lt;br /&gt;
|-&lt;br /&gt;
|IR-LED&lt;br /&gt;
|EL IR 204-A&lt;br /&gt;
|[[reichelt_article:163903|reichelt]]&lt;br /&gt;
|Im Satz tauschen (siehe Text)&lt;br /&gt;
|-&lt;br /&gt;
|IR-Phototransitor&lt;br /&gt;
|SFH 309 FA&lt;br /&gt;
|[[reichelt_article:60553|reichelt]]&lt;br /&gt;
|Im Satz tauschen (siehe Text)&lt;br /&gt;
|-&lt;br /&gt;
|LED, rot&lt;br /&gt;
|L-934HD&lt;br /&gt;
|[[reichelt_article:6828|reichelt]]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Da die Empfindlichkeit von optischen Bauelementen von Charge zu Charge schwankt, sollten die Bauelemente des '''Liniensensors''' möglichst gemeinsam getauscht werden: Wenn ein Phototransitor defekt ist sollten alle drei Phototransitoren getauscht werden, wenn eine LED defekt ist sollten beide LEDs getauscht werden.&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee/Ersatzteile&amp;diff=1258</id>
		<title>NIBObee/Ersatzteile</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee/Ersatzteile&amp;diff=1258"/>
				<updated>2016-05-03T07:53:00Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| {{BlueTable}}&lt;br /&gt;
!Bauteil&lt;br /&gt;
!Typ&lt;br /&gt;
!Lieferant&lt;br /&gt;
!Bemerkung&lt;br /&gt;
|-&lt;br /&gt;
|IR-LED&lt;br /&gt;
|EL IR 204-A&lt;br /&gt;
|[[reichelt_article:163903|reichelt]]&lt;br /&gt;
|Im Satz tauschen (siehe Text)&lt;br /&gt;
|-&lt;br /&gt;
|IR-Phototransitor&lt;br /&gt;
|SFH 309 FA&lt;br /&gt;
|[[reichelt_article:60553|reichelt]]&lt;br /&gt;
|Im Satz tauschen (siehe Text)&lt;br /&gt;
|-&lt;br /&gt;
|LED, rot&lt;br /&gt;
|L-934HD&lt;br /&gt;
|[[reichelt_article:6828|reichelt]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|LED, gelb&lt;br /&gt;
|L-934YD&lt;br /&gt;
|[[reichelt_article:6830|reichelt]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|LED, grün&lt;br /&gt;
|L-934GD&lt;br /&gt;
|[[reichelt_article:6829|reichelt]]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Da die Empfindlichkeit von optischen Bauelementen von Charge zu Charge schwankt, sollten die Bauelemente des '''Liniensensors''' möglichst gemeinsam getauscht werden: Wenn ein Phototransitor defekt ist sollten alle drei Phototransitoren getauscht werden, wenn eine LED defekt ist sollten beide LEDs getauscht werden.&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1253</id>
		<title>NIBObee-Berry</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1253"/>
				<updated>2016-04-12T09:58:13Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: /* Info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Info=&lt;br /&gt;
[[image:beeberry_full.jpg|500px|left|thumb|NIBObee mit dem aufgesetzten Raspberry mit WLAN, Kamera und einer Powerbank als Stromquelle]]&lt;br /&gt;
[[image:beeberry_side1.jpg|300px|thumb|Über die Berry-Erweiterung stehen 2 zusätzliche Schalter und 2 LEDs zur Verfügung, die nach Belieben Verwendung finden werden]]&lt;br /&gt;
[[image:beeberry_side2.jpg|200px|thumb|Insgesamt hat unser Mega-Käfer jetzt drei Ebenen: NIBObee, Berry-Erweiterung und der Raspberry selbst]]&lt;br /&gt;
&lt;br /&gt;
Mit dem Berry Modul kann ein [[NIBObee]] Roboter mit einem Raspberry Pi verbunden werden. Dadurch wird der Anschluss von nahezu beliebiger Sensorik (SPI, I2C, USB ...) möglich und zudem kann über den Raspberry via WLAN-Zugriff auf einen somit mobilen NIBObee zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus stehen über den vollwertigen Linux-Computer, den der Raspberry darstellt, wesentlich komfortablere und zugleich komplexere Programmiermöglichkeiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Das Berry-Modul enthält zudem einen integrierten DC/DC Wandler für die Spannungsversorgung des RPi, der mit einem weiten Spannungsbreich von 6,5 - 30 Volt umgehen kann. Dadurch können z.B. auch LiPo-Akkus etc. verwendet werden.&lt;br /&gt;
Über einen (leider nicht enthaltenen und nur optionalen) 2. DC/DC-Wandler kann aus dem Berry-Akku auch der NIBObee mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Der Rasperry Pi ist durch eine serielle Schnittstelle mit dem NIBObee verbunden.&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller im NIBObee kann dabei aus &amp;quot;ausführendes&amp;quot; Organ verstanden werden, während der Raspberry die Befehle erteilt.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann ggf. das neue eeprom-Flashen auf dem NIBObee bei Programmänderungen entfallen. Allerdings ist die Geschwindigkeit der Datenübertragung über die serielle Schnittstelle begrenzt, so dass die &amp;quot;reflexartigen&amp;quot; Funktionen ggf. besser &amp;quot;fest&amp;quot; im NIBObee-Controller verankert und die komplexen Funktionen im Raspberry umgesetzt werden sollten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt=&lt;br /&gt;
[[image:Battclips_error1.jpg|350px|left|nachgelötete Batterieclips]]&lt;br /&gt;
Sowohl beim NIBObee, als auch beim Berry-AddOn sind vereinzelt Probleme bei den Batterieclips bekannt. Die verklemmten Bereiche an den Enden sind in manchen Fällen nicht stromführend verquetscht, so dass die Geräte nicht mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Dies lässt sich einfach nachmessen, in dem man die anliegenden Spannungen prüft.&lt;br /&gt;
&lt;br /&gt;
* beim NIBObee sollte an X8 bei eingelegten Batterien ca. 5V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
* bei der Berry-Platine sollte an X10 zwischen 1 und 4 eine Spannung von ca. 8V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
&lt;br /&gt;
Ein Nachlöten hilft hier leicht ab.&lt;br /&gt;
&lt;br /&gt;
'''Aber Vorsicht!''' Auf jeden Fall die Akkus vorher entfernen, sonst werden die Clips durch den Federdruck und die Hitze beim Löten schnell irreparabel beschädigt!&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Raspberry für die Kommunikation mit dem NIBObee=&lt;br /&gt;
Der Raspberry wird typischerweise mit [https://www.raspberrypi.org/downloads/raspbian/ Raspberian] betrieben, einer speziell angepassten Debian-Version für den Raspberry.&lt;br /&gt;
&lt;br /&gt;
Die Grundinstallation des Raspberrys ist im Internet, z.B. [https://www.raspberrypi.org/documentation/installation/installing-images/README.md hier], hinreichend beschrieben.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, ein Edimax-Nano-USB-WLAN-Stick gleich von Anfang an mit zu integrieren. Die Treiber bringt Raspberian bereits mit.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Arbeiten führen wir auf dem Raspberry aus, nachdem wir uns typischerweise mit einem SSH-Program (Linux: ssh, Windows: putty) nach der Grundeinrichtung mit dem Raspberry verbunden haben. &lt;br /&gt;
&lt;br /&gt;
Wir werden im Folgenden mit Linux als unserem Hauptsystem arbeiten; die Beispiele sind dementsprechend aus Linux-Sicht.&lt;br /&gt;
&lt;br /&gt;
Damit wir vollen Zugriff auf alle Funktionen und Rechte haben, werden wir mit dem root-Benutzer arbeiten.&lt;br /&gt;
&lt;br /&gt;
Verbinden von unserem lokalen Rechner aus mit dem Raspberry:&lt;br /&gt;
 user@localmachine:~# ssh root@[IP-ADRESSE-RASPBERRY]&lt;br /&gt;
&lt;br /&gt;
Sollte das Login trotz korrektem Passwort nicht möglich sein, ist vermutlich das Verbinden als root nicht gestattet. Wir melden uns dann als ''pi'', dem Standardbenutzer, an und verwandeln uns mit ''sudo su'' zu root:&lt;br /&gt;
 user@localmachine:~# ssh pi@[IP-ADRESSE-RASPBERRY]    (defaultpasswort: ''raspberry'')&lt;br /&gt;
 root@nibo:~# sudo su&lt;br /&gt;
 root@nibo:~#&lt;br /&gt;
&lt;br /&gt;
Wir werden der Ordnung halber gleich unter dem Ordner ''/opt'' einen eigenen Ordner für unsere Projekte anlegen:&lt;br /&gt;
 root@nibo:~# mkdir /opt/niboberry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation WiringPi / GPIO==&lt;br /&gt;
Damit wir einfach die Ein- und Ausgänge des Rapsberry ansprechen können, installieren wir ''WiringPi'', was nützliche Tools (''gpio'') und diverse Bibliotheken in C, C++, Python, Java und PHP mitbringt.&lt;br /&gt;
 root@nibo:~# apt-get update&lt;br /&gt;
 root@nibo:~# apt-get install git-core&lt;br /&gt;
 root@nibo:~# cd /opt&lt;br /&gt;
 root@nibo:/opt# git clone git://git.drogon.net/wiringPi&lt;br /&gt;
 root@nibo:/opt# cd WiringPi&lt;br /&gt;
 root@nibo:/opt/WiringPi# ./build&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test der Grundfunktion===&lt;br /&gt;
Mit einem kleinen Script testen wir die Grundfunktionen der Raspberry-Addon-Platine.&lt;br /&gt;
&lt;br /&gt;
Die Verdrahtung der Platine ist wie folgt:&lt;br /&gt;
 Taster A: Pin 15 (wPi: 3)&lt;br /&gt;
 Taster B: Pin 16 (wPi: 4)&lt;br /&gt;
 LED grün: Pin 18 (wPi: 5)&lt;br /&gt;
 LED  rot: Pin 22 (wPi: 6)&lt;br /&gt;
&lt;br /&gt;
Da die Taster das Signal auf GND legen, benötigen wir als &amp;quot;Gegenstück&amp;quot; (quasi im ungedrückten Zustand) ein High-Signal. Wir stellen daher den internen Pull-Up-Wiederstand für die Eingänge ein.&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Mit &lt;br /&gt;
 root@nibo:~# gpio readall&lt;br /&gt;
bekommen wir alle Ports, Ein- und Ausgänge, derzeitige Zustände und die unterschiedlichen Namen angezeigt:&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |&lt;br /&gt;
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |&lt;br /&gt;
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |&lt;br /&gt;
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |&lt;br /&gt;
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT0 | RxD     | 16  | 15  |&lt;br /&gt;
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |&lt;br /&gt;
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |&lt;br /&gt;
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |&lt;br /&gt;
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |&lt;br /&gt;
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |&lt;br /&gt;
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |&lt;br /&gt;
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |&lt;br /&gt;
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |&lt;br /&gt;
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
Dort erkennen wir auch, dass z.B. der physikalische Pin (''Physical'') 15 die WiringPi-(''wPi'')-Nummer 3 hat.&lt;br /&gt;
&lt;br /&gt;
Wir legen das Skript in unserem neuen Ordner an:&lt;br /&gt;
 root@nibo:~# cd /opt/niboberry&lt;br /&gt;
 root@nibo:~# nano test.sh&lt;br /&gt;
&lt;br /&gt;
Folgenden Code einfügen und mit '''[STRG-X]''' den Editor beenden und speichern:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Einstellen der Ports als Ein- bzw. Ausgang&lt;br /&gt;
 gpio mode 3 in&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 in&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
 gpio mode 5 out&lt;br /&gt;
 gpio mode 6 out&lt;br /&gt;
 &lt;br /&gt;
 # Abwechselndes Blinken der beiden LEDs&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 gpio write 5 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 &lt;br /&gt;
 # Endlosschleife für Hauptfunktion&lt;br /&gt;
 while [ True ]&lt;br /&gt;
  do&lt;br /&gt;
   if [ $(gpio read 3) = 0 ]&lt;br /&gt;
   # Taste 1 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster A&amp;quot;&lt;br /&gt;
     # LED 1 an&lt;br /&gt;
     gpio write 5 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 1 aus&lt;br /&gt;
     gpio write 5 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
   if [ $(gpio read 4) = 0 ]&lt;br /&gt;
   # Taste 2 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster B&amp;quot;&lt;br /&gt;
     # LED 2 an&lt;br /&gt;
     gpio write 6 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 2 aus&lt;br /&gt;
     gpio write 6 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Programmende (wird nie erreicht, da Endlosschleife)&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
Dann die Datei ausführbar machen und starten:&lt;br /&gt;
 root@nibo:~# chmod +x test.sh&lt;br /&gt;
 root@nibo:~# ./test.sh&lt;br /&gt;
&lt;br /&gt;
Die LED sollten nacheinander kurz aufleuchten, dann wartet das Script auf das Drücken der Taster.&lt;br /&gt;
&lt;br /&gt;
Bei Druck auf Taster A, sollte nun die grüne LED leuchten. Bei Druck auf Taster B die rote LED.&lt;br /&gt;
&lt;br /&gt;
Sollte das nicht funktionieren, je nach Problem die Platine und das Programm überprüfen.&lt;br /&gt;
&lt;br /&gt;
Mit '''[STRG-C]''' beenden wir das Testprogramm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Aufbau der seriellen Verbindung zum NIBObee==&lt;br /&gt;
Auf der Raspberry-GPIO-Leiste sind die Pins 8 (TX, senden) und 10 (RX, empfangen) für die serielle Kommunikation vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle wird vom Raspberry standardmäßig zur Bootprotokollierung verwendet.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion müssen wir daher zunächst deaktivieren.&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /boot/cdmline.txt&lt;br /&gt;
muss diese Zeile angepasst werden:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Der Parameter mit Verweis auf '''ttyAMA0''' muss entfernt werden.&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /etc/inittab&lt;br /&gt;
müssen wir verhindern, dass eine Login-Konsole auf die serielle Schnittstelle gesetzt wird. Dazu muss der entsprechende Eintrag (in der Regel die letzte Zeile) mit einer '''#''' auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Hier das Ergebnis:&lt;br /&gt;
 # T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
Nach einem '''Reboot''' sollte uns die Schnittstelle nun zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
Um mit dem NiboBEE zu &amp;quot;sprechen&amp;quot; benötigen wir ein Terminalprogramm.&lt;br /&gt;
&lt;br /&gt;
Viele stehen nach Belieben zur Verfügung. Für die Befehlszeile z.B.:&lt;br /&gt;
* minicom&lt;br /&gt;
* microcom&lt;br /&gt;
* picocom&lt;br /&gt;
&lt;br /&gt;
Installation von z.B. microcom mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install microcom&lt;br /&gt;
&lt;br /&gt;
Nun können wir zum ersten Mal vom Raspberry aus mit den NiboBEE die Verbindung aufnehmen. Vorausgesetzt, alle Module sind betriebsbereit, miteinander verbunden und eingeschaltet.&lt;br /&gt;
 microcom -p /dev/ttyAMA0 -s 9600&lt;br /&gt;
&lt;br /&gt;
Wenn auf dem NiboBEE noch das bei der Auslieferung aufgespielte Testprogramm im Flash-Speicher ist, sendet er laufend auf der seriellen Schnittstelle Werte der optischen Sensoren. z.B.:&lt;br /&gt;
 1a:1f:1a&lt;br /&gt;
Hält man nun den Finger rechts oder links unter den Sensor, ändern sich die Werte entsprechend.&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Bees für die Kommunikation mit dem Rasp=&lt;br /&gt;
Damit der Bee von dem Rasp über die serielle Schnittstelle Befehle annehmen und Daten senden kann, müssen diese miteinander kommunizieren und über eine &amp;quot;abgestimmten&amp;quot; Befehlssatz verfügen.&lt;br /&gt;
&lt;br /&gt;
Der NIBObee ist bereits dementsprechend vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehlssatz nennt sich: [[Nibo_Serial_Protocol|Nibo Serial Protocol]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Programmierbeispiele=&lt;br /&gt;
Wenn wir schon einen Linux-Computer auf dem NIBObee haben, wollen wir ihn natürlich auf möglichst umfassend nutzen.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation mit dem NIBObee und dem Programmiercomputer erfolgt über die USB-Schnittstelle an der Frontseite des NIBObee. Hier können wir natürlich auch eine Verbindung mit unserem Raspberry herstellen. &lt;br /&gt;
&lt;br /&gt;
Allerdings reagiert der Raspberry sehr empfindlich auf die Spannungsschwankungen, die beim Einstecken von USB-Geräten entstehen können. &lt;br /&gt;
'''Am besten schaltet man daher beide Geräte, insbesondere aber den Raspberry, vor dem Zusammenstecken über USB aus.'''&lt;br /&gt;
&lt;br /&gt;
Steht die Verbindung, haben wir die Möglichkeit, uns via WLAN und SSH auf den Raspberry zu schalten und dort direkt den verbundenen NiboBEE zu Programmieren.&lt;br /&gt;
&lt;br /&gt;
Ob die USB-Verbindung steht, kann mit&lt;br /&gt;
 lsusb&lt;br /&gt;
auf dem Raspberry festgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der NIBObee wird wie folgt angezeigt:&lt;br /&gt;
 Bus 001 Device 007: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
Bevor wir eigene Programme auf den NIBObee aufspielen, sollten wir ggf. vorhandene Programme sichern.&lt;br /&gt;
&lt;br /&gt;
Dazu benötigen wir, ebenso wie für das Übertragen unseres eigenen C-Codes, das Tool&lt;br /&gt;
 avrdude&lt;br /&gt;
&lt;br /&gt;
Dies installieren wir mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install avrdude&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EEPROM===&lt;br /&gt;
Hier befindet sich das vorinstallierte Betriebssystem des NIBObee, der alle wesentlichen Funktionen steuert und auch die serielle Kommunikation organisiert&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl kann ein Backup erstellt werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U eeprom:r:&amp;quot;BACKUPFILENAME.eeprom&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
Hier befinden sich die von uns Anwendern übertragenen Programme.&lt;br /&gt;
&lt;br /&gt;
Die Sicherung erfolgt mit diesem Befehl:&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U flash:r:&amp;quot;BACKUPFILENAME.flash&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fuses===&lt;br /&gt;
In den &amp;quot;Fuses&amp;quot; verwaltet der ATMEL-Prozessor diverse Einstellungen. Diese sollten wir im Normalfall nicht ändern. Aber ein Backup kann auch hier nicht schaden. Es gibt &amp;quot;high&amp;quot;-, &amp;quot;low&amp;quot;- und die E-Fuses, die getrennt verwaltet und auch gesichert werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U hfuse:r:&amp;quot;BACKUPFILENAME.hfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U lfuse:r:&amp;quot;BACKUPFILENAME.lfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U efuse:r:&amp;quot;BACKUPFILENAME.efuse&amp;quot;:b&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hello World==&lt;br /&gt;
---Work in progress---&lt;br /&gt;
==Nutzen der Spannungsüberwachung==&lt;br /&gt;
---Idee---&lt;br /&gt;
&lt;br /&gt;
Ein 1kHz-PWM-Signal mit 14% duty cycle erzeugt an GPIO18 (RP_PWM) ca. 0,6V. Diese Spannung vergleicht die Op-Amp-Schaltung mit einem 10tel der Batteriespannung. Sinkt die Spannung also unter 6V, reagiert unsere Schaltung mit einem auf HIGH gesetzten GPIO4.&lt;br /&gt;
&lt;br /&gt;
---Work in progress---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linienverfolger mit Fotofunktion==&lt;br /&gt;
---Work in progress---&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1252</id>
		<title>NIBObee-Berry</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1252"/>
				<updated>2016-04-12T09:55:10Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Info=&lt;br /&gt;
[[image:beeberry_full.jpg|500px|left|thumb|NIBObee mit dem aufgesetzten Raspberry mit WLAN, Kamera und einer Powerbank als Stromquelle]]&lt;br /&gt;
[[image:beeberry_side1.jpg|thumb|Über die Berry-Erweiterung stehen 2 zusätzliche Schalter und 2 LEDs zur Verfügung, die nach Belieben Verwendung finden werden]]&lt;br /&gt;
[[image:beeberry_side2.jpg|thumb|Insgesamt hat unser Mega-Käfer jetzt drei Ebenen: NIBObee, Berry-Erweiterung und der Raspberry selbst]]&lt;br /&gt;
&lt;br /&gt;
Mit dem Berry Modul kann ein [NIBObee] Roboter mit einem Raspberry Pi verbunden werden. Dadurch wird der Anschluss von nahezu beliebiger Sensorik (SPI, I2C, USB ...) möglich und zudem kann über den Raspberry via WLAN-Zugriff auf einen somit mobilen NIBObee zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus stehen über den vollwertigen Linux-Computer, den der Raspberry darstellt, wesentlich komfortablere und zugleich komplexere Programmiermöglichkeiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Das Berry-Modul enthält zudem einen integrierten DC/DC Wandler für die Spannungsversorgung des RPi, der mit einem weiten Spannungsbreich von 6,5 - 30 Volt umgehen kann. Dadurch können z.B. auch LiPo-Akkus etc. verwendet werden.&lt;br /&gt;
Über einen (leider nicht enthaltenen und nur optionalen) 2. DC/DC-Wandler kann aus dem Berry-Akku auch der NIBObee mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Der Rasperry Pi ist durch eine serielle Schnittstelle mit dem NIBObee verbunden.&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller im NIBObee kann dabei aus &amp;quot;ausführendes&amp;quot; Organ verstanden werden, während der Raspberry die Befehle erteilt.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann ggf. das neue eeprom-Flashen auf dem NIBObee bei Programmänderungen entfallen. Allerdings ist die Geschwindigkeit der Datenübertragung über die serielle Schnittstelle begrenzt, so dass die &amp;quot;reflexartigen&amp;quot; Funktionen ggf. besser &amp;quot;fest&amp;quot; im NIBObee-Controller verankert und die komplexen Funktionen im Raspberry umgesetzt werden sollten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt=&lt;br /&gt;
[[image:Battclips_error1.jpg|350px|left|nachgelötete Batterieclips]]&lt;br /&gt;
Sowohl beim NIBObee, als auch beim Berry-AddOn sind vereinzelt Probleme bei den Batterieclips bekannt. Die verklemmten Bereiche an den Enden sind in manchen Fällen nicht stromführend verquetscht, so dass die Geräte nicht mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Dies lässt sich einfach nachmessen, in dem man die anliegenden Spannungen prüft.&lt;br /&gt;
&lt;br /&gt;
* beim NIBObee sollte an X8 bei eingelegten Batterien ca. 5V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
* bei der Berry-Platine sollte an X10 zwischen 1 und 4 eine Spannung von ca. 8V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
&lt;br /&gt;
Ein Nachlöten hilft hier leicht ab.&lt;br /&gt;
&lt;br /&gt;
'''Aber Vorsicht!''' Auf jeden Fall die Akkus vorher entfernen, sonst werden die Clips durch den Federdruck und die Hitze beim Löten schnell irreparabel beschädigt!&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Raspberry für die Kommunikation mit dem NIBObee=&lt;br /&gt;
Der Raspberry wird typischerweise mit [https://www.raspberrypi.org/downloads/raspbian/ Raspberian] betrieben, einer speziell angepassten Debian-Version für den Raspberry.&lt;br /&gt;
&lt;br /&gt;
Die Grundinstallation des Raspberrys ist im Internet, z.B. [https://www.raspberrypi.org/documentation/installation/installing-images/README.md hier], hinreichend beschrieben.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, ein Edimax-Nano-USB-WLAN-Stick gleich von Anfang an mit zu integrieren. Die Treiber bringt Raspberian bereits mit.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Arbeiten führen wir auf dem Raspberry aus, nachdem wir uns typischerweise mit einem SSH-Program (Linux: ssh, Windows: putty) nach der Grundeinrichtung mit dem Raspberry verbunden haben. &lt;br /&gt;
&lt;br /&gt;
Wir werden im Folgenden mit Linux als unserem Hauptsystem arbeiten; die Beispiele sind dementsprechend aus Linux-Sicht.&lt;br /&gt;
&lt;br /&gt;
Damit wir vollen Zugriff auf alle Funktionen und Rechte haben, werden wir mit dem root-Benutzer arbeiten.&lt;br /&gt;
&lt;br /&gt;
Verbinden von unserem lokalen Rechner aus mit dem Raspberry:&lt;br /&gt;
 user@localmachine:~# ssh root@[IP-ADRESSE-RASPBERRY]&lt;br /&gt;
&lt;br /&gt;
Sollte das Login trotz korrektem Passwort nicht möglich sein, ist vermutlich das Verbinden als root nicht gestattet. Wir melden uns dann als ''pi'', dem Standardbenutzer, an und verwandeln uns mit ''sudo su'' zu root:&lt;br /&gt;
 user@localmachine:~# ssh pi@[IP-ADRESSE-RASPBERRY]    (defaultpasswort: ''raspberry'')&lt;br /&gt;
 root@nibo:~# sudo su&lt;br /&gt;
 root@nibo:~#&lt;br /&gt;
&lt;br /&gt;
Wir werden der Ordnung halber gleich unter dem Ordner ''/opt'' einen eigenen Ordner für unsere Projekte anlegen:&lt;br /&gt;
 root@nibo:~# mkdir /opt/niboberry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation WiringPi / GPIO==&lt;br /&gt;
Damit wir einfach die Ein- und Ausgänge des Rapsberry ansprechen können, installieren wir ''WiringPi'', was nützliche Tools (''gpio'') und diverse Bibliotheken in C, C++, Python, Java und PHP mitbringt.&lt;br /&gt;
 root@nibo:~# apt-get update&lt;br /&gt;
 root@nibo:~# apt-get install git-core&lt;br /&gt;
 root@nibo:~# cd /opt&lt;br /&gt;
 root@nibo:/opt# git clone git://git.drogon.net/wiringPi&lt;br /&gt;
 root@nibo:/opt# cd WiringPi&lt;br /&gt;
 root@nibo:/opt/WiringPi# ./build&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test der Grundfunktion===&lt;br /&gt;
Mit einem kleinen Script testen wir die Grundfunktionen der Raspberry-Addon-Platine.&lt;br /&gt;
&lt;br /&gt;
Die Verdrahtung der Platine ist wie folgt:&lt;br /&gt;
 Taster A: Pin 15 (wPi: 3)&lt;br /&gt;
 Taster B: Pin 16 (wPi: 4)&lt;br /&gt;
 LED grün: Pin 18 (wPi: 5)&lt;br /&gt;
 LED  rot: Pin 22 (wPi: 6)&lt;br /&gt;
&lt;br /&gt;
Da die Taster das Signal auf GND legen, benötigen wir als &amp;quot;Gegenstück&amp;quot; (quasi im ungedrückten Zustand) ein High-Signal. Wir stellen daher den internen Pull-Up-Wiederstand für die Eingänge ein.&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Mit &lt;br /&gt;
 root@nibo:~# gpio readall&lt;br /&gt;
bekommen wir alle Ports, Ein- und Ausgänge, derzeitige Zustände und die unterschiedlichen Namen angezeigt:&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |&lt;br /&gt;
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |&lt;br /&gt;
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |&lt;br /&gt;
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |&lt;br /&gt;
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT0 | RxD     | 16  | 15  |&lt;br /&gt;
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |&lt;br /&gt;
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |&lt;br /&gt;
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |&lt;br /&gt;
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |&lt;br /&gt;
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |&lt;br /&gt;
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |&lt;br /&gt;
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |&lt;br /&gt;
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |&lt;br /&gt;
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
Dort erkennen wir auch, dass z.B. der physikalische Pin (''Physical'') 15 die WiringPi-(''wPi'')-Nummer 3 hat.&lt;br /&gt;
&lt;br /&gt;
Wir legen das Skript in unserem neuen Ordner an:&lt;br /&gt;
 root@nibo:~# cd /opt/niboberry&lt;br /&gt;
 root@nibo:~# nano test.sh&lt;br /&gt;
&lt;br /&gt;
Folgenden Code einfügen und mit '''[STRG-X]''' den Editor beenden und speichern:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Einstellen der Ports als Ein- bzw. Ausgang&lt;br /&gt;
 gpio mode 3 in&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 in&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
 gpio mode 5 out&lt;br /&gt;
 gpio mode 6 out&lt;br /&gt;
 &lt;br /&gt;
 # Abwechselndes Blinken der beiden LEDs&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 gpio write 5 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 &lt;br /&gt;
 # Endlosschleife für Hauptfunktion&lt;br /&gt;
 while [ True ]&lt;br /&gt;
  do&lt;br /&gt;
   if [ $(gpio read 3) = 0 ]&lt;br /&gt;
   # Taste 1 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster A&amp;quot;&lt;br /&gt;
     # LED 1 an&lt;br /&gt;
     gpio write 5 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 1 aus&lt;br /&gt;
     gpio write 5 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
   if [ $(gpio read 4) = 0 ]&lt;br /&gt;
   # Taste 2 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster B&amp;quot;&lt;br /&gt;
     # LED 2 an&lt;br /&gt;
     gpio write 6 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 2 aus&lt;br /&gt;
     gpio write 6 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Programmende (wird nie erreicht, da Endlosschleife)&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
Dann die Datei ausführbar machen und starten:&lt;br /&gt;
 root@nibo:~# chmod +x test.sh&lt;br /&gt;
 root@nibo:~# ./test.sh&lt;br /&gt;
&lt;br /&gt;
Die LED sollten nacheinander kurz aufleuchten, dann wartet das Script auf das Drücken der Taster.&lt;br /&gt;
&lt;br /&gt;
Bei Druck auf Taster A, sollte nun die grüne LED leuchten. Bei Druck auf Taster B die rote LED.&lt;br /&gt;
&lt;br /&gt;
Sollte das nicht funktionieren, je nach Problem die Platine und das Programm überprüfen.&lt;br /&gt;
&lt;br /&gt;
Mit '''[STRG-C]''' beenden wir das Testprogramm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Aufbau der seriellen Verbindung zum NIBObee==&lt;br /&gt;
Auf der Raspberry-GPIO-Leiste sind die Pins 8 (TX, senden) und 10 (RX, empfangen) für die serielle Kommunikation vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle wird vom Raspberry standardmäßig zur Bootprotokollierung verwendet.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion müssen wir daher zunächst deaktivieren.&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /boot/cdmline.txt&lt;br /&gt;
muss diese Zeile angepasst werden:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Der Parameter mit Verweis auf '''ttyAMA0''' muss entfernt werden.&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /etc/inittab&lt;br /&gt;
müssen wir verhindern, dass eine Login-Konsole auf die serielle Schnittstelle gesetzt wird. Dazu muss der entsprechende Eintrag (in der Regel die letzte Zeile) mit einer '''#''' auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Hier das Ergebnis:&lt;br /&gt;
 # T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
Nach einem '''Reboot''' sollte uns die Schnittstelle nun zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
Um mit dem NiboBEE zu &amp;quot;sprechen&amp;quot; benötigen wir ein Terminalprogramm.&lt;br /&gt;
&lt;br /&gt;
Viele stehen nach Belieben zur Verfügung. Für die Befehlszeile z.B.:&lt;br /&gt;
* minicom&lt;br /&gt;
* microcom&lt;br /&gt;
* picocom&lt;br /&gt;
&lt;br /&gt;
Installation von z.B. microcom mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install microcom&lt;br /&gt;
&lt;br /&gt;
Nun können wir zum ersten Mal vom Raspberry aus mit den NiboBEE die Verbindung aufnehmen. Vorausgesetzt, alle Module sind betriebsbereit, miteinander verbunden und eingeschaltet.&lt;br /&gt;
 microcom -p /dev/ttyAMA0 -s 9600&lt;br /&gt;
&lt;br /&gt;
Wenn auf dem NiboBEE noch das bei der Auslieferung aufgespielte Testprogramm im Flash-Speicher ist, sendet er laufend auf der seriellen Schnittstelle Werte der optischen Sensoren. z.B.:&lt;br /&gt;
 1a:1f:1a&lt;br /&gt;
Hält man nun den Finger rechts oder links unter den Sensor, ändern sich die Werte entsprechend.&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Bees für die Kommunikation mit dem Rasp=&lt;br /&gt;
Damit der Bee von dem Rasp über die serielle Schnittstelle Befehle annehmen und Daten senden kann, müssen diese miteinander kommunizieren und über eine &amp;quot;abgestimmten&amp;quot; Befehlssatz verfügen.&lt;br /&gt;
&lt;br /&gt;
Der NIBObee ist bereits dementsprechend vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehlssatz nennt sich: [[Nibo_Serial_Protocol|Nibo Serial Protocol]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Programmierbeispiele=&lt;br /&gt;
Wenn wir schon einen Linux-Computer auf dem NIBObee haben, wollen wir ihn natürlich auf möglichst umfassend nutzen.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation mit dem NIBObee und dem Programmiercomputer erfolgt über die USB-Schnittstelle an der Frontseite des NIBObee. Hier können wir natürlich auch eine Verbindung mit unserem Raspberry herstellen. &lt;br /&gt;
&lt;br /&gt;
Allerdings reagiert der Raspberry sehr empfindlich auf die Spannungsschwankungen, die beim Einstecken von USB-Geräten entstehen können. &lt;br /&gt;
'''Am besten schaltet man daher beide Geräte, insbesondere aber den Raspberry, vor dem Zusammenstecken über USB aus.'''&lt;br /&gt;
&lt;br /&gt;
Steht die Verbindung, haben wir die Möglichkeit, uns via WLAN und SSH auf den Raspberry zu schalten und dort direkt den verbundenen NiboBEE zu Programmieren.&lt;br /&gt;
&lt;br /&gt;
Ob die USB-Verbindung steht, kann mit&lt;br /&gt;
 lsusb&lt;br /&gt;
auf dem Raspberry festgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der NIBObee wird wie folgt angezeigt:&lt;br /&gt;
 Bus 001 Device 007: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
Bevor wir eigene Programme auf den NIBObee aufspielen, sollten wir ggf. vorhandene Programme sichern.&lt;br /&gt;
&lt;br /&gt;
Dazu benötigen wir, ebenso wie für das Übertragen unseres eigenen C-Codes, das Tool&lt;br /&gt;
 avrdude&lt;br /&gt;
&lt;br /&gt;
Dies installieren wir mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install avrdude&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EEPROM===&lt;br /&gt;
Hier befindet sich das vorinstallierte Betriebssystem des NIBObee, der alle wesentlichen Funktionen steuert und auch die serielle Kommunikation organisiert&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl kann ein Backup erstellt werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U eeprom:r:&amp;quot;BACKUPFILENAME.eeprom&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
Hier befinden sich die von uns Anwendern übertragenen Programme.&lt;br /&gt;
&lt;br /&gt;
Die Sicherung erfolgt mit diesem Befehl:&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U flash:r:&amp;quot;BACKUPFILENAME.flash&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fuses===&lt;br /&gt;
In den &amp;quot;Fuses&amp;quot; verwaltet der ATMEL-Prozessor diverse Einstellungen. Diese sollten wir im Normalfall nicht ändern. Aber ein Backup kann auch hier nicht schaden. Es gibt &amp;quot;high&amp;quot;-, &amp;quot;low&amp;quot;- und die E-Fuses, die getrennt verwaltet und auch gesichert werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U hfuse:r:&amp;quot;BACKUPFILENAME.hfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U lfuse:r:&amp;quot;BACKUPFILENAME.lfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U efuse:r:&amp;quot;BACKUPFILENAME.efuse&amp;quot;:b&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hello World==&lt;br /&gt;
---Work in progress---&lt;br /&gt;
==Nutzen der Spannungsüberwachung==&lt;br /&gt;
---Idee---&lt;br /&gt;
&lt;br /&gt;
Ein 1kHz-PWM-Signal mit 14% duty cycle erzeugt an GPIO18 (RP_PWM) ca. 0,6V. Diese Spannung vergleicht die Op-Amp-Schaltung mit einem 10tel der Batteriespannung. Sinkt die Spannung also unter 6V, reagiert unsere Schaltung mit einem auf HIGH gesetzten GPIO4.&lt;br /&gt;
&lt;br /&gt;
---Work in progress---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linienverfolger mit Fotofunktion==&lt;br /&gt;
---Work in progress---&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1251</id>
		<title>NIBObee-Berry</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1251"/>
				<updated>2016-04-12T09:46:00Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: Layout&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Info=&lt;br /&gt;
[[image:beeberry_full.jpg|500px|left|NIBObee-Berry]]&lt;br /&gt;
[[image:beeberry_side1.jpg|thumb|Über die Berry-Erweiterung stehen 2 zusätzliche Schalter und 2 LEDs zur Verfügung, die nach Belieben Verwendung finden werden]]&lt;br /&gt;
[[image:beeberry_side2.jpg|thumb|Insgesamt hat unser Mega-Käfer jetzt drei Ebenen: NIBObee, Berry-Erweiterung und der Raspberry selbst]]&lt;br /&gt;
&lt;br /&gt;
Mit dem Berry Modul kann ein NIBObee Roboter mit einem Raspberry Pi verbunden werden. Dadurch wird der Anschluss von nahezu beliebiger Sensorik (SPI, I2C, USB ...) möglich und zudem kann über den Raspberry via WLAN-Zugriff auf einen somit mobilen NIBObee zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus stehen über den vollwertigen Linux-Computer, den der Raspberry darstellt, wesentlich komfortablere und zugleich komplexere Programmiermöglichkeiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Das Berry-Modul enthält zudem einen integrierten DC/DC Wandler für die Spannungsversorgung des RPi, der mit einem weiten Spannungsbreich von 6,5 - 30 Volt umgehen kann. Dadurch können z.B. auch LiPo-Akkus etc. verwendet werden.&lt;br /&gt;
Über einen (leider nicht enthaltenen und nur optionalen) 2. DC/DC-Wandler kann aus dem Berry-Akku auch der NIBObee mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Der Rasperry Pi ist durch eine serielle Schnittstelle mit dem NIBObee verbunden.&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller im NIBObee kann dabei aus &amp;quot;ausführendes&amp;quot; Organ verstanden werden, während der Raspberry die Befehle erteilt.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann ggf. das neue eeprom-Flashen auf dem NIBObee bei Programmänderungen entfallen. Allerdings ist die Geschwindigkeit der Datenübertragung über die serielle Schnittstelle begrenzt, so dass die &amp;quot;reflexartigen&amp;quot; Funktionen ggf. besser &amp;quot;fest&amp;quot; im NIBObee-Controller verankert und die komplexen Funktionen im Raspberry umgesetzt werden sollten.&lt;br /&gt;
&lt;br /&gt;
Links im Bild sieht man den NIBOObee mit dem aufgesetzten Raspberry mit WLAN, Kamera und einer Powerbank als Stromquelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt=&lt;br /&gt;
[[image:Battclips_error1.jpg|350px|left|nachgelötete Batterieclips]]&lt;br /&gt;
Sowohl beim NIBObee, als auch beim Berry-AddOn sind vereinzelt Probleme bei den Batterieclips bekannt. Die verklemmten Bereiche an den Enden sind in manchen Fällen nicht stromführend verquetscht, so dass die Geräte nicht mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Dies lässt sich einfach nachmessen, in dem man die anliegenden Spannungen prüft.&lt;br /&gt;
&lt;br /&gt;
* beim NiboBEE sollte an X8 bei eingelegten Batterien ca. 5V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
* bei der Berry-Platine sollte an X10 zwischen 1 und 4 eine Spannung von ca. 8V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
&lt;br /&gt;
Ein Nachlöten hilft hier leicht ab.&lt;br /&gt;
&lt;br /&gt;
'''Aber Vorsicht!''' Auf jeden Fall die Akkus vorher entfernen, sonst werden die Clips durch den Federdruck und die Hitze beim Löten schnell irreparabel beschädigt!&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Rasp für die Kommunikation mit dem Bee=&lt;br /&gt;
Der Raspberry wird typischerweise mit [https://www.raspberrypi.org/downloads/raspbian/ Raspberian] betrieben, einer speziell angepassten Debian-Version für den Raspberry.&lt;br /&gt;
&lt;br /&gt;
Die Grundinstallation des Raspberrys ist im Internet, z.B. [https://www.raspberrypi.org/documentation/installation/installing-images/README.md hier], hinreichend beschrieben.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, ein Edimax-Nano-USB-WLAN-Stick gleich von Anfang an mit zu integrieren. Die Treiber bringt Raspberian bereits mit.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Arbeiten führen wir auf dem Raspberry aus, nachdem wir uns typischerweise mit einem SSH-Program (Linux: ssh, Windows: putty) nach der Grundeinrichtung mit dem Raspberry verbunden haben. &lt;br /&gt;
&lt;br /&gt;
Wir werden im Folgenden mit Linux als unserem Hauptsystem arbeiten; die Beispiele sind dementsprechend aus Linux-Sicht.&lt;br /&gt;
&lt;br /&gt;
Damit wir vollen Zugriff auf alle Funktionen und Rechte haben, werden wir mit dem root-Benutzer arbeiten.&lt;br /&gt;
&lt;br /&gt;
Verbinden von unserem lokalen Rechner aus mit dem Raspberry:&lt;br /&gt;
 user@localmachine:~# ssh root@[IP-ADRESSE-RASPBERRY]&lt;br /&gt;
&lt;br /&gt;
Sollte das Login trotz korrektem Passwort nicht möglich sein, ist vermutlich das Verbinden als root nicht gestattet. Wir melden uns dann als ''pi'', dem Standardbenutzer, an und verwandeln uns mit ''sudo su'' zu root:&lt;br /&gt;
 user@localmachine:~# ssh pi@[IP-ADRESSE-RASPBERRY]    (defaultpasswort: ''raspberry'')&lt;br /&gt;
 root@nibo:~# sudo su&lt;br /&gt;
 root@nibo:~#&lt;br /&gt;
&lt;br /&gt;
Wir werden der Ordnung halber gleich unter dem Ordner ''/opt'' einen eigenen Ordner für unsere Projekte anlegen:&lt;br /&gt;
 root@nibo:~# mkdir /opt/niboberry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation WiringPi / GPIO==&lt;br /&gt;
Damit wir einfach die Ein- und Ausgänge des Rapsberry ansprechen können, installieren wir ''WiringPi'', was nützliche Tools (''gpio'') und diverse Bibliotheken in C, C++, Python, Java und PHP mitbringt.&lt;br /&gt;
 root@nibo:~# apt-get update&lt;br /&gt;
 root@nibo:~# apt-get install git-core&lt;br /&gt;
 root@nibo:~# cd /opt&lt;br /&gt;
 root@nibo:/opt# git clone git://git.drogon.net/wiringPi&lt;br /&gt;
 root@nibo:/opt# cd WiringPi&lt;br /&gt;
 root@nibo:/opt/WiringPi# ./build&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test der Grundfunktion===&lt;br /&gt;
Mit einem kleinen Script testen wir die Grundfunktionen der Raspberry-Addon-Platine.&lt;br /&gt;
&lt;br /&gt;
Die Verdrahtung der Platine ist wie folgt:&lt;br /&gt;
 Taster A: Pin 15 (wPi: 3)&lt;br /&gt;
 Taster B: Pin 16 (wPi: 4)&lt;br /&gt;
 LED grün: Pin 18 (wPi: 5)&lt;br /&gt;
 LED  rot: Pin 22 (wPi: 6)&lt;br /&gt;
&lt;br /&gt;
Da die Taster das Signal auf GND legen, benötigen wir als &amp;quot;Gegenstück&amp;quot; (quasi im ungedrückten Zustand) ein High-Signal. Wir stellen daher den internen Pull-Up-Wiederstand für die Eingänge ein.&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Mit &lt;br /&gt;
 root@nibo:~# gpio readall&lt;br /&gt;
bekommen wir alle Ports, Ein- und Ausgänge, derzeitige Zustände und die unterschiedlichen Namen angezeigt:&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |&lt;br /&gt;
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |&lt;br /&gt;
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |&lt;br /&gt;
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |&lt;br /&gt;
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT0 | RxD     | 16  | 15  |&lt;br /&gt;
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |&lt;br /&gt;
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |&lt;br /&gt;
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |&lt;br /&gt;
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |&lt;br /&gt;
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |&lt;br /&gt;
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |&lt;br /&gt;
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |&lt;br /&gt;
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |&lt;br /&gt;
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
Dort erkennen wir auch, dass z.B. der physikalische Pin (''Physical'') 15 die WiringPi-(''wPi'')-Nummer 3 hat.&lt;br /&gt;
&lt;br /&gt;
Wir legen das Skript in unserem neuen Ordner an:&lt;br /&gt;
 root@nibo:~# cd /opt/niboberry&lt;br /&gt;
 root@nibo:~# nano test.sh&lt;br /&gt;
&lt;br /&gt;
Folgenden Code einfügen und mit '''[STRG-X]''' den Editor beenden und speichern:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Einstellen der Ports als Ein- bzw. Ausgang&lt;br /&gt;
 gpio mode 3 in&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 in&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
 gpio mode 5 out&lt;br /&gt;
 gpio mode 6 out&lt;br /&gt;
 &lt;br /&gt;
 # Abwechselndes Blinken der beiden LEDs&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 gpio write 5 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 &lt;br /&gt;
 # Endlosschleife für Hauptfunktion&lt;br /&gt;
 while [ True ]&lt;br /&gt;
  do&lt;br /&gt;
   if [ $(gpio read 3) = 0 ]&lt;br /&gt;
   # Taste 1 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster A&amp;quot;&lt;br /&gt;
     # LED 1 an&lt;br /&gt;
     gpio write 5 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 1 aus&lt;br /&gt;
     gpio write 5 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
   if [ $(gpio read 4) = 0 ]&lt;br /&gt;
   # Taste 2 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster B&amp;quot;&lt;br /&gt;
     # LED 2 an&lt;br /&gt;
     gpio write 6 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 2 aus&lt;br /&gt;
     gpio write 6 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Programmende (wird nie erreicht, da Endlosschleife)&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
Dann die Datei ausführbar machen und starten:&lt;br /&gt;
 root@nibo:~# chmod +x test.sh&lt;br /&gt;
 root@nibo:~# ./test.sh&lt;br /&gt;
&lt;br /&gt;
Die LED sollten nacheinander kurz aufleuchten, dann wartet das Script auf das Drücken der Taster.&lt;br /&gt;
&lt;br /&gt;
Bei Druck auf Taster A, sollte nun die grüne LED leuchten. Bei Druck auf Taster B die rote LED.&lt;br /&gt;
&lt;br /&gt;
Sollte das nicht funktionieren, je nach Problem die Platine und das Programm überprüfen.&lt;br /&gt;
&lt;br /&gt;
Mit '''[STRG-C]''' beenden wir das Testprogramm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Aufbau der seriellen Verbindung zum NIBObee==&lt;br /&gt;
Auf der Raspberry-GPIO-Leiste sind die Pins 8 (TX, senden) und 10 (RX, empfangen) für die serielle Kommunikation vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle wird vom Raspberry standardmäßig zur Bootprotokollierung verwendet.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion müssen wir daher zunächst deaktivieren.&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /boot/cdmline.txt&lt;br /&gt;
muss diese Zeile angepasst werden:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Der Parameter mit Verweis auf '''ttyAMA0''' muss entfernt werden.&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /etc/inittab&lt;br /&gt;
müssen wir verhindern, dass eine Login-Konsole auf die serielle Schnittstelle gesetzt wird. Dazu muss der entsprechende Eintrag (in der Regel die letzte Zeile) mit einer '''#''' auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Hier das Ergebnis:&lt;br /&gt;
 # T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
Nach einem '''Reboot''' sollte uns die Schnittstelle nun zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
Um mit dem NiboBEE zu &amp;quot;sprechen&amp;quot; benötigen wir ein Terminalprogramm.&lt;br /&gt;
&lt;br /&gt;
Viele stehen nach Belieben zur Verfügung. Für die Befehlszeile z.B.:&lt;br /&gt;
* minicom&lt;br /&gt;
* microcom&lt;br /&gt;
* picocom&lt;br /&gt;
&lt;br /&gt;
Installation von z.B. microcom mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install microcom&lt;br /&gt;
&lt;br /&gt;
Nun können wir zum ersten Mal vom Raspberry aus mit den NiboBEE die Verbindung aufnehmen. Vorausgesetzt, alle Module sind betriebsbereit, miteinander verbunden und eingeschaltet.&lt;br /&gt;
 microcom -p /dev/ttyAMA0 -s 9600&lt;br /&gt;
&lt;br /&gt;
Wenn auf dem NiboBEE noch das bei der Auslieferung aufgespielte Testprogramm im Flash-Speicher ist, sendet er laufend auf der seriellen Schnittstelle Werte der optischen Sensoren. z.B.:&lt;br /&gt;
 1a:1f:1a&lt;br /&gt;
Hält man nun den Finger rechts oder links unter den Sensor, ändern sich die Werte entsprechend.&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Bees für die Kommunikation mit dem Rasp=&lt;br /&gt;
Damit der Bee von dem Rasp über die serielle Schnittstelle Befehle annehmen und Daten senden kann, müssen diese miteinander kommunizieren und über eine &amp;quot;abgestimmten&amp;quot; Befehlssatz verfügen.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE ist bereits dementsprechend vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehlssatz nennt sich: [[Nibo_Serial_Protocol|Nibo Serial Protocol]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Programmierbeispiele=&lt;br /&gt;
Wenn wir schon einen Linux-Computer auf dem NiboBEE haben, wollen wir ihn natürlich auf möglichst umfassend nutzen.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation mit dem NiboBEE und dem Programmiercomputer erfolgt über die USB-Schnittstelle an der Frontseite des NiboBEE. Hier können wir natürlich auch eine Verbindung mit unserem Raspberry herstellen. &lt;br /&gt;
&lt;br /&gt;
Allerdings reagiert der Raspberry sehr empfindlich auf die Spannungsschwankungen, die beim Einstecken von USB-Geräten entstehen können. &lt;br /&gt;
'''Am besten schaltet man daher beide Geräte, insbesondere aber den Raspberry, vor dem Zusammenstecken über USB aus.'''&lt;br /&gt;
&lt;br /&gt;
Steht die Verbindung, haben wir die Möglichkeit, uns via WLAN und SSH auf den Raspberry zu schalten und dort direkt den verbundenen NiboBEE zu Programmieren.&lt;br /&gt;
&lt;br /&gt;
Ob die USB-Verbindung steht, kann mit&lt;br /&gt;
 lsusb&lt;br /&gt;
auf dem Raspberry festgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE wird wie folgt angezeigt:&lt;br /&gt;
 Bus 001 Device 007: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
Bevor wir eigene Programme auf den NiboBEE aufspielen, sollten wir ggf. vorhandene Programme sichern.&lt;br /&gt;
&lt;br /&gt;
Dazu benötigen wir, ebenso wie für das Übertragen unseres eigenen C-Codes, das Tool&lt;br /&gt;
 avrdude&lt;br /&gt;
&lt;br /&gt;
Dies installieren wir mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install avrdude&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EEPROM===&lt;br /&gt;
Hier befindet sich das vorinstallierte Betriebssystem des NiboBEE, der alle wesentlichen Funktionen steuert und auch die serielle Kommunikation organisiert&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl kann ein Backup erstellt werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U eeprom:r:&amp;quot;BACKUPFILENAME.eeprom&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
Hier befinden sich die von uns Anwendern übertragenen Programme.&lt;br /&gt;
&lt;br /&gt;
Die Sicherung erfolgt mit diesem Befehl:&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U flash:r:&amp;quot;BACKUPFILENAME.flash&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fuses===&lt;br /&gt;
In den &amp;quot;Fuses&amp;quot; verwaltet der ATMEL-Prozessor diverse Einstellungen. Diese sollten wir im Normalfall nicht ändern. Aber ein Backup kann auch hier nicht schaden. Es gibt &amp;quot;high&amp;quot;-, &amp;quot;low&amp;quot;- und die E-Fuses, die getrennt verwaltet und auch gesichert werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U hfuse:r:&amp;quot;BACKUPFILENAME.hfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U lfuse:r:&amp;quot;BACKUPFILENAME.lfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U efuse:r:&amp;quot;BACKUPFILENAME.efuse&amp;quot;:b&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hello World==&lt;br /&gt;
---Work in progress---&lt;br /&gt;
==Nutzen der Spannungsüberwachung==&lt;br /&gt;
---Idee---&lt;br /&gt;
&lt;br /&gt;
Ein 1kHz-PWM-Signal mit 14% duty cycle erzeugt an GPIO18 (RP_PWM) ca. 0,6V. Diese Spannung vergleicht die Op-Amp-Schaltung mit einem 10tel der Batteriespannung. Sinkt die Spannung also unter 6V, reagiert unsere Schaltung mit einem auf HIGH gesetzten GPIO4.&lt;br /&gt;
&lt;br /&gt;
---Work in progress---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linienverfolger mit Fotofunktion==&lt;br /&gt;
---Work in progress---&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1250</id>
		<title>NIBObee-Berry</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1250"/>
				<updated>2016-04-12T09:41:04Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Info=&lt;br /&gt;
[[image:beeberry_full.jpg|550px|right|NIBObee-Berry]]&lt;br /&gt;
Mit dem Berry Modul kann ein NIBObee Roboter mit einem Raspberry Pi verbunden werden. Dadurch wird der Anschluss von nahezu beliebiger Sensorik (SPI, I2C, USB ...) möglich und zudem kann über den Raspberry via WLAN-Zugriff auf einen somit mobilen NIBObee zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus stehen über den vollwertigen Linux-Computer, den der Raspberry darstellt, wesentlich komfortablere und zugleich komplexere Programmiermöglichkeiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Das Berry-Modul enthält zudem einen integrierten DC/DC Wandler für die Spannungsversorgung des RPi, der mit einem weiten Spannungsbreich von 6,5 - 30 Volt umgehen kann. Dadurch können z.B. auch LiPo-Akkus etc. verwendet werden.&lt;br /&gt;
Über einen (leider nicht enthaltenen und nur optionalen) 2. DC/DC-Wandler kann aus dem Berry-Akku auch der NIBObee mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Der Rasperry Pi ist durch eine serielle Schnittstelle mit dem NIBObee verbunden.&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller im NIBObee kann dabei aus &amp;quot;ausführendes&amp;quot; Organ verstanden werden, während der Raspberry die Befehle erteilt.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann ggf. das neue eeprom-Flashen auf dem NIBObee bei Programmänderungen entfallen. Allerdings ist die Geschwindigkeit der Datenübertragung über die serielle Schnittstelle begrenzt, so dass die &amp;quot;reflexartigen&amp;quot; Funktionen ggf. besser &amp;quot;fest&amp;quot; im NIBObee-Controller verankert und die komplexen Funktionen im Raspberry umgesetzt werden sollten.&lt;br /&gt;
&lt;br /&gt;
Rechts im Bild sieht man den NIBOObee mit dem aufgesetzten Raspberry mit WLAN, Kamera und einer Powerbank als Stromquelle.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über die Berry-Erweiterung stehen 2 zusätzliche Schalter und 2 LEDs zur Verfügung, die nach Belieben Verwendung finden werden:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side1.jpg|550px|NIBObee-Berry, Seitenansicht 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Insgesamt hat unser Mega-Käfer jetzt drei Ebenen: NIBObee, Berry-Erweiterung und der Raspberry selbst:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side2.jpg|350px|NIBObee-Berry, Seitenansicht 2]]&lt;br /&gt;
&lt;br /&gt;
=Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt=&lt;br /&gt;
[[image:Battclips_error1.jpg|350px|left|nachgelötete Batterieclips]]&lt;br /&gt;
Sowohl beim NIBObee, als auch beim Berry-AddOn sind vereinzelt Probleme bei den Batterieclips bekannt. Die verklemmten Bereiche an den Enden sind in manchen Fällen nicht stromführend verquetscht, so dass die Geräte nicht mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Dies lässt sich einfach nachmessen, in dem man die anliegenden Spannungen prüft.&lt;br /&gt;
&lt;br /&gt;
* beim NiboBEE sollte an X8 bei eingelegten Batterien ca. 5V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
* bei der Berry-Platine sollte an X10 zwischen 1 und 4 eine Spannung von ca. 8V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
&lt;br /&gt;
Ein Nachlöten hilft hier leicht ab.&lt;br /&gt;
&lt;br /&gt;
'''Aber Vorsicht!''' Auf jeden Fall die Akkus vorher entfernen, sonst werden die Clips durch den Federdruck und die Hitze beim Löten schnell irreparabel beschädigt!&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Rasp für die Kommunikation mit dem Bee=&lt;br /&gt;
Der Raspberry wird typischerweise mit [https://www.raspberrypi.org/downloads/raspbian/ Raspberian] betrieben, einer speziell angepassten Debian-Version für den Raspberry.&lt;br /&gt;
&lt;br /&gt;
Die Grundinstallation des Raspberrys ist im Internet, z.B. [https://www.raspberrypi.org/documentation/installation/installing-images/README.md hier], hinreichend beschrieben.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, ein Edimax-Nano-USB-WLAN-Stick gleich von Anfang an mit zu integrieren. Die Treiber bringt Raspberian bereits mit.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Arbeiten führen wir auf dem Raspberry aus, nachdem wir uns typischerweise mit einem SSH-Program (Linux: ssh, Windows: putty) nach der Grundeinrichtung mit dem Raspberry verbunden haben. &lt;br /&gt;
&lt;br /&gt;
Wir werden im Folgenden mit Linux als unserem Hauptsystem arbeiten; die Beispiele sind dementsprechend aus Linux-Sicht.&lt;br /&gt;
&lt;br /&gt;
Damit wir vollen Zugriff auf alle Funktionen und Rechte haben, werden wir mit dem root-Benutzer arbeiten.&lt;br /&gt;
&lt;br /&gt;
Verbinden von unserem lokalen Rechner aus mit dem Raspberry:&lt;br /&gt;
 user@localmachine:~# ssh root@[IP-ADRESSE-RASPBERRY]&lt;br /&gt;
&lt;br /&gt;
Sollte das Login trotz korrektem Passwort nicht möglich sein, ist vermutlich das Verbinden als root nicht gestattet. Wir melden uns dann als ''pi'', dem Standardbenutzer, an und verwandeln uns mit ''sudo su'' zu root:&lt;br /&gt;
 user@localmachine:~# ssh pi@[IP-ADRESSE-RASPBERRY]    (defaultpasswort: ''raspberry'')&lt;br /&gt;
 root@nibo:~# sudo su&lt;br /&gt;
 root@nibo:~#&lt;br /&gt;
&lt;br /&gt;
Wir werden der Ordnung halber gleich unter dem Ordner ''/opt'' einen eigenen Ordner für unsere Projekte anlegen:&lt;br /&gt;
 root@nibo:~# mkdir /opt/niboberry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation WiringPi / GPIO==&lt;br /&gt;
Damit wir einfach die Ein- und Ausgänge des Rapsberry ansprechen können, installieren wir ''WiringPi'', was nützliche Tools (''gpio'') und diverse Bibliotheken in C, C++, Python, Java und PHP mitbringt.&lt;br /&gt;
 root@nibo:~# apt-get update&lt;br /&gt;
 root@nibo:~# apt-get install git-core&lt;br /&gt;
 root@nibo:~# cd /opt&lt;br /&gt;
 root@nibo:/opt# git clone git://git.drogon.net/wiringPi&lt;br /&gt;
 root@nibo:/opt# cd WiringPi&lt;br /&gt;
 root@nibo:/opt/WiringPi# ./build&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test der Grundfunktion===&lt;br /&gt;
Mit einem kleinen Script testen wir die Grundfunktionen der Raspberry-Addon-Platine.&lt;br /&gt;
&lt;br /&gt;
Die Verdrahtung der Platine ist wie folgt:&lt;br /&gt;
 Taster A: Pin 15 (wPi: 3)&lt;br /&gt;
 Taster B: Pin 16 (wPi: 4)&lt;br /&gt;
 LED grün: Pin 18 (wPi: 5)&lt;br /&gt;
 LED  rot: Pin 22 (wPi: 6)&lt;br /&gt;
&lt;br /&gt;
Da die Taster das Signal auf GND legen, benötigen wir als &amp;quot;Gegenstück&amp;quot; (quasi im ungedrückten Zustand) ein High-Signal. Wir stellen daher den internen Pull-Up-Wiederstand für die Eingänge ein.&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Mit &lt;br /&gt;
 root@nibo:~# gpio readall&lt;br /&gt;
bekommen wir alle Ports, Ein- und Ausgänge, derzeitige Zustände und die unterschiedlichen Namen angezeigt:&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |&lt;br /&gt;
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |&lt;br /&gt;
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |&lt;br /&gt;
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |&lt;br /&gt;
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT0 | RxD     | 16  | 15  |&lt;br /&gt;
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |&lt;br /&gt;
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |&lt;br /&gt;
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |&lt;br /&gt;
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |&lt;br /&gt;
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |&lt;br /&gt;
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |&lt;br /&gt;
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |&lt;br /&gt;
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |&lt;br /&gt;
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
Dort erkennen wir auch, dass z.B. der physikalische Pin (''Physical'') 15 die WiringPi-(''wPi'')-Nummer 3 hat.&lt;br /&gt;
&lt;br /&gt;
Wir legen das Skript in unserem neuen Ordner an:&lt;br /&gt;
 root@nibo:~# cd /opt/niboberry&lt;br /&gt;
 root@nibo:~# nano test.sh&lt;br /&gt;
&lt;br /&gt;
Folgenden Code einfügen und mit '''[STRG-X]''' den Editor beenden und speichern:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Einstellen der Ports als Ein- bzw. Ausgang&lt;br /&gt;
 gpio mode 3 in&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 in&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
 gpio mode 5 out&lt;br /&gt;
 gpio mode 6 out&lt;br /&gt;
 &lt;br /&gt;
 # Abwechselndes Blinken der beiden LEDs&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 gpio write 5 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 &lt;br /&gt;
 # Endlosschleife für Hauptfunktion&lt;br /&gt;
 while [ True ]&lt;br /&gt;
  do&lt;br /&gt;
   if [ $(gpio read 3) = 0 ]&lt;br /&gt;
   # Taste 1 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster A&amp;quot;&lt;br /&gt;
     # LED 1 an&lt;br /&gt;
     gpio write 5 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 1 aus&lt;br /&gt;
     gpio write 5 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
   if [ $(gpio read 4) = 0 ]&lt;br /&gt;
   # Taste 2 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster B&amp;quot;&lt;br /&gt;
     # LED 2 an&lt;br /&gt;
     gpio write 6 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 2 aus&lt;br /&gt;
     gpio write 6 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Programmende (wird nie erreicht, da Endlosschleife)&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
Dann die Datei ausführbar machen und starten:&lt;br /&gt;
 root@nibo:~# chmod +x test.sh&lt;br /&gt;
 root@nibo:~# ./test.sh&lt;br /&gt;
&lt;br /&gt;
Die LED sollten nacheinander kurz aufleuchten, dann wartet das Script auf das Drücken der Taster.&lt;br /&gt;
&lt;br /&gt;
Bei Druck auf Taster A, sollte nun die grüne LED leuchten. Bei Druck auf Taster B die rote LED.&lt;br /&gt;
&lt;br /&gt;
Sollte das nicht funktionieren, je nach Problem die Platine und das Programm überprüfen.&lt;br /&gt;
&lt;br /&gt;
Mit '''[STRG-C]''' beenden wir das Testprogramm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Aufbau der seriellen Verbindung zum NIBObee==&lt;br /&gt;
Auf der Raspberry-GPIO-Leiste sind die Pins 8 (TX, senden) und 10 (RX, empfangen) für die serielle Kommunikation vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle wird vom Raspberry standardmäßig zur Bootprotokollierung verwendet.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion müssen wir daher zunächst deaktivieren.&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /boot/cdmline.txt&lt;br /&gt;
muss diese Zeile angepasst werden:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Der Parameter mit Verweis auf '''ttyAMA0''' muss entfernt werden.&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /etc/inittab&lt;br /&gt;
müssen wir verhindern, dass eine Login-Konsole auf die serielle Schnittstelle gesetzt wird. Dazu muss der entsprechende Eintrag (in der Regel die letzte Zeile) mit einer '''#''' auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Hier das Ergebnis:&lt;br /&gt;
 # T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
Nach einem '''Reboot''' sollte uns die Schnittstelle nun zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
Um mit dem NiboBEE zu &amp;quot;sprechen&amp;quot; benötigen wir ein Terminalprogramm.&lt;br /&gt;
&lt;br /&gt;
Viele stehen nach Belieben zur Verfügung. Für die Befehlszeile z.B.:&lt;br /&gt;
* minicom&lt;br /&gt;
* microcom&lt;br /&gt;
* picocom&lt;br /&gt;
&lt;br /&gt;
Installation von z.B. microcom mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install microcom&lt;br /&gt;
&lt;br /&gt;
Nun können wir zum ersten Mal vom Raspberry aus mit den NiboBEE die Verbindung aufnehmen. Vorausgesetzt, alle Module sind betriebsbereit, miteinander verbunden und eingeschaltet.&lt;br /&gt;
 microcom -p /dev/ttyAMA0 -s 9600&lt;br /&gt;
&lt;br /&gt;
Wenn auf dem NiboBEE noch das bei der Auslieferung aufgespielte Testprogramm im Flash-Speicher ist, sendet er laufend auf der seriellen Schnittstelle Werte der optischen Sensoren. z.B.:&lt;br /&gt;
 1a:1f:1a&lt;br /&gt;
Hält man nun den Finger rechts oder links unter den Sensor, ändern sich die Werte entsprechend.&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Bees für die Kommunikation mit dem Rasp=&lt;br /&gt;
Damit der Bee von dem Rasp über die serielle Schnittstelle Befehle annehmen und Daten senden kann, müssen diese miteinander kommunizieren und über eine &amp;quot;abgestimmten&amp;quot; Befehlssatz verfügen.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE ist bereits dementsprechend vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehlssatz nennt sich: [[Nibo_Serial_Protocol|Nibo Serial Protocol]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Programmierbeispiele=&lt;br /&gt;
Wenn wir schon einen Linux-Computer auf dem NiboBEE haben, wollen wir ihn natürlich auf möglichst umfassend nutzen.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation mit dem NiboBEE und dem Programmiercomputer erfolgt über die USB-Schnittstelle an der Frontseite des NiboBEE. Hier können wir natürlich auch eine Verbindung mit unserem Raspberry herstellen. &lt;br /&gt;
&lt;br /&gt;
Allerdings reagiert der Raspberry sehr empfindlich auf die Spannungsschwankungen, die beim Einstecken von USB-Geräten entstehen können. &lt;br /&gt;
'''Am besten schaltet man daher beide Geräte, insbesondere aber den Raspberry, vor dem Zusammenstecken über USB aus.'''&lt;br /&gt;
&lt;br /&gt;
Steht die Verbindung, haben wir die Möglichkeit, uns via WLAN und SSH auf den Raspberry zu schalten und dort direkt den verbundenen NiboBEE zu Programmieren.&lt;br /&gt;
&lt;br /&gt;
Ob die USB-Verbindung steht, kann mit&lt;br /&gt;
 lsusb&lt;br /&gt;
auf dem Raspberry festgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE wird wie folgt angezeigt:&lt;br /&gt;
 Bus 001 Device 007: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
Bevor wir eigene Programme auf den NiboBEE aufspielen, sollten wir ggf. vorhandene Programme sichern.&lt;br /&gt;
&lt;br /&gt;
Dazu benötigen wir, ebenso wie für das Übertragen unseres eigenen C-Codes, das Tool&lt;br /&gt;
 avrdude&lt;br /&gt;
&lt;br /&gt;
Dies installieren wir mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install avrdude&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EEPROM===&lt;br /&gt;
Hier befindet sich das vorinstallierte Betriebssystem des NiboBEE, der alle wesentlichen Funktionen steuert und auch die serielle Kommunikation organisiert&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl kann ein Backup erstellt werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U eeprom:r:&amp;quot;BACKUPFILENAME.eeprom&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
Hier befinden sich die von uns Anwendern übertragenen Programme.&lt;br /&gt;
&lt;br /&gt;
Die Sicherung erfolgt mit diesem Befehl:&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U flash:r:&amp;quot;BACKUPFILENAME.flash&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fuses===&lt;br /&gt;
In den &amp;quot;Fuses&amp;quot; verwaltet der ATMEL-Prozessor diverse Einstellungen. Diese sollten wir im Normalfall nicht ändern. Aber ein Backup kann auch hier nicht schaden. Es gibt &amp;quot;high&amp;quot;-, &amp;quot;low&amp;quot;- und die E-Fuses, die getrennt verwaltet und auch gesichert werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U hfuse:r:&amp;quot;BACKUPFILENAME.hfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U lfuse:r:&amp;quot;BACKUPFILENAME.lfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U efuse:r:&amp;quot;BACKUPFILENAME.efuse&amp;quot;:b&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hello World==&lt;br /&gt;
---Work in progress---&lt;br /&gt;
==Nutzen der Spannungsüberwachung==&lt;br /&gt;
---Idee---&lt;br /&gt;
&lt;br /&gt;
Ein 1kHz-PWM-Signal mit 14% duty cycle erzeugt an GPIO18 (RP_PWM) ca. 0,6V. Diese Spannung vergleicht die Op-Amp-Schaltung mit einem 10tel der Batteriespannung. Sinkt die Spannung also unter 6V, reagiert unsere Schaltung mit einem auf HIGH gesetzten GPIO4.&lt;br /&gt;
&lt;br /&gt;
---Work in progress---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linienverfolger mit Fotofunktion==&lt;br /&gt;
---Work in progress---&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1249</id>
		<title>NIBObee-Berry</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1249"/>
				<updated>2016-04-12T09:39:51Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Info=&lt;br /&gt;
[[image:beeberry_full.jpg|550px|right|NIBObee-Berry]]&lt;br /&gt;
Mit dem Berry Modul kann ein NIBObee Roboter mit einem Raspberry Pi verbunden werden. Dadurch wird der Anschluss von nahezu beliebiger Sensorik (SPI, I2C, USB ...) möglich und zudem kann über den Raspberry via WLAN-Zugriff auf einen somit mobilen NIBObee zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus stehen über den vollwertigen Linux-Computer, den der Raspberry darstellt, wesentlich komfortablere und zugleich komplexere Programmiermöglichkeiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Das Berry-Modul enthält zudem einen integrierten DC/DC Wandler für die Spannungsversorgung des RPi, der mit einem weiten Spannungsbreich von 6,5 - 30 Volt umgehen kann. Dadurch können z.B. auch LiPo-Akkus etc. verwendet werden.&lt;br /&gt;
Über einen (leider nicht enthaltenen und nur optionalen) 2. DC/DC-Wandler kann aus dem Berry-Akku auch der NIBObee mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Der Rasperry Pi ist durch eine serielle Schnittstelle mit dem NIBObee verbunden.&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller im NIBObee kann dabei aus &amp;quot;ausführendes&amp;quot; Organ verstanden werden, während der Raspberry die Befehle erteilt.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann ggf. das neue eeprom-Flashen auf dem NIBObee bei Programmänderungen entfallen. Allerdings ist die Geschwindigkeit der Datenübertragung über die serielle Schnittstelle begrenzt, so dass die &amp;quot;reflexartigen&amp;quot; Funktionen ggf. besser &amp;quot;fest&amp;quot; im NIBObee-Controller verankert und die komplexen Funktionen im Raspberry umgesetzt werden sollten.&lt;br /&gt;
&lt;br /&gt;
Rechts im Bild sieht man den NIBOObee mit dem aufgesetzten Raspberry mit WLAN, Kamera und einer Powerbank als Stromquelle.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über die Berry-Erweiterung stehen 2 zusätzliche Schalter und 2 LEDs zur Verfügung, die nach Belieben Verwendung finden werden:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side1.jpg|550px|NIBObee-Berry, Seitenansicht 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Insgesamt hat unser Mega-Käfer jetzt drei Ebenen: NIBObee, Berry-Erweiterung und der Raspberry selbst:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side2.jpg|550px|NIBObee-Berry, Seitenansicht 2]]&lt;br /&gt;
&lt;br /&gt;
=Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt=&lt;br /&gt;
[[image:Battclips_error1.jpg|350px|left|nachgelötete Batterieclips]]&lt;br /&gt;
Sowohl beim NIBObee, als auch beim Berry-AddOn sind vereinzelt Probleme bei den Batterieclips bekannt. Die verklemmten Bereiche an den Enden sind in manchen Fällen nicht stromführend verquetscht, so dass die Geräte nicht mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Dies lässt sich einfach nachmessen, in dem man die anliegenden Spannungen prüft.&lt;br /&gt;
&lt;br /&gt;
* beim NiboBEE sollte an X8 bei eingelegten Batterien ca. 5V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
* bei der Berry-Platine sollte an X10 zwischen 1 und 4 eine Spannung von ca. 8V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
&lt;br /&gt;
Ein Nachlöten hilft hier leicht ab.&lt;br /&gt;
&lt;br /&gt;
'''Aber Vorsicht!''' Auf jeden Fall die Akkus vorher entfernen, sonst werden die Clips durch den Federdruck und die Hitze beim Löten schnell irreparabel beschädigt!&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Rasp für die Kommunikation mit dem Bee=&lt;br /&gt;
Der Raspberry wird typischerweise mit [https://www.raspberrypi.org/downloads/raspbian/ Raspberian] betrieben, einer speziell angepassten Debian-Version für den Raspberry.&lt;br /&gt;
&lt;br /&gt;
Die Grundinstallation des Raspberrys ist im Internet, z.B. [https://www.raspberrypi.org/documentation/installation/installing-images/README.md hier], hinreichend beschrieben.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, ein Edimax-Nano-USB-WLAN-Stick gleich von Anfang an mit zu integrieren. Die Treiber bringt Raspberian bereits mit.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Arbeiten führen wir auf dem Raspberry aus, nachdem wir uns typischerweise mit einem SSH-Program (Linux: ssh, Windows: putty) nach der Grundeinrichtung mit dem Raspberry verbunden haben. &lt;br /&gt;
&lt;br /&gt;
Wir werden im Folgenden mit Linux als unserem Hauptsystem arbeiten; die Beispiele sind dementsprechend aus Linux-Sicht.&lt;br /&gt;
&lt;br /&gt;
Damit wir vollen Zugriff auf alle Funktionen und Rechte haben, werden wir mit dem root-Benutzer arbeiten.&lt;br /&gt;
&lt;br /&gt;
Verbinden von unserem lokalen Rechner aus mit dem Raspberry:&lt;br /&gt;
 user@localmachine:~# ssh root@[IP-ADRESSE-RASPBERRY]&lt;br /&gt;
&lt;br /&gt;
Sollte das Login trotz korrektem Passwort nicht möglich sein, ist vermutlich das Verbinden als root nicht gestattet. Wir melden uns dann als ''pi'', dem Standardbenutzer, an und verwandeln uns mit ''sudo su'' zu root:&lt;br /&gt;
 user@localmachine:~# ssh pi@[IP-ADRESSE-RASPBERRY]    (defaultpasswort: ''raspberry'')&lt;br /&gt;
 root@nibo:~# sudo su&lt;br /&gt;
 root@nibo:~#&lt;br /&gt;
&lt;br /&gt;
Wir werden der Ordnung halber gleich unter dem Ordner ''/opt'' einen eigenen Ordner für unsere Projekte anlegen:&lt;br /&gt;
 root@nibo:~# mkdir /opt/niboberry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation WiringPi / GPIO==&lt;br /&gt;
Damit wir einfach die Ein- und Ausgänge des Rapsberry ansprechen können, installieren wir ''WiringPi'', was nützliche Tools (''gpio'') und diverse Bibliotheken in C, C++, Python, Java und PHP mitbringt.&lt;br /&gt;
 root@nibo:~# apt-get update&lt;br /&gt;
 root@nibo:~# apt-get install git-core&lt;br /&gt;
 root@nibo:~# cd /opt&lt;br /&gt;
 root@nibo:/opt# git clone git://git.drogon.net/wiringPi&lt;br /&gt;
 root@nibo:/opt# cd WiringPi&lt;br /&gt;
 root@nibo:/opt/WiringPi# ./build&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test der Grundfunktion===&lt;br /&gt;
Mit einem kleinen Script testen wir die Grundfunktionen der Raspberry-Addon-Platine.&lt;br /&gt;
&lt;br /&gt;
Die Verdrahtung der Platine ist wie folgt:&lt;br /&gt;
 Taster A: Pin 15 (wPi: 3)&lt;br /&gt;
 Taster B: Pin 16 (wPi: 4)&lt;br /&gt;
 LED grün: Pin 18 (wPi: 5)&lt;br /&gt;
 LED  rot: Pin 22 (wPi: 6)&lt;br /&gt;
&lt;br /&gt;
Da die Taster das Signal auf GND legen, benötigen wir als &amp;quot;Gegenstück&amp;quot; (quasi im ungedrückten Zustand) ein High-Signal. Wir stellen daher den internen Pull-Up-Wiederstand für die Eingänge ein.&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Mit &lt;br /&gt;
 root@nibo:~# gpio readall&lt;br /&gt;
bekommen wir alle Ports, Ein- und Ausgänge, derzeitige Zustände und die unterschiedlichen Namen angezeigt:&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |&lt;br /&gt;
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |&lt;br /&gt;
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |&lt;br /&gt;
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |&lt;br /&gt;
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT0 | RxD     | 16  | 15  |&lt;br /&gt;
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |&lt;br /&gt;
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |&lt;br /&gt;
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |&lt;br /&gt;
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |&lt;br /&gt;
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |&lt;br /&gt;
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |&lt;br /&gt;
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |&lt;br /&gt;
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |&lt;br /&gt;
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
Dort erkennen wir auch, dass z.B. der physikalische Pin (''Physical'') 15 die WiringPi-(''wPi'')-Nummer 3 hat.&lt;br /&gt;
&lt;br /&gt;
Wir legen das Skript in unserem neuen Ordner an:&lt;br /&gt;
 root@nibo:~# cd /opt/niboberry&lt;br /&gt;
 root@nibo:~# nano test.sh&lt;br /&gt;
&lt;br /&gt;
Folgenden Code einfügen und mit '''[STRG-X]''' den Editor beenden und speichern:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Einstellen der Ports als Ein- bzw. Ausgang&lt;br /&gt;
 gpio mode 3 in&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 in&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
 gpio mode 5 out&lt;br /&gt;
 gpio mode 6 out&lt;br /&gt;
 &lt;br /&gt;
 # Abwechselndes Blinken der beiden LEDs&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 gpio write 5 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 &lt;br /&gt;
 # Endlosschleife für Hauptfunktion&lt;br /&gt;
 while [ True ]&lt;br /&gt;
  do&lt;br /&gt;
   if [ $(gpio read 3) = 0 ]&lt;br /&gt;
   # Taste 1 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster A&amp;quot;&lt;br /&gt;
     # LED 1 an&lt;br /&gt;
     gpio write 5 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 1 aus&lt;br /&gt;
     gpio write 5 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
   if [ $(gpio read 4) = 0 ]&lt;br /&gt;
   # Taste 2 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster B&amp;quot;&lt;br /&gt;
     # LED 2 an&lt;br /&gt;
     gpio write 6 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 2 aus&lt;br /&gt;
     gpio write 6 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Programmende (wird nie erreicht, da Endlosschleife)&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
Dann die Datei ausführbar machen und starten:&lt;br /&gt;
 root@nibo:~# chmod +x test.sh&lt;br /&gt;
 root@nibo:~# ./test.sh&lt;br /&gt;
&lt;br /&gt;
Die LED sollten nacheinander kurz aufleuchten, dann wartet das Script auf das Drücken der Taster.&lt;br /&gt;
&lt;br /&gt;
Bei Druck auf Taster A, sollte nun die grüne LED leuchten. Bei Druck auf Taster B die rote LED.&lt;br /&gt;
&lt;br /&gt;
Sollte das nicht funktionieren, je nach Problem die Platine und das Programm überprüfen.&lt;br /&gt;
&lt;br /&gt;
Mit '''[STRG-C]''' beenden wir das Testprogramm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Aufbau der seriellen Verbindung zum NIBObee==&lt;br /&gt;
Auf der Raspberry-GPIO-Leiste sind die Pins 8 (TX, senden) und 10 (RX, empfangen) für die serielle Kommunikation vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle wird vom Raspberry standardmäßig zur Bootprotokollierung verwendet.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion müssen wir daher zunächst deaktivieren.&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /boot/cdmline.txt&lt;br /&gt;
muss diese Zeile angepasst werden:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Der Parameter mit Verweis auf '''ttyAMA0''' muss entfernt werden.&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /etc/inittab&lt;br /&gt;
müssen wir verhindern, dass eine Login-Konsole auf die serielle Schnittstelle gesetzt wird. Dazu muss der entsprechende Eintrag (in der Regel die letzte Zeile) mit einer '''#''' auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Hier das Ergebnis:&lt;br /&gt;
 # T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
Nach einem '''Reboot''' sollte uns die Schnittstelle nun zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
Um mit dem NiboBEE zu &amp;quot;sprechen&amp;quot; benötigen wir ein Terminalprogramm.&lt;br /&gt;
&lt;br /&gt;
Viele stehen nach Belieben zur Verfügung. Für die Befehlszeile z.B.:&lt;br /&gt;
* minicom&lt;br /&gt;
* microcom&lt;br /&gt;
* picocom&lt;br /&gt;
&lt;br /&gt;
Installation von z.B. microcom mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install microcom&lt;br /&gt;
&lt;br /&gt;
Nun können wir zum ersten Mal vom Raspberry aus mit den NiboBEE die Verbindung aufnehmen. Vorausgesetzt, alle Module sind betriebsbereit, miteinander verbunden und eingeschaltet.&lt;br /&gt;
 microcom -p /dev/ttyAMA0 -s 9600&lt;br /&gt;
&lt;br /&gt;
Wenn auf dem NiboBEE noch das bei der Auslieferung aufgespielte Testprogramm im Flash-Speicher ist, sendet er laufend auf der seriellen Schnittstelle Werte der optischen Sensoren. z.B.:&lt;br /&gt;
 1a:1f:1a&lt;br /&gt;
Hält man nun den Finger rechts oder links unter den Sensor, ändern sich die Werte entsprechend.&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Bees für die Kommunikation mit dem Rasp=&lt;br /&gt;
Damit der Bee von dem Rasp über die serielle Schnittstelle Befehle annehmen und Daten senden kann, müssen diese miteinander kommunizieren und über eine &amp;quot;abgestimmten&amp;quot; Befehlssatz verfügen.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE ist bereits dementsprechend vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehlssatz nennt sich: [[Nibo_Serial_Protocol|Nibo Serial Protocol]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Programmierbeispiele=&lt;br /&gt;
Wenn wir schon einen Linux-Computer auf dem NiboBEE haben, wollen wir ihn natürlich auf möglichst umfassend nutzen.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation mit dem NiboBEE und dem Programmiercomputer erfolgt über die USB-Schnittstelle an der Frontseite des NiboBEE. Hier können wir natürlich auch eine Verbindung mit unserem Raspberry herstellen. &lt;br /&gt;
&lt;br /&gt;
Allerdings reagiert der Raspberry sehr empfindlich auf die Spannungsschwankungen, die beim Einstecken von USB-Geräten entstehen können. &lt;br /&gt;
'''Am besten schaltet man daher beide Geräte, insbesondere aber den Raspberry, vor dem Zusammenstecken über USB aus.'''&lt;br /&gt;
&lt;br /&gt;
Steht die Verbindung, haben wir die Möglichkeit, uns via WLAN und SSH auf den Raspberry zu schalten und dort direkt den verbundenen NiboBEE zu Programmieren.&lt;br /&gt;
&lt;br /&gt;
Ob die USB-Verbindung steht, kann mit&lt;br /&gt;
 lsusb&lt;br /&gt;
auf dem Raspberry festgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE wird wie folgt angezeigt:&lt;br /&gt;
 Bus 001 Device 007: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
Bevor wir eigene Programme auf den NiboBEE aufspielen, sollten wir ggf. vorhandene Programme sichern.&lt;br /&gt;
&lt;br /&gt;
Dazu benötigen wir, ebenso wie für das Übertragen unseres eigenen C-Codes, das Tool&lt;br /&gt;
 avrdude&lt;br /&gt;
&lt;br /&gt;
Dies installieren wir mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install avrdude&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EEPROM===&lt;br /&gt;
Hier befindet sich das vorinstallierte Betriebssystem des NiboBEE, der alle wesentlichen Funktionen steuert und auch die serielle Kommunikation organisiert&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl kann ein Backup erstellt werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U eeprom:r:&amp;quot;BACKUPFILENAME.eeprom&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
Hier befinden sich die von uns Anwendern übertragenen Programme.&lt;br /&gt;
&lt;br /&gt;
Die Sicherung erfolgt mit diesem Befehl:&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U flash:r:&amp;quot;BACKUPFILENAME.flash&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fuses===&lt;br /&gt;
In den &amp;quot;Fuses&amp;quot; verwaltet der ATMEL-Prozessor diverse Einstellungen. Diese sollten wir im Normalfall nicht ändern. Aber ein Backup kann auch hier nicht schaden. Es gibt &amp;quot;high&amp;quot;-, &amp;quot;low&amp;quot;- und die E-Fuses, die getrennt verwaltet und auch gesichert werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U hfuse:r:&amp;quot;BACKUPFILENAME.hfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U lfuse:r:&amp;quot;BACKUPFILENAME.lfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U efuse:r:&amp;quot;BACKUPFILENAME.efuse&amp;quot;:b&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hello World==&lt;br /&gt;
---Work in progress---&lt;br /&gt;
==Nutzen der Spannungsüberwachung==&lt;br /&gt;
---Idee---&lt;br /&gt;
&lt;br /&gt;
Ein 1kHz-PWM-Signal mit 14% duty cycle erzeugt an GPIO18 (RP_PWM) ca. 0,6V. Diese Spannung vergleicht die Op-Amp-Schaltung mit einem 10tel der Batteriespannung. Sinkt die Spannung also unter 6V, reagiert unsere Schaltung mit einem auf HIGH gesetzten GPIO4.&lt;br /&gt;
&lt;br /&gt;
---Work in progress---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linienverfolger mit Fotofunktion==&lt;br /&gt;
---Work in progress---&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1248</id>
		<title>NIBObee-Berry</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1248"/>
				<updated>2016-04-12T09:37:50Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: /* Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Info=&lt;br /&gt;
[[image:beeberry_full.jpg|550px|right|NIBObee-Berry]]&lt;br /&gt;
Mit dem Berry Modul kann ein NIBObee Roboter mit einem Raspberry Pi verbunden werden. Dadurch wird der Anschluss von nahezu beliebiger Sensorik (SPI, I2C, USB ...) möglich und zudem kann über den Raspberry via WLAN-Zugriff auf einen somit mobilen NIBObee zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus stehen über den vollwertigen Linux-Computer, den der Raspberry darstellt, wesentlich komfortablere und zugleich komplexere Programmiermöglichkeiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Das Berry-Modul enthält zudem einen integrierten DC/DC Wandler für die Spannungsversorgung des RPi, der mit einem weiten Spannungsbreich von 6,5 - 30 Volt umgehen kann. Dadurch können z.B. auch LiPo-Akkus etc. verwendet werden.&lt;br /&gt;
Über einen (leider nicht enthaltenen und nur optionalen) 2. DC/DC-Wandler kann aus dem Berry-Akku auch der NIBObee mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Der Rasperry Pi ist durch eine serielle Schnittstelle mit dem NIBObee verbunden.&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller im NIBObee kann dabei aus &amp;quot;ausführendes&amp;quot; Organ verstanden werden, während der Raspberry die Befehle erteilt.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann ggf. das neue eeprom-Flashen auf dem NIBObee bei Programmänderungen entfallen. Allerdings ist die Geschwindigkeit der Datenübertragung über die serielle Schnittstelle begrenzt, so dass die &amp;quot;reflexartigen&amp;quot; Funktionen ggf. besser &amp;quot;fest&amp;quot; im NIBObee-Controller verankert und die komplexen Funktionen im Raspberry umgesetzt werden sollten.&lt;br /&gt;
&lt;br /&gt;
Rechts im Bild sieht man den NIBOObee mit dem aufgesetzten Raspberry mit WLAN, Kamera und einer Powerbank als Stromquelle.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über die Berry-Erweiterung stehen 2 zusätzliche Schalter und 2 LEDs zur Verfügung, die nach Belieben Verwendung finden werden:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side1.jpg|550px|NIBObee-Berry, Seitenansicht 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Insgesamt hat unser Mega-Käfer jetzt drei Ebenen: NIBObee, Berry-Erweiterung und der Raspberry selbst:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side2.jpg|550px|NIBObee-Berry, Seitenansicht 2]]&lt;br /&gt;
&lt;br /&gt;
=Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt=&lt;br /&gt;
[[image:Battclips_error1.jpg|350px|left|nachgelötete Batterieclips]]&lt;br /&gt;
Sowohl beim NIBObee, als auch beim Berry-AddOn sind vereinzelt Probleme bei den Batterieclips bekannt. Die verklemmten Bereiche an den Enden sind in manchen Fällen nicht stromführend verquetscht, so dass die Geräte nicht mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Dies lässt sich einfach nachmessen, in dem man die anliegenden Spannungen prüft.&lt;br /&gt;
&lt;br /&gt;
* beim NiboBEE sollte an X8 bei eingelegten Batterien ca. 5V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
* bei der Berry-Platine sollte an X10 zwischen 1 und 4 eine Spannung von ca. 8V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
&lt;br /&gt;
Ein Nachlöten hilft hier leicht ab.&lt;br /&gt;
&lt;br /&gt;
'''Aber Vorsicht!''' Auf jeden Fall die Akkus vorher entfernen, sonst werden die Clips durch den Federdruck und die Hitze beim Löten schnell irreparabel beschädigt!&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Rasp für die Kommunikation mit dem Bee=&lt;br /&gt;
Der Raspberry wird typischerweise mit [https://www.raspberrypi.org/downloads/raspbian/ Raspberian] betrieben, einer speziell angepassten Debian-Version für den Raspberry.&lt;br /&gt;
&lt;br /&gt;
Die Grundinstallation des Raspberrys ist im Internet, z.B. [https://www.raspberrypi.org/documentation/installation/installing-images/README.md hier], hinreichend beschrieben.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, ein Edimax-Nano-USB-WLAN-Stick gleich von Anfang an mit zu integrieren. Die Treiber bringt Raspberian bereits mit.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Arbeiten führen wir auf dem Raspberry aus, nachdem wir uns typischerweise mit einem SSH-Program (Linux: ssh, Windows: putty) nach der Grundeinrichtung mit dem Raspberry verbunden haben. &lt;br /&gt;
&lt;br /&gt;
Wir werden im Folgenden mit Linux als unserem Hauptsystem arbeiten; die Beispiele sind dementsprechend aus Linux-Sicht.&lt;br /&gt;
&lt;br /&gt;
Damit wir vollen Zugriff auf alle Funktionen und Rechte haben, werden wir mit dem root-Benutzer arbeiten.&lt;br /&gt;
&lt;br /&gt;
Verbinden von unserem lokalen Rechner aus mit dem Raspberry:&lt;br /&gt;
 user@localmachine:~# ssh root@[IP-ADRESSE-RASPBERRY]&lt;br /&gt;
&lt;br /&gt;
Sollte das Login trotz korrektem Passwort nicht möglich sein, ist vermutlich das Verbinden als root nicht gestattet. Wir melden uns dann als ''pi'', dem Standardbenutzer, an und verwandeln uns mit ''sudo su'' zu root:&lt;br /&gt;
 user@localmachine:~# ssh pi@[IP-ADRESSE-RASPBERRY]    (defaultpasswort: ''raspberry'')&lt;br /&gt;
 root@nibo:~# sudo su&lt;br /&gt;
 root@nibo:~#&lt;br /&gt;
&lt;br /&gt;
Wir werden der Ordnung halber gleich unter dem Ordner ''/opt'' einen eigenen Ordner für unsere Projekte anlegen:&lt;br /&gt;
 root@nibo:~# mkdir /opt/niboberry&lt;br /&gt;
&lt;br /&gt;
==Installation WiringPi / GPIO==&lt;br /&gt;
Damit wir einfach die Ein- und Ausgänge des Rapsberry ansprechen können, installieren wir ''WiringPi'', was nützliche Tools (''gpio'') und diverse Bibliotheken in C, C++, Python, Java und PHP mitbringt.&lt;br /&gt;
 root@nibo:~# apt-get update&lt;br /&gt;
 root@nibo:~# apt-get install git-core&lt;br /&gt;
 root@nibo:~# cd /opt&lt;br /&gt;
 root@nibo:/opt# git clone git://git.drogon.net/wiringPi&lt;br /&gt;
 root@nibo:/opt# cd WiringPi&lt;br /&gt;
 root@nibo:/opt/WiringPi# ./build&lt;br /&gt;
&lt;br /&gt;
===Test der Grundfunktion===&lt;br /&gt;
Mit einem kleinen Script testen wir die Grundfunktionen der Raspberry-Addon-Platine.&lt;br /&gt;
&lt;br /&gt;
Die Verdrahtung der Platine ist wie folgt:&lt;br /&gt;
 Taster A: Pin 15 (wPi: 3)&lt;br /&gt;
 Taster B: Pin 16 (wPi: 4)&lt;br /&gt;
 LED grün: Pin 18 (wPi: 5)&lt;br /&gt;
 LED  rot: Pin 22 (wPi: 6)&lt;br /&gt;
&lt;br /&gt;
Da die Taster das Signal auf GND legen, benötigen wir als &amp;quot;Gegenstück&amp;quot; (quasi im ungedrückten Zustand) ein High-Signal. Wir stellen daher den internen Pull-Up-Wiederstand für die Eingänge ein.&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Mit &lt;br /&gt;
 root@nibo:~# gpio readall&lt;br /&gt;
bekommen wir alle Ports, Ein- und Ausgänge, derzeitige Zustände und die unterschiedlichen Namen angezeigt:&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |&lt;br /&gt;
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |&lt;br /&gt;
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |&lt;br /&gt;
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |&lt;br /&gt;
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT0 | RxD     | 16  | 15  |&lt;br /&gt;
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |&lt;br /&gt;
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |&lt;br /&gt;
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |&lt;br /&gt;
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |&lt;br /&gt;
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |&lt;br /&gt;
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |&lt;br /&gt;
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |&lt;br /&gt;
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |&lt;br /&gt;
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
Dort erkennen wir auch, dass z.B. der physikalische Pin (''Physical'') 15 die WiringPi-(''wPi'')-Nummer 3 hat.&lt;br /&gt;
&lt;br /&gt;
Wir legen das Skript in unserem neuen Ordner an:&lt;br /&gt;
 root@nibo:~# cd /opt/niboberry&lt;br /&gt;
 root@nibo:~# nano test.sh&lt;br /&gt;
&lt;br /&gt;
Folgenden Code einfügen und mit '''[STRG-X]''' den Editor beenden und speichern:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Einstellen der Ports als Ein- bzw. Ausgang&lt;br /&gt;
 gpio mode 3 in&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 in&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
 gpio mode 5 out&lt;br /&gt;
 gpio mode 6 out&lt;br /&gt;
 &lt;br /&gt;
 # Abwechselndes Blinken der beiden LEDs&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 gpio write 5 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 &lt;br /&gt;
 # Endlosschleife für Hauptfunktion&lt;br /&gt;
 while [ True ]&lt;br /&gt;
  do&lt;br /&gt;
   if [ $(gpio read 3) = 0 ]&lt;br /&gt;
   # Taste 1 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster A&amp;quot;&lt;br /&gt;
     # LED 1 an&lt;br /&gt;
     gpio write 5 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 1 aus&lt;br /&gt;
     gpio write 5 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
   if [ $(gpio read 4) = 0 ]&lt;br /&gt;
   # Taste 2 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster B&amp;quot;&lt;br /&gt;
     # LED 2 an&lt;br /&gt;
     gpio write 6 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 2 aus&lt;br /&gt;
     gpio write 6 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Programmende (wird nie erreicht, da Endlosschleife)&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
Dann die Datei ausführbar machen und starten:&lt;br /&gt;
 root@nibo:~# chmod +x test.sh&lt;br /&gt;
 root@nibo:~# ./test.sh&lt;br /&gt;
&lt;br /&gt;
Die LED sollten nacheinander kurz aufleuchten, dann wartet das Script auf das Drücken der Taster.&lt;br /&gt;
&lt;br /&gt;
Bei Druck auf Taster A, sollte nun die grüne LED leuchten. Bei Druck auf Taster B die rote LED.&lt;br /&gt;
&lt;br /&gt;
Sollte das nicht funktionieren, je nach Problem die Platine und das Programm überprüfen.&lt;br /&gt;
&lt;br /&gt;
Mit '''[STRG-C]''' beenden wir das Testprogramm.&lt;br /&gt;
&lt;br /&gt;
==Aufbau der seriellen Verbindung zum NIBObee==&lt;br /&gt;
Auf der Raspberry-GPIO-Leiste sind die Pins 8 (TX, senden) und 10 (RX, empfangen) für die serielle Kommunikation vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle wird vom Raspberry standardmäßig zur Bootprotokollierung verwendet.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion müssen wir daher zunächst deaktivieren.&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /boot/cdmline.txt&lt;br /&gt;
muss diese Zeile angepasst werden:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Der Parameter mit Verweis auf '''ttyAMA0''' muss entfernt werden.&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /etc/inittab&lt;br /&gt;
müssen wir verhindern, dass eine Login-Konsole auf die serielle Schnittstelle gesetzt wird. Dazu muss der entsprechende Eintrag (in der Regel die letzte Zeile) mit einer '''#''' auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Hier das Ergebnis:&lt;br /&gt;
 # T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
Nach einem '''Reboot''' sollte uns die Schnittstelle nun zur Verfügung stehen.&lt;br /&gt;
===Test===&lt;br /&gt;
Um mit dem NiboBEE zu &amp;quot;sprechen&amp;quot; benötigen wir ein Terminalprogramm.&lt;br /&gt;
&lt;br /&gt;
Viele stehen nach Belieben zur Verfügung. Für die Befehlszeile z.B.:&lt;br /&gt;
* minicom&lt;br /&gt;
* microcom&lt;br /&gt;
* picocom&lt;br /&gt;
&lt;br /&gt;
Installation von z.B. microcom mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install microcom&lt;br /&gt;
&lt;br /&gt;
Nun können wir zum ersten Mal vom Raspberry aus mit den NiboBEE die Verbindung aufnehmen. Vorausgesetzt, alle Module sind betriebsbereit, miteinander verbunden und eingeschaltet.&lt;br /&gt;
 microcom -p /dev/ttyAMA0 -s 9600&lt;br /&gt;
&lt;br /&gt;
Wenn auf dem NiboBEE noch das bei der Auslieferung aufgespielte Testprogramm im Flash-Speicher ist, sendet er laufend auf der seriellen Schnittstelle Werte der optischen Sensoren. z.B.:&lt;br /&gt;
 1a:1f:1a&lt;br /&gt;
Hält man nun den Finger rechts oder links unter den Sensor, ändern sich die Werte entsprechend.&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Bees für die Kommunikation mit dem Rasp=&lt;br /&gt;
Damit der Bee von dem Rasp über die serielle Schnittstelle Befehle annehmen und Daten senden kann, müssen diese miteinander kommunizieren und über eine &amp;quot;abgestimmten&amp;quot; Befehlssatz verfügen.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE ist bereits dementsprechend vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehlssatz nennt sich: [[Nibo_Serial_Protocol|Nibo Serial Protocol]].&lt;br /&gt;
&lt;br /&gt;
=Programmierbeispiele=&lt;br /&gt;
Wenn wir schon einen Linux-Computer auf dem NiboBEE haben, wollen wir ihn natürlich auf möglichst umfassend nutzen.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation mit dem NiboBEE und dem Programmiercomputer erfolgt über die USB-Schnittstelle an der Frontseite des NiboBEE. Hier können wir natürlich auch eine Verbindung mit unserem Raspberry herstellen. &lt;br /&gt;
&lt;br /&gt;
Allerdings reagiert der Raspberry sehr empfindlich auf die Spannungsschwankungen, die beim Einstecken von USB-Geräten entstehen können. &lt;br /&gt;
'''Am besten schaltet man daher beide Geräte, insbesondere aber den Raspberry, vor dem Zusammenstecken über USB aus.'''&lt;br /&gt;
&lt;br /&gt;
Steht die Verbindung, haben wir die Möglichkeit, uns via WLAN und SSH auf den Raspberry zu schalten und dort direkt den verbundenen NiboBEE zu Programmieren.&lt;br /&gt;
&lt;br /&gt;
Ob die USB-Verbindung steht, kann mit&lt;br /&gt;
 lsusb&lt;br /&gt;
auf dem Raspberry festgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE wird wie folgt angezeigt:&lt;br /&gt;
 Bus 001 Device 007: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb&lt;br /&gt;
==Backup==&lt;br /&gt;
Bevor wir eigene Programme auf den NiboBEE aufspielen, sollten wir ggf. vorhandene Programme sichern.&lt;br /&gt;
&lt;br /&gt;
Dazu benötigen wir, ebenso wie für das Übertragen unseres eigenen C-Codes, das Tool&lt;br /&gt;
 avrdude&lt;br /&gt;
&lt;br /&gt;
Dies installieren wir mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install avrdude&lt;br /&gt;
===EEPROM===&lt;br /&gt;
Hier befindet sich das vorinstallierte Betriebssystem des NiboBEE, der alle wesentlichen Funktionen steuert und auch die serielle Kommunikation organisiert&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl kann ein Backup erstellt werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U eeprom:r:&amp;quot;BACKUPFILENAME.eeprom&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
Hier befinden sich die von uns Anwendern übertragenen Programme.&lt;br /&gt;
&lt;br /&gt;
Die Sicherung erfolgt mit diesem Befehl:&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U flash:r:&amp;quot;BACKUPFILENAME.flash&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Fuses===&lt;br /&gt;
In den &amp;quot;Fuses&amp;quot; verwaltet der ATMEL-Prozessor diverse Einstellungen. Diese sollten wir im Normalfall nicht ändern. Aber ein Backup kann auch hier nicht schaden. Es gibt &amp;quot;high&amp;quot;-, &amp;quot;low&amp;quot;- und die E-Fuses, die getrennt verwaltet und auch gesichert werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U hfuse:r:&amp;quot;BACKUPFILENAME.hfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U lfuse:r:&amp;quot;BACKUPFILENAME.lfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U efuse:r:&amp;quot;BACKUPFILENAME.efuse&amp;quot;:b&lt;br /&gt;
&lt;br /&gt;
==Hello World==&lt;br /&gt;
---Work in progress---&lt;br /&gt;
==Nutzen der Spannungsüberwachung==&lt;br /&gt;
---Idee---&lt;br /&gt;
&lt;br /&gt;
Ein 1kHz-PWM-Signal mit 14% duty cycle erzeugt an GPIO18 (RP_PWM) ca. 0,6V. Diese Spannung vergleicht die Op-Amp-Schaltung mit einem 10tel der Batteriespannung. Sinkt die Spannung also unter 6V, reagiert unsere Schaltung mit einem auf HIGH gesetzten GPIO4.&lt;br /&gt;
&lt;br /&gt;
---Work in progress---&lt;br /&gt;
&lt;br /&gt;
==Linienverfolger mit Fotofunktion==&lt;br /&gt;
---Work in progress---&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1247</id>
		<title>NIBObee-Berry</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1247"/>
				<updated>2016-04-12T09:37:13Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: /* Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Info=&lt;br /&gt;
[[image:beeberry_full.jpg|550px|right|NIBObee-Berry]]&lt;br /&gt;
Mit dem Berry Modul kann ein NIBObee Roboter mit einem Raspberry Pi verbunden werden. Dadurch wird der Anschluss von nahezu beliebiger Sensorik (SPI, I2C, USB ...) möglich und zudem kann über den Raspberry via WLAN-Zugriff auf einen somit mobilen NIBObee zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus stehen über den vollwertigen Linux-Computer, den der Raspberry darstellt, wesentlich komfortablere und zugleich komplexere Programmiermöglichkeiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Das Berry-Modul enthält zudem einen integrierten DC/DC Wandler für die Spannungsversorgung des RPi, der mit einem weiten Spannungsbreich von 6,5 - 30 Volt umgehen kann. Dadurch können z.B. auch LiPo-Akkus etc. verwendet werden.&lt;br /&gt;
Über einen (leider nicht enthaltenen und nur optionalen) 2. DC/DC-Wandler kann aus dem Berry-Akku auch der NIBObee mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Der Rasperry Pi ist durch eine serielle Schnittstelle mit dem NIBObee verbunden.&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller im NIBObee kann dabei aus &amp;quot;ausführendes&amp;quot; Organ verstanden werden, während der Raspberry die Befehle erteilt.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann ggf. das neue eeprom-Flashen auf dem NIBObee bei Programmänderungen entfallen. Allerdings ist die Geschwindigkeit der Datenübertragung über die serielle Schnittstelle begrenzt, so dass die &amp;quot;reflexartigen&amp;quot; Funktionen ggf. besser &amp;quot;fest&amp;quot; im NIBObee-Controller verankert und die komplexen Funktionen im Raspberry umgesetzt werden sollten.&lt;br /&gt;
&lt;br /&gt;
Rechts im Bild sieht man den NIBOObee mit dem aufgesetzten Raspberry mit WLAN, Kamera und einer Powerbank als Stromquelle.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über die Berry-Erweiterung stehen 2 zusätzliche Schalter und 2 LEDs zur Verfügung, die nach Belieben Verwendung finden werden:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side1.jpg|550px|NIBObee-Berry, Seitenansicht 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Insgesamt hat unser Mega-Käfer jetzt drei Ebenen: NIBObee, Berry-Erweiterung und der Raspberry selbst:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side2.jpg|550px|NIBObee-Berry, Seitenansicht 2]]&lt;br /&gt;
&lt;br /&gt;
=Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt=&lt;br /&gt;
[[image:Battclips_error1.jpg|550px|left|nachgelötete Batterieclips]]&lt;br /&gt;
Sowohl beim NIBObee, als auch beim Berry-AddOn sind vereinzelt Probleme bei den Batterieclips bekannt. Die verklemmten Bereiche an den Enden sind in manchen Fällen nicht stromführend verquetscht, so dass die Geräte nicht mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Dies lässt sich einfach nachmessen, in dem man die anliegenden Spannungen prüft.&lt;br /&gt;
&lt;br /&gt;
* beim NiboBEE sollte an X8 bei eingelegten Batterien ca. 5V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
* bei der Berry-Platine sollte an X10 zwischen 1 und 4 eine Spannung von ca. 8V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
&lt;br /&gt;
Ein Nachlöten hilft hier leicht ab.&lt;br /&gt;
&lt;br /&gt;
'''Aber Vorsicht!''' Auf jeden Fall die Akkus vorher entfernen, sonst werden die Clips durch den Federdruck und die Hitze beim Löten schnell irreparabel beschädigt!&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Rasp für die Kommunikation mit dem Bee=&lt;br /&gt;
Der Raspberry wird typischerweise mit [https://www.raspberrypi.org/downloads/raspbian/ Raspberian] betrieben, einer speziell angepassten Debian-Version für den Raspberry.&lt;br /&gt;
&lt;br /&gt;
Die Grundinstallation des Raspberrys ist im Internet, z.B. [https://www.raspberrypi.org/documentation/installation/installing-images/README.md hier], hinreichend beschrieben.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, ein Edimax-Nano-USB-WLAN-Stick gleich von Anfang an mit zu integrieren. Die Treiber bringt Raspberian bereits mit.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Arbeiten führen wir auf dem Raspberry aus, nachdem wir uns typischerweise mit einem SSH-Program (Linux: ssh, Windows: putty) nach der Grundeinrichtung mit dem Raspberry verbunden haben. &lt;br /&gt;
&lt;br /&gt;
Wir werden im Folgenden mit Linux als unserem Hauptsystem arbeiten; die Beispiele sind dementsprechend aus Linux-Sicht.&lt;br /&gt;
&lt;br /&gt;
Damit wir vollen Zugriff auf alle Funktionen und Rechte haben, werden wir mit dem root-Benutzer arbeiten.&lt;br /&gt;
&lt;br /&gt;
Verbinden von unserem lokalen Rechner aus mit dem Raspberry:&lt;br /&gt;
 user@localmachine:~# ssh root@[IP-ADRESSE-RASPBERRY]&lt;br /&gt;
&lt;br /&gt;
Sollte das Login trotz korrektem Passwort nicht möglich sein, ist vermutlich das Verbinden als root nicht gestattet. Wir melden uns dann als ''pi'', dem Standardbenutzer, an und verwandeln uns mit ''sudo su'' zu root:&lt;br /&gt;
 user@localmachine:~# ssh pi@[IP-ADRESSE-RASPBERRY]    (defaultpasswort: ''raspberry'')&lt;br /&gt;
 root@nibo:~# sudo su&lt;br /&gt;
 root@nibo:~#&lt;br /&gt;
&lt;br /&gt;
Wir werden der Ordnung halber gleich unter dem Ordner ''/opt'' einen eigenen Ordner für unsere Projekte anlegen:&lt;br /&gt;
 root@nibo:~# mkdir /opt/niboberry&lt;br /&gt;
&lt;br /&gt;
==Installation WiringPi / GPIO==&lt;br /&gt;
Damit wir einfach die Ein- und Ausgänge des Rapsberry ansprechen können, installieren wir ''WiringPi'', was nützliche Tools (''gpio'') und diverse Bibliotheken in C, C++, Python, Java und PHP mitbringt.&lt;br /&gt;
 root@nibo:~# apt-get update&lt;br /&gt;
 root@nibo:~# apt-get install git-core&lt;br /&gt;
 root@nibo:~# cd /opt&lt;br /&gt;
 root@nibo:/opt# git clone git://git.drogon.net/wiringPi&lt;br /&gt;
 root@nibo:/opt# cd WiringPi&lt;br /&gt;
 root@nibo:/opt/WiringPi# ./build&lt;br /&gt;
&lt;br /&gt;
===Test der Grundfunktion===&lt;br /&gt;
Mit einem kleinen Script testen wir die Grundfunktionen der Raspberry-Addon-Platine.&lt;br /&gt;
&lt;br /&gt;
Die Verdrahtung der Platine ist wie folgt:&lt;br /&gt;
 Taster A: Pin 15 (wPi: 3)&lt;br /&gt;
 Taster B: Pin 16 (wPi: 4)&lt;br /&gt;
 LED grün: Pin 18 (wPi: 5)&lt;br /&gt;
 LED  rot: Pin 22 (wPi: 6)&lt;br /&gt;
&lt;br /&gt;
Da die Taster das Signal auf GND legen, benötigen wir als &amp;quot;Gegenstück&amp;quot; (quasi im ungedrückten Zustand) ein High-Signal. Wir stellen daher den internen Pull-Up-Wiederstand für die Eingänge ein.&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Mit &lt;br /&gt;
 root@nibo:~# gpio readall&lt;br /&gt;
bekommen wir alle Ports, Ein- und Ausgänge, derzeitige Zustände und die unterschiedlichen Namen angezeigt:&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |&lt;br /&gt;
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |&lt;br /&gt;
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |&lt;br /&gt;
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |&lt;br /&gt;
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT0 | RxD     | 16  | 15  |&lt;br /&gt;
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |&lt;br /&gt;
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |&lt;br /&gt;
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |&lt;br /&gt;
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |&lt;br /&gt;
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |&lt;br /&gt;
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |&lt;br /&gt;
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |&lt;br /&gt;
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |&lt;br /&gt;
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
Dort erkennen wir auch, dass z.B. der physikalische Pin (''Physical'') 15 die WiringPi-(''wPi'')-Nummer 3 hat.&lt;br /&gt;
&lt;br /&gt;
Wir legen das Skript in unserem neuen Ordner an:&lt;br /&gt;
 root@nibo:~# cd /opt/niboberry&lt;br /&gt;
 root@nibo:~# nano test.sh&lt;br /&gt;
&lt;br /&gt;
Folgenden Code einfügen und mit '''[STRG-X]''' den Editor beenden und speichern:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Einstellen der Ports als Ein- bzw. Ausgang&lt;br /&gt;
 gpio mode 3 in&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 in&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
 gpio mode 5 out&lt;br /&gt;
 gpio mode 6 out&lt;br /&gt;
 &lt;br /&gt;
 # Abwechselndes Blinken der beiden LEDs&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 gpio write 5 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 &lt;br /&gt;
 # Endlosschleife für Hauptfunktion&lt;br /&gt;
 while [ True ]&lt;br /&gt;
  do&lt;br /&gt;
   if [ $(gpio read 3) = 0 ]&lt;br /&gt;
   # Taste 1 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster A&amp;quot;&lt;br /&gt;
     # LED 1 an&lt;br /&gt;
     gpio write 5 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 1 aus&lt;br /&gt;
     gpio write 5 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
   if [ $(gpio read 4) = 0 ]&lt;br /&gt;
   # Taste 2 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster B&amp;quot;&lt;br /&gt;
     # LED 2 an&lt;br /&gt;
     gpio write 6 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 2 aus&lt;br /&gt;
     gpio write 6 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Programmende (wird nie erreicht, da Endlosschleife)&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
Dann die Datei ausführbar machen und starten:&lt;br /&gt;
 root@nibo:~# chmod +x test.sh&lt;br /&gt;
 root@nibo:~# ./test.sh&lt;br /&gt;
&lt;br /&gt;
Die LED sollten nacheinander kurz aufleuchten, dann wartet das Script auf das Drücken der Taster.&lt;br /&gt;
&lt;br /&gt;
Bei Druck auf Taster A, sollte nun die grüne LED leuchten. Bei Druck auf Taster B die rote LED.&lt;br /&gt;
&lt;br /&gt;
Sollte das nicht funktionieren, je nach Problem die Platine und das Programm überprüfen.&lt;br /&gt;
&lt;br /&gt;
Mit '''[STRG-C]''' beenden wir das Testprogramm.&lt;br /&gt;
&lt;br /&gt;
==Aufbau der seriellen Verbindung zum NIBObee==&lt;br /&gt;
Auf der Raspberry-GPIO-Leiste sind die Pins 8 (TX, senden) und 10 (RX, empfangen) für die serielle Kommunikation vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle wird vom Raspberry standardmäßig zur Bootprotokollierung verwendet.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion müssen wir daher zunächst deaktivieren.&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /boot/cdmline.txt&lt;br /&gt;
muss diese Zeile angepasst werden:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Der Parameter mit Verweis auf '''ttyAMA0''' muss entfernt werden.&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /etc/inittab&lt;br /&gt;
müssen wir verhindern, dass eine Login-Konsole auf die serielle Schnittstelle gesetzt wird. Dazu muss der entsprechende Eintrag (in der Regel die letzte Zeile) mit einer '''#''' auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Hier das Ergebnis:&lt;br /&gt;
 # T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
Nach einem '''Reboot''' sollte uns die Schnittstelle nun zur Verfügung stehen.&lt;br /&gt;
===Test===&lt;br /&gt;
Um mit dem NiboBEE zu &amp;quot;sprechen&amp;quot; benötigen wir ein Terminalprogramm.&lt;br /&gt;
&lt;br /&gt;
Viele stehen nach Belieben zur Verfügung. Für die Befehlszeile z.B.:&lt;br /&gt;
* minicom&lt;br /&gt;
* microcom&lt;br /&gt;
* picocom&lt;br /&gt;
&lt;br /&gt;
Installation von z.B. microcom mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install microcom&lt;br /&gt;
&lt;br /&gt;
Nun können wir zum ersten Mal vom Raspberry aus mit den NiboBEE die Verbindung aufnehmen. Vorausgesetzt, alle Module sind betriebsbereit, miteinander verbunden und eingeschaltet.&lt;br /&gt;
 microcom -p /dev/ttyAMA0 -s 9600&lt;br /&gt;
&lt;br /&gt;
Wenn auf dem NiboBEE noch das bei der Auslieferung aufgespielte Testprogramm im Flash-Speicher ist, sendet er laufend auf der seriellen Schnittstelle Werte der optischen Sensoren. z.B.:&lt;br /&gt;
 1a:1f:1a&lt;br /&gt;
Hält man nun den Finger rechts oder links unter den Sensor, ändern sich die Werte entsprechend.&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Bees für die Kommunikation mit dem Rasp=&lt;br /&gt;
Damit der Bee von dem Rasp über die serielle Schnittstelle Befehle annehmen und Daten senden kann, müssen diese miteinander kommunizieren und über eine &amp;quot;abgestimmten&amp;quot; Befehlssatz verfügen.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE ist bereits dementsprechend vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehlssatz nennt sich: [[Nibo_Serial_Protocol|Nibo Serial Protocol]].&lt;br /&gt;
&lt;br /&gt;
=Programmierbeispiele=&lt;br /&gt;
Wenn wir schon einen Linux-Computer auf dem NiboBEE haben, wollen wir ihn natürlich auf möglichst umfassend nutzen.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation mit dem NiboBEE und dem Programmiercomputer erfolgt über die USB-Schnittstelle an der Frontseite des NiboBEE. Hier können wir natürlich auch eine Verbindung mit unserem Raspberry herstellen. &lt;br /&gt;
&lt;br /&gt;
Allerdings reagiert der Raspberry sehr empfindlich auf die Spannungsschwankungen, die beim Einstecken von USB-Geräten entstehen können. &lt;br /&gt;
'''Am besten schaltet man daher beide Geräte, insbesondere aber den Raspberry, vor dem Zusammenstecken über USB aus.'''&lt;br /&gt;
&lt;br /&gt;
Steht die Verbindung, haben wir die Möglichkeit, uns via WLAN und SSH auf den Raspberry zu schalten und dort direkt den verbundenen NiboBEE zu Programmieren.&lt;br /&gt;
&lt;br /&gt;
Ob die USB-Verbindung steht, kann mit&lt;br /&gt;
 lsusb&lt;br /&gt;
auf dem Raspberry festgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE wird wie folgt angezeigt:&lt;br /&gt;
 Bus 001 Device 007: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb&lt;br /&gt;
==Backup==&lt;br /&gt;
Bevor wir eigene Programme auf den NiboBEE aufspielen, sollten wir ggf. vorhandene Programme sichern.&lt;br /&gt;
&lt;br /&gt;
Dazu benötigen wir, ebenso wie für das Übertragen unseres eigenen C-Codes, das Tool&lt;br /&gt;
 avrdude&lt;br /&gt;
&lt;br /&gt;
Dies installieren wir mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install avrdude&lt;br /&gt;
===EEPROM===&lt;br /&gt;
Hier befindet sich das vorinstallierte Betriebssystem des NiboBEE, der alle wesentlichen Funktionen steuert und auch die serielle Kommunikation organisiert&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl kann ein Backup erstellt werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U eeprom:r:&amp;quot;BACKUPFILENAME.eeprom&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
Hier befinden sich die von uns Anwendern übertragenen Programme.&lt;br /&gt;
&lt;br /&gt;
Die Sicherung erfolgt mit diesem Befehl:&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U flash:r:&amp;quot;BACKUPFILENAME.flash&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Fuses===&lt;br /&gt;
In den &amp;quot;Fuses&amp;quot; verwaltet der ATMEL-Prozessor diverse Einstellungen. Diese sollten wir im Normalfall nicht ändern. Aber ein Backup kann auch hier nicht schaden. Es gibt &amp;quot;high&amp;quot;-, &amp;quot;low&amp;quot;- und die E-Fuses, die getrennt verwaltet und auch gesichert werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U hfuse:r:&amp;quot;BACKUPFILENAME.hfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U lfuse:r:&amp;quot;BACKUPFILENAME.lfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U efuse:r:&amp;quot;BACKUPFILENAME.efuse&amp;quot;:b&lt;br /&gt;
&lt;br /&gt;
==Hello World==&lt;br /&gt;
---Work in progress---&lt;br /&gt;
==Nutzen der Spannungsüberwachung==&lt;br /&gt;
---Idee---&lt;br /&gt;
&lt;br /&gt;
Ein 1kHz-PWM-Signal mit 14% duty cycle erzeugt an GPIO18 (RP_PWM) ca. 0,6V. Diese Spannung vergleicht die Op-Amp-Schaltung mit einem 10tel der Batteriespannung. Sinkt die Spannung also unter 6V, reagiert unsere Schaltung mit einem auf HIGH gesetzten GPIO4.&lt;br /&gt;
&lt;br /&gt;
---Work in progress---&lt;br /&gt;
&lt;br /&gt;
==Linienverfolger mit Fotofunktion==&lt;br /&gt;
---Work in progress---&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1246</id>
		<title>NIBObee-Berry</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1246"/>
				<updated>2016-04-12T09:36:38Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Info=&lt;br /&gt;
[[image:beeberry_full.jpg|550px|right|NIBObee-Berry]]&lt;br /&gt;
Mit dem Berry Modul kann ein NIBObee Roboter mit einem Raspberry Pi verbunden werden. Dadurch wird der Anschluss von nahezu beliebiger Sensorik (SPI, I2C, USB ...) möglich und zudem kann über den Raspberry via WLAN-Zugriff auf einen somit mobilen NIBObee zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus stehen über den vollwertigen Linux-Computer, den der Raspberry darstellt, wesentlich komfortablere und zugleich komplexere Programmiermöglichkeiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Das Berry-Modul enthält zudem einen integrierten DC/DC Wandler für die Spannungsversorgung des RPi, der mit einem weiten Spannungsbreich von 6,5 - 30 Volt umgehen kann. Dadurch können z.B. auch LiPo-Akkus etc. verwendet werden.&lt;br /&gt;
Über einen (leider nicht enthaltenen und nur optionalen) 2. DC/DC-Wandler kann aus dem Berry-Akku auch der NIBObee mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Der Rasperry Pi ist durch eine serielle Schnittstelle mit dem NIBObee verbunden.&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller im NIBObee kann dabei aus &amp;quot;ausführendes&amp;quot; Organ verstanden werden, während der Raspberry die Befehle erteilt.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann ggf. das neue eeprom-Flashen auf dem NIBObee bei Programmänderungen entfallen. Allerdings ist die Geschwindigkeit der Datenübertragung über die serielle Schnittstelle begrenzt, so dass die &amp;quot;reflexartigen&amp;quot; Funktionen ggf. besser &amp;quot;fest&amp;quot; im NIBObee-Controller verankert und die komplexen Funktionen im Raspberry umgesetzt werden sollten.&lt;br /&gt;
&lt;br /&gt;
Rechts im Bild sieht man den NIBOObee mit dem aufgesetzten Raspberry mit WLAN, Kamera und einer Powerbank als Stromquelle.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über die Berry-Erweiterung stehen 2 zusätzliche Schalter und 2 LEDs zur Verfügung, die nach Belieben Verwendung finden werden:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side1.jpg|550px|NIBObee-Berry, Seitenansicht 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Insgesamt hat unser Mega-Käfer jetzt drei Ebenen: NIBObee, Berry-Erweiterung und der Raspberry selbst:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side2.jpg|550px|NIBObee-Berry, Seitenansicht 2]]&lt;br /&gt;
&lt;br /&gt;
=Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt=&lt;br /&gt;
Sowohl beim NIBObee, als auch beim Berry-AddOn sind vereinzelt Probleme bei den Batterieclips bekannt. Die verklemmten Bereiche an den Enden sind in manchen Fällen nicht stromführend verquetscht, so dass die Geräte nicht mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Dies lässt sich einfach nachmessen, in dem man die anliegenden Spannungen prüft.&lt;br /&gt;
&lt;br /&gt;
* beim NiboBEE sollte an X8 bei eingelegten Batterien ca. 5V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
* bei der Berry-Platine sollte an X10 zwischen 1 und 4 eine Spannung von ca. 8V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
&lt;br /&gt;
Ein Nachlöten hilft hier leicht ab.&lt;br /&gt;
&lt;br /&gt;
'''Aber Vorsicht!''' Auf jeden Fall die Akkus vorher entfernen, sonst werden die Clips durch den Federdruck und die Hitze beim Löten schnell irreparabel beschädigt!&lt;br /&gt;
&lt;br /&gt;
[[image:Battclips_error1.jpg|550px|left|nachgelötete Batterieclips]]&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Rasp für die Kommunikation mit dem Bee=&lt;br /&gt;
Der Raspberry wird typischerweise mit [https://www.raspberrypi.org/downloads/raspbian/ Raspberian] betrieben, einer speziell angepassten Debian-Version für den Raspberry.&lt;br /&gt;
&lt;br /&gt;
Die Grundinstallation des Raspberrys ist im Internet, z.B. [https://www.raspberrypi.org/documentation/installation/installing-images/README.md hier], hinreichend beschrieben.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, ein Edimax-Nano-USB-WLAN-Stick gleich von Anfang an mit zu integrieren. Die Treiber bringt Raspberian bereits mit.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Arbeiten führen wir auf dem Raspberry aus, nachdem wir uns typischerweise mit einem SSH-Program (Linux: ssh, Windows: putty) nach der Grundeinrichtung mit dem Raspberry verbunden haben. &lt;br /&gt;
&lt;br /&gt;
Wir werden im Folgenden mit Linux als unserem Hauptsystem arbeiten; die Beispiele sind dementsprechend aus Linux-Sicht.&lt;br /&gt;
&lt;br /&gt;
Damit wir vollen Zugriff auf alle Funktionen und Rechte haben, werden wir mit dem root-Benutzer arbeiten.&lt;br /&gt;
&lt;br /&gt;
Verbinden von unserem lokalen Rechner aus mit dem Raspberry:&lt;br /&gt;
 user@localmachine:~# ssh root@[IP-ADRESSE-RASPBERRY]&lt;br /&gt;
&lt;br /&gt;
Sollte das Login trotz korrektem Passwort nicht möglich sein, ist vermutlich das Verbinden als root nicht gestattet. Wir melden uns dann als ''pi'', dem Standardbenutzer, an und verwandeln uns mit ''sudo su'' zu root:&lt;br /&gt;
 user@localmachine:~# ssh pi@[IP-ADRESSE-RASPBERRY]    (defaultpasswort: ''raspberry'')&lt;br /&gt;
 root@nibo:~# sudo su&lt;br /&gt;
 root@nibo:~#&lt;br /&gt;
&lt;br /&gt;
Wir werden der Ordnung halber gleich unter dem Ordner ''/opt'' einen eigenen Ordner für unsere Projekte anlegen:&lt;br /&gt;
 root@nibo:~# mkdir /opt/niboberry&lt;br /&gt;
&lt;br /&gt;
==Installation WiringPi / GPIO==&lt;br /&gt;
Damit wir einfach die Ein- und Ausgänge des Rapsberry ansprechen können, installieren wir ''WiringPi'', was nützliche Tools (''gpio'') und diverse Bibliotheken in C, C++, Python, Java und PHP mitbringt.&lt;br /&gt;
 root@nibo:~# apt-get update&lt;br /&gt;
 root@nibo:~# apt-get install git-core&lt;br /&gt;
 root@nibo:~# cd /opt&lt;br /&gt;
 root@nibo:/opt# git clone git://git.drogon.net/wiringPi&lt;br /&gt;
 root@nibo:/opt# cd WiringPi&lt;br /&gt;
 root@nibo:/opt/WiringPi# ./build&lt;br /&gt;
&lt;br /&gt;
===Test der Grundfunktion===&lt;br /&gt;
Mit einem kleinen Script testen wir die Grundfunktionen der Raspberry-Addon-Platine.&lt;br /&gt;
&lt;br /&gt;
Die Verdrahtung der Platine ist wie folgt:&lt;br /&gt;
 Taster A: Pin 15 (wPi: 3)&lt;br /&gt;
 Taster B: Pin 16 (wPi: 4)&lt;br /&gt;
 LED grün: Pin 18 (wPi: 5)&lt;br /&gt;
 LED  rot: Pin 22 (wPi: 6)&lt;br /&gt;
&lt;br /&gt;
Da die Taster das Signal auf GND legen, benötigen wir als &amp;quot;Gegenstück&amp;quot; (quasi im ungedrückten Zustand) ein High-Signal. Wir stellen daher den internen Pull-Up-Wiederstand für die Eingänge ein.&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Mit &lt;br /&gt;
 root@nibo:~# gpio readall&lt;br /&gt;
bekommen wir alle Ports, Ein- und Ausgänge, derzeitige Zustände und die unterschiedlichen Namen angezeigt:&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |&lt;br /&gt;
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |&lt;br /&gt;
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |&lt;br /&gt;
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |&lt;br /&gt;
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT0 | RxD     | 16  | 15  |&lt;br /&gt;
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |&lt;br /&gt;
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |&lt;br /&gt;
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |&lt;br /&gt;
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |&lt;br /&gt;
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |&lt;br /&gt;
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |&lt;br /&gt;
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |&lt;br /&gt;
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |&lt;br /&gt;
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
Dort erkennen wir auch, dass z.B. der physikalische Pin (''Physical'') 15 die WiringPi-(''wPi'')-Nummer 3 hat.&lt;br /&gt;
&lt;br /&gt;
Wir legen das Skript in unserem neuen Ordner an:&lt;br /&gt;
 root@nibo:~# cd /opt/niboberry&lt;br /&gt;
 root@nibo:~# nano test.sh&lt;br /&gt;
&lt;br /&gt;
Folgenden Code einfügen und mit '''[STRG-X]''' den Editor beenden und speichern:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Einstellen der Ports als Ein- bzw. Ausgang&lt;br /&gt;
 gpio mode 3 in&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 in&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
 gpio mode 5 out&lt;br /&gt;
 gpio mode 6 out&lt;br /&gt;
 &lt;br /&gt;
 # Abwechselndes Blinken der beiden LEDs&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 gpio write 5 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 &lt;br /&gt;
 # Endlosschleife für Hauptfunktion&lt;br /&gt;
 while [ True ]&lt;br /&gt;
  do&lt;br /&gt;
   if [ $(gpio read 3) = 0 ]&lt;br /&gt;
   # Taste 1 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster A&amp;quot;&lt;br /&gt;
     # LED 1 an&lt;br /&gt;
     gpio write 5 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 1 aus&lt;br /&gt;
     gpio write 5 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
   if [ $(gpio read 4) = 0 ]&lt;br /&gt;
   # Taste 2 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster B&amp;quot;&lt;br /&gt;
     # LED 2 an&lt;br /&gt;
     gpio write 6 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 2 aus&lt;br /&gt;
     gpio write 6 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Programmende (wird nie erreicht, da Endlosschleife)&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
Dann die Datei ausführbar machen und starten:&lt;br /&gt;
 root@nibo:~# chmod +x test.sh&lt;br /&gt;
 root@nibo:~# ./test.sh&lt;br /&gt;
&lt;br /&gt;
Die LED sollten nacheinander kurz aufleuchten, dann wartet das Script auf das Drücken der Taster.&lt;br /&gt;
&lt;br /&gt;
Bei Druck auf Taster A, sollte nun die grüne LED leuchten. Bei Druck auf Taster B die rote LED.&lt;br /&gt;
&lt;br /&gt;
Sollte das nicht funktionieren, je nach Problem die Platine und das Programm überprüfen.&lt;br /&gt;
&lt;br /&gt;
Mit '''[STRG-C]''' beenden wir das Testprogramm.&lt;br /&gt;
&lt;br /&gt;
==Aufbau der seriellen Verbindung zum NIBObee==&lt;br /&gt;
Auf der Raspberry-GPIO-Leiste sind die Pins 8 (TX, senden) und 10 (RX, empfangen) für die serielle Kommunikation vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle wird vom Raspberry standardmäßig zur Bootprotokollierung verwendet.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion müssen wir daher zunächst deaktivieren.&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /boot/cdmline.txt&lt;br /&gt;
muss diese Zeile angepasst werden:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Der Parameter mit Verweis auf '''ttyAMA0''' muss entfernt werden.&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /etc/inittab&lt;br /&gt;
müssen wir verhindern, dass eine Login-Konsole auf die serielle Schnittstelle gesetzt wird. Dazu muss der entsprechende Eintrag (in der Regel die letzte Zeile) mit einer '''#''' auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Hier das Ergebnis:&lt;br /&gt;
 # T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
Nach einem '''Reboot''' sollte uns die Schnittstelle nun zur Verfügung stehen.&lt;br /&gt;
===Test===&lt;br /&gt;
Um mit dem NiboBEE zu &amp;quot;sprechen&amp;quot; benötigen wir ein Terminalprogramm.&lt;br /&gt;
&lt;br /&gt;
Viele stehen nach Belieben zur Verfügung. Für die Befehlszeile z.B.:&lt;br /&gt;
* minicom&lt;br /&gt;
* microcom&lt;br /&gt;
* picocom&lt;br /&gt;
&lt;br /&gt;
Installation von z.B. microcom mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install microcom&lt;br /&gt;
&lt;br /&gt;
Nun können wir zum ersten Mal vom Raspberry aus mit den NiboBEE die Verbindung aufnehmen. Vorausgesetzt, alle Module sind betriebsbereit, miteinander verbunden und eingeschaltet.&lt;br /&gt;
 microcom -p /dev/ttyAMA0 -s 9600&lt;br /&gt;
&lt;br /&gt;
Wenn auf dem NiboBEE noch das bei der Auslieferung aufgespielte Testprogramm im Flash-Speicher ist, sendet er laufend auf der seriellen Schnittstelle Werte der optischen Sensoren. z.B.:&lt;br /&gt;
 1a:1f:1a&lt;br /&gt;
Hält man nun den Finger rechts oder links unter den Sensor, ändern sich die Werte entsprechend.&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Bees für die Kommunikation mit dem Rasp=&lt;br /&gt;
Damit der Bee von dem Rasp über die serielle Schnittstelle Befehle annehmen und Daten senden kann, müssen diese miteinander kommunizieren und über eine &amp;quot;abgestimmten&amp;quot; Befehlssatz verfügen.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE ist bereits dementsprechend vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehlssatz nennt sich: [[Nibo_Serial_Protocol|Nibo Serial Protocol]].&lt;br /&gt;
&lt;br /&gt;
=Programmierbeispiele=&lt;br /&gt;
Wenn wir schon einen Linux-Computer auf dem NiboBEE haben, wollen wir ihn natürlich auf möglichst umfassend nutzen.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation mit dem NiboBEE und dem Programmiercomputer erfolgt über die USB-Schnittstelle an der Frontseite des NiboBEE. Hier können wir natürlich auch eine Verbindung mit unserem Raspberry herstellen. &lt;br /&gt;
&lt;br /&gt;
Allerdings reagiert der Raspberry sehr empfindlich auf die Spannungsschwankungen, die beim Einstecken von USB-Geräten entstehen können. &lt;br /&gt;
'''Am besten schaltet man daher beide Geräte, insbesondere aber den Raspberry, vor dem Zusammenstecken über USB aus.'''&lt;br /&gt;
&lt;br /&gt;
Steht die Verbindung, haben wir die Möglichkeit, uns via WLAN und SSH auf den Raspberry zu schalten und dort direkt den verbundenen NiboBEE zu Programmieren.&lt;br /&gt;
&lt;br /&gt;
Ob die USB-Verbindung steht, kann mit&lt;br /&gt;
 lsusb&lt;br /&gt;
auf dem Raspberry festgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE wird wie folgt angezeigt:&lt;br /&gt;
 Bus 001 Device 007: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb&lt;br /&gt;
==Backup==&lt;br /&gt;
Bevor wir eigene Programme auf den NiboBEE aufspielen, sollten wir ggf. vorhandene Programme sichern.&lt;br /&gt;
&lt;br /&gt;
Dazu benötigen wir, ebenso wie für das Übertragen unseres eigenen C-Codes, das Tool&lt;br /&gt;
 avrdude&lt;br /&gt;
&lt;br /&gt;
Dies installieren wir mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install avrdude&lt;br /&gt;
===EEPROM===&lt;br /&gt;
Hier befindet sich das vorinstallierte Betriebssystem des NiboBEE, der alle wesentlichen Funktionen steuert und auch die serielle Kommunikation organisiert&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl kann ein Backup erstellt werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U eeprom:r:&amp;quot;BACKUPFILENAME.eeprom&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
Hier befinden sich die von uns Anwendern übertragenen Programme.&lt;br /&gt;
&lt;br /&gt;
Die Sicherung erfolgt mit diesem Befehl:&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U flash:r:&amp;quot;BACKUPFILENAME.flash&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Fuses===&lt;br /&gt;
In den &amp;quot;Fuses&amp;quot; verwaltet der ATMEL-Prozessor diverse Einstellungen. Diese sollten wir im Normalfall nicht ändern. Aber ein Backup kann auch hier nicht schaden. Es gibt &amp;quot;high&amp;quot;-, &amp;quot;low&amp;quot;- und die E-Fuses, die getrennt verwaltet und auch gesichert werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U hfuse:r:&amp;quot;BACKUPFILENAME.hfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U lfuse:r:&amp;quot;BACKUPFILENAME.lfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U efuse:r:&amp;quot;BACKUPFILENAME.efuse&amp;quot;:b&lt;br /&gt;
&lt;br /&gt;
==Hello World==&lt;br /&gt;
---Work in progress---&lt;br /&gt;
==Nutzen der Spannungsüberwachung==&lt;br /&gt;
---Idee---&lt;br /&gt;
&lt;br /&gt;
Ein 1kHz-PWM-Signal mit 14% duty cycle erzeugt an GPIO18 (RP_PWM) ca. 0,6V. Diese Spannung vergleicht die Op-Amp-Schaltung mit einem 10tel der Batteriespannung. Sinkt die Spannung also unter 6V, reagiert unsere Schaltung mit einem auf HIGH gesetzten GPIO4.&lt;br /&gt;
&lt;br /&gt;
---Work in progress---&lt;br /&gt;
&lt;br /&gt;
==Linienverfolger mit Fotofunktion==&lt;br /&gt;
---Work in progress---&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1245</id>
		<title>NIBObee-Berry</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1245"/>
				<updated>2016-04-12T09:35:11Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Info=&lt;br /&gt;
[[image:beeberry_full.jpg|550px|right|NIBObee-Berry]]&lt;br /&gt;
Mit dem Berry Modul kann ein NIBObee Roboter mit einem Raspberry Pi verbunden werden. Dadurch wird der Anschluss von nahezu beliebiger Sensorik (SPI, I2C, USB ...) möglich und zudem kann über den Raspberry via WLAN-Zugriff auf einen somit mobilen NIBObee zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus stehen über den vollwertigen Linux-Computer, den der Raspberry darstellt, wesentlich komfortablere und zugleich komplexere Programmiermöglichkeiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Das Berry-Modul enthält zudem einen integrierten DC/DC Wandler für die Spannungsversorgung des RPi, der mit einem weiten Spannungsbreich von 6,5 - 30 Volt umgehen kann. Dadurch können z.B. auch LiPo-Akkus etc. verwendet werden.&lt;br /&gt;
Über einen (leider nicht enthaltenen und nur optionalen) 2. DC/DC-Wandler kann aus dem Berry-Akku auch der NIBObee mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Der Rasperry Pi ist durch eine serielle Schnittstelle mit dem NIBObee verbunden.&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller im NIBObee kann dabei aus &amp;quot;ausführendes&amp;quot; Organ verstanden werden, während der Raspberry die Befehle erteilt.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann ggf. das neue eeprom-Flashen auf dem NIBObee bei Programmänderungen entfallen. Allerdings ist die Geschwindigkeit der Datenübertragung über die serielle Schnittstelle begrenzt, so dass die &amp;quot;reflexartigen&amp;quot; Funktionen ggf. besser &amp;quot;fest&amp;quot; im NIBObee-Controller verankert und die komplexen Funktionen im Raspberry umgesetzt werden sollten.&lt;br /&gt;
&lt;br /&gt;
Rechts im Bild sieht man den NIBOObee mit dem aufgesetzten Raspberry mit WLAN, Kamera und einer Powerbank als Stromquelle.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über die Berry-Erweiterung stehen 2 zusätzliche Schalter und 2 LEDs zur Verfügung, die nach Belieben Verwendung finden werden:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side1.jpg|550px|NIBObee-Berry, Seitenansicht 1]]&lt;br /&gt;
&lt;br /&gt;
Insgesamt hat unser Mega-Käfer jetzt drei Ebenen: NIBObee, Berry-Erweiterung und der Raspberry selbst:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side2.jpg|550px|NIBObee-Berry, Seitenansicht 2]]&lt;br /&gt;
&lt;br /&gt;
=Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt=&lt;br /&gt;
Sowohl beim NIBObee, als auch beim Berry-AddOn sind vereinzelt Probleme bei den Batterieclips bekannt. Die verklemmten Bereiche an den Enden sind in manchen Fällen nicht stromführend verquetscht, so dass die Geräte nicht mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Dies lässt sich einfach nachmessen, in dem man die anliegenden Spannungen prüft.&lt;br /&gt;
&lt;br /&gt;
* beim NiboBEE sollte an X8 bei eingelegten Batterien ca. 5V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
* bei der Berry-Platine sollte an X10 zwischen 1 und 4 eine Spannung von ca. 8V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
&lt;br /&gt;
Ein Nachlöten hilft hier leicht ab.&lt;br /&gt;
&lt;br /&gt;
'''Aber Vorsicht!''' Auf jeden Fall die Akkus vorher entfernen, sonst werden die Clips durch den Federdruck und die Hitze beim Löten schnell irreparabel beschädigt!&lt;br /&gt;
&lt;br /&gt;
[[Datei:Battclips_error1.jpg|550px|nachgelötete Batterieclips]]&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Rasp für die Kommunikation mit dem Bee=&lt;br /&gt;
Der Raspberry wird typischerweise mit [https://www.raspberrypi.org/downloads/raspbian/ Raspberian] betrieben, einer speziell angepassten Debian-Version für den Raspberry.&lt;br /&gt;
&lt;br /&gt;
Die Grundinstallation des Raspberrys ist im Internet, z.B. [https://www.raspberrypi.org/documentation/installation/installing-images/README.md hier], hinreichend beschrieben.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, ein Edimax-Nano-USB-WLAN-Stick gleich von Anfang an mit zu integrieren. Die Treiber bringt Raspberian bereits mit.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Arbeiten führen wir auf dem Raspberry aus, nachdem wir uns typischerweise mit einem SSH-Program (Linux: ssh, Windows: putty) nach der Grundeinrichtung mit dem Raspberry verbunden haben. &lt;br /&gt;
&lt;br /&gt;
Wir werden im Folgenden mit Linux als unserem Hauptsystem arbeiten; die Beispiele sind dementsprechend aus Linux-Sicht.&lt;br /&gt;
&lt;br /&gt;
Damit wir vollen Zugriff auf alle Funktionen und Rechte haben, werden wir mit dem root-Benutzer arbeiten.&lt;br /&gt;
&lt;br /&gt;
Verbinden von unserem lokalen Rechner aus mit dem Raspberry:&lt;br /&gt;
 user@localmachine:~# ssh root@[IP-ADRESSE-RASPBERRY]&lt;br /&gt;
&lt;br /&gt;
Sollte das Login trotz korrektem Passwort nicht möglich sein, ist vermutlich das Verbinden als root nicht gestattet. Wir melden uns dann als ''pi'', dem Standardbenutzer, an und verwandeln uns mit ''sudo su'' zu root:&lt;br /&gt;
 user@localmachine:~# ssh pi@[IP-ADRESSE-RASPBERRY]    (defaultpasswort: ''raspberry'')&lt;br /&gt;
 root@nibo:~# sudo su&lt;br /&gt;
 root@nibo:~#&lt;br /&gt;
&lt;br /&gt;
Wir werden der Ordnung halber gleich unter dem Ordner ''/opt'' einen eigenen Ordner für unsere Projekte anlegen:&lt;br /&gt;
 root@nibo:~# mkdir /opt/niboberry&lt;br /&gt;
&lt;br /&gt;
==Installation WiringPi / GPIO==&lt;br /&gt;
Damit wir einfach die Ein- und Ausgänge des Rapsberry ansprechen können, installieren wir ''WiringPi'', was nützliche Tools (''gpio'') und diverse Bibliotheken in C, C++, Python, Java und PHP mitbringt.&lt;br /&gt;
 root@nibo:~# apt-get update&lt;br /&gt;
 root@nibo:~# apt-get install git-core&lt;br /&gt;
 root@nibo:~# cd /opt&lt;br /&gt;
 root@nibo:/opt# git clone git://git.drogon.net/wiringPi&lt;br /&gt;
 root@nibo:/opt# cd WiringPi&lt;br /&gt;
 root@nibo:/opt/WiringPi# ./build&lt;br /&gt;
&lt;br /&gt;
===Test der Grundfunktion===&lt;br /&gt;
Mit einem kleinen Script testen wir die Grundfunktionen der Raspberry-Addon-Platine.&lt;br /&gt;
&lt;br /&gt;
Die Verdrahtung der Platine ist wie folgt:&lt;br /&gt;
 Taster A: Pin 15 (wPi: 3)&lt;br /&gt;
 Taster B: Pin 16 (wPi: 4)&lt;br /&gt;
 LED grün: Pin 18 (wPi: 5)&lt;br /&gt;
 LED  rot: Pin 22 (wPi: 6)&lt;br /&gt;
&lt;br /&gt;
Da die Taster das Signal auf GND legen, benötigen wir als &amp;quot;Gegenstück&amp;quot; (quasi im ungedrückten Zustand) ein High-Signal. Wir stellen daher den internen Pull-Up-Wiederstand für die Eingänge ein.&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Mit &lt;br /&gt;
 root@nibo:~# gpio readall&lt;br /&gt;
bekommen wir alle Ports, Ein- und Ausgänge, derzeitige Zustände und die unterschiedlichen Namen angezeigt:&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |&lt;br /&gt;
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |&lt;br /&gt;
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |&lt;br /&gt;
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |&lt;br /&gt;
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT0 | RxD     | 16  | 15  |&lt;br /&gt;
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |&lt;br /&gt;
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |&lt;br /&gt;
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |&lt;br /&gt;
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |&lt;br /&gt;
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |&lt;br /&gt;
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |&lt;br /&gt;
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |&lt;br /&gt;
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |&lt;br /&gt;
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
Dort erkennen wir auch, dass z.B. der physikalische Pin (''Physical'') 15 die WiringPi-(''wPi'')-Nummer 3 hat.&lt;br /&gt;
&lt;br /&gt;
Wir legen das Skript in unserem neuen Ordner an:&lt;br /&gt;
 root@nibo:~# cd /opt/niboberry&lt;br /&gt;
 root@nibo:~# nano test.sh&lt;br /&gt;
&lt;br /&gt;
Folgenden Code einfügen und mit '''[STRG-X]''' den Editor beenden und speichern:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Einstellen der Ports als Ein- bzw. Ausgang&lt;br /&gt;
 gpio mode 3 in&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 in&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
 gpio mode 5 out&lt;br /&gt;
 gpio mode 6 out&lt;br /&gt;
 &lt;br /&gt;
 # Abwechselndes Blinken der beiden LEDs&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 gpio write 5 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 &lt;br /&gt;
 # Endlosschleife für Hauptfunktion&lt;br /&gt;
 while [ True ]&lt;br /&gt;
  do&lt;br /&gt;
   if [ $(gpio read 3) = 0 ]&lt;br /&gt;
   # Taste 1 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster A&amp;quot;&lt;br /&gt;
     # LED 1 an&lt;br /&gt;
     gpio write 5 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 1 aus&lt;br /&gt;
     gpio write 5 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
   if [ $(gpio read 4) = 0 ]&lt;br /&gt;
   # Taste 2 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster B&amp;quot;&lt;br /&gt;
     # LED 2 an&lt;br /&gt;
     gpio write 6 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 2 aus&lt;br /&gt;
     gpio write 6 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Programmende (wird nie erreicht, da Endlosschleife)&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
Dann die Datei ausführbar machen und starten:&lt;br /&gt;
 root@nibo:~# chmod +x test.sh&lt;br /&gt;
 root@nibo:~# ./test.sh&lt;br /&gt;
&lt;br /&gt;
Die LED sollten nacheinander kurz aufleuchten, dann wartet das Script auf das Drücken der Taster.&lt;br /&gt;
&lt;br /&gt;
Bei Druck auf Taster A, sollte nun die grüne LED leuchten. Bei Druck auf Taster B die rote LED.&lt;br /&gt;
&lt;br /&gt;
Sollte das nicht funktionieren, je nach Problem die Platine und das Programm überprüfen.&lt;br /&gt;
&lt;br /&gt;
Mit '''[STRG-C]''' beenden wir das Testprogramm.&lt;br /&gt;
&lt;br /&gt;
==Aufbau der seriellen Verbindung zum NIBObee==&lt;br /&gt;
Auf der Raspberry-GPIO-Leiste sind die Pins 8 (TX, senden) und 10 (RX, empfangen) für die serielle Kommunikation vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle wird vom Raspberry standardmäßig zur Bootprotokollierung verwendet.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion müssen wir daher zunächst deaktivieren.&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /boot/cdmline.txt&lt;br /&gt;
muss diese Zeile angepasst werden:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Der Parameter mit Verweis auf '''ttyAMA0''' muss entfernt werden.&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /etc/inittab&lt;br /&gt;
müssen wir verhindern, dass eine Login-Konsole auf die serielle Schnittstelle gesetzt wird. Dazu muss der entsprechende Eintrag (in der Regel die letzte Zeile) mit einer '''#''' auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Hier das Ergebnis:&lt;br /&gt;
 # T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
Nach einem '''Reboot''' sollte uns die Schnittstelle nun zur Verfügung stehen.&lt;br /&gt;
===Test===&lt;br /&gt;
Um mit dem NiboBEE zu &amp;quot;sprechen&amp;quot; benötigen wir ein Terminalprogramm.&lt;br /&gt;
&lt;br /&gt;
Viele stehen nach Belieben zur Verfügung. Für die Befehlszeile z.B.:&lt;br /&gt;
* minicom&lt;br /&gt;
* microcom&lt;br /&gt;
* picocom&lt;br /&gt;
&lt;br /&gt;
Installation von z.B. microcom mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install microcom&lt;br /&gt;
&lt;br /&gt;
Nun können wir zum ersten Mal vom Raspberry aus mit den NiboBEE die Verbindung aufnehmen. Vorausgesetzt, alle Module sind betriebsbereit, miteinander verbunden und eingeschaltet.&lt;br /&gt;
 microcom -p /dev/ttyAMA0 -s 9600&lt;br /&gt;
&lt;br /&gt;
Wenn auf dem NiboBEE noch das bei der Auslieferung aufgespielte Testprogramm im Flash-Speicher ist, sendet er laufend auf der seriellen Schnittstelle Werte der optischen Sensoren. z.B.:&lt;br /&gt;
 1a:1f:1a&lt;br /&gt;
Hält man nun den Finger rechts oder links unter den Sensor, ändern sich die Werte entsprechend.&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Bees für die Kommunikation mit dem Rasp=&lt;br /&gt;
Damit der Bee von dem Rasp über die serielle Schnittstelle Befehle annehmen und Daten senden kann, müssen diese miteinander kommunizieren und über eine &amp;quot;abgestimmten&amp;quot; Befehlssatz verfügen.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE ist bereits dementsprechend vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehlssatz nennt sich: [[Nibo_Serial_Protocol|Nibo Serial Protocol]].&lt;br /&gt;
&lt;br /&gt;
=Programmierbeispiele=&lt;br /&gt;
Wenn wir schon einen Linux-Computer auf dem NiboBEE haben, wollen wir ihn natürlich auf möglichst umfassend nutzen.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation mit dem NiboBEE und dem Programmiercomputer erfolgt über die USB-Schnittstelle an der Frontseite des NiboBEE. Hier können wir natürlich auch eine Verbindung mit unserem Raspberry herstellen. &lt;br /&gt;
&lt;br /&gt;
Allerdings reagiert der Raspberry sehr empfindlich auf die Spannungsschwankungen, die beim Einstecken von USB-Geräten entstehen können. &lt;br /&gt;
'''Am besten schaltet man daher beide Geräte, insbesondere aber den Raspberry, vor dem Zusammenstecken über USB aus.'''&lt;br /&gt;
&lt;br /&gt;
Steht die Verbindung, haben wir die Möglichkeit, uns via WLAN und SSH auf den Raspberry zu schalten und dort direkt den verbundenen NiboBEE zu Programmieren.&lt;br /&gt;
&lt;br /&gt;
Ob die USB-Verbindung steht, kann mit&lt;br /&gt;
 lsusb&lt;br /&gt;
auf dem Raspberry festgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE wird wie folgt angezeigt:&lt;br /&gt;
 Bus 001 Device 007: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb&lt;br /&gt;
==Backup==&lt;br /&gt;
Bevor wir eigene Programme auf den NiboBEE aufspielen, sollten wir ggf. vorhandene Programme sichern.&lt;br /&gt;
&lt;br /&gt;
Dazu benötigen wir, ebenso wie für das Übertragen unseres eigenen C-Codes, das Tool&lt;br /&gt;
 avrdude&lt;br /&gt;
&lt;br /&gt;
Dies installieren wir mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install avrdude&lt;br /&gt;
===EEPROM===&lt;br /&gt;
Hier befindet sich das vorinstallierte Betriebssystem des NiboBEE, der alle wesentlichen Funktionen steuert und auch die serielle Kommunikation organisiert&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl kann ein Backup erstellt werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U eeprom:r:&amp;quot;BACKUPFILENAME.eeprom&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
Hier befinden sich die von uns Anwendern übertragenen Programme.&lt;br /&gt;
&lt;br /&gt;
Die Sicherung erfolgt mit diesem Befehl:&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U flash:r:&amp;quot;BACKUPFILENAME.flash&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Fuses===&lt;br /&gt;
In den &amp;quot;Fuses&amp;quot; verwaltet der ATMEL-Prozessor diverse Einstellungen. Diese sollten wir im Normalfall nicht ändern. Aber ein Backup kann auch hier nicht schaden. Es gibt &amp;quot;high&amp;quot;-, &amp;quot;low&amp;quot;- und die E-Fuses, die getrennt verwaltet und auch gesichert werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U hfuse:r:&amp;quot;BACKUPFILENAME.hfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U lfuse:r:&amp;quot;BACKUPFILENAME.lfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U efuse:r:&amp;quot;BACKUPFILENAME.efuse&amp;quot;:b&lt;br /&gt;
&lt;br /&gt;
==Hello World==&lt;br /&gt;
---Work in progress---&lt;br /&gt;
==Nutzen der Spannungsüberwachung==&lt;br /&gt;
---Idee---&lt;br /&gt;
&lt;br /&gt;
Ein 1kHz-PWM-Signal mit 14% duty cycle erzeugt an GPIO18 (RP_PWM) ca. 0,6V. Diese Spannung vergleicht die Op-Amp-Schaltung mit einem 10tel der Batteriespannung. Sinkt die Spannung also unter 6V, reagiert unsere Schaltung mit einem auf HIGH gesetzten GPIO4.&lt;br /&gt;
&lt;br /&gt;
---Work in progress---&lt;br /&gt;
&lt;br /&gt;
==Linienverfolger mit Fotofunktion==&lt;br /&gt;
---Work in progress---&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1244</id>
		<title>NIBObee-Berry</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1244"/>
				<updated>2016-04-12T09:19:28Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: /* Info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Info=&lt;br /&gt;
[[image:beeberry_full.jpg|550px|right|NIBObee-Berry]]&lt;br /&gt;
Mit dem Berry Modul kann ein NIBObee Roboter mit einem Raspberry Pi verbunden werden. Dadurch wird der Anschluss von nahezu beliebiger Sensorik (SPI, I2C, USB ...) möglich und zudem kann über den Raspberry via WLAN-Zugriff auf einen somit mobilen NIBObee zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus stehen über den vollwertigen Linux-Computer, den der Raspberry darstellt, wesentlich komfortablere und zugleich komplexere Programmiermöglichkeiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Das Berry-Modul enthält zudem einen integrierten DC/DC Wandler für die Spannungsversorgung des RPi, der mit einem weiten Spannungsbreich von 6,5 - 30 Volt umgehen kann. Dadurch können z.B. auch LiPo-Akkus etc. verwendet werden.&lt;br /&gt;
Über einen (leider nicht enthaltenen und nur optionalen) 2. DC/DC-Wandler kann aus dem Berry-Akku auch der NIBObee mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Der Rasperry Pi ist durch eine serielle Schnittstelle mit dem NIBObee verbunden.&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller im NIBObee kann dabei aus &amp;quot;ausführendes&amp;quot; Organ verstanden werden, während der Raspberry die Befehle erteilt.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann ggf. das neue eeprom-Flashen auf dem NIBObee bei Programmänderungen entfallen. Allerdings ist die Geschwindigkeit der Datenübertragung über die serielle Schnittstelle begrenzt, so dass die &amp;quot;reflexartigen&amp;quot; Funktionen ggf. besser &amp;quot;fest&amp;quot; im NIBObee-Controller verankert und die komplexen Funktionen im Raspberry umgesetzt werden sollten.&lt;br /&gt;
&lt;br /&gt;
So sieht der NIBOObee mit dem aufgesetzten Raspberry mit WLAN, Kamera und einer Powerbank als Stromquelle aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über die Berry-Erweiterung stehen 2 zusätzliche Schalter und 2 LEDs zur Verfügung, die nach Belieben Verwendung finden werden:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side1.jpg|550px|NIBObee-Berry, Seitenansicht 1]]&lt;br /&gt;
&lt;br /&gt;
Insgesamt hat unser Mega-Käfer jetzt drei Ebenen: NIBObee, Berry-Erweiterung und der Raspberry selbst:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side2.jpg|550px|NIBObee-Berry, Seitenansicht 2]]&lt;br /&gt;
&lt;br /&gt;
=Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt=&lt;br /&gt;
Sowohl beim NIBObee, als auch beim Berry-AddOn sind vereinzelt Probleme bei den Batterieclips bekannt. Die verklemmten Bereiche an den Enden sind in manchen Fällen nicht stromführend verquetscht, so dass die Geräte nicht mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Dies lässt sich einfach nachmessen, in dem man die anliegenden Spannungen prüft.&lt;br /&gt;
&lt;br /&gt;
* beim NiboBEE sollte an X8 bei eingelegten Batterien ca. 5V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
* bei der Berry-Platine sollte an X10 zwischen 1 und 4 eine Spannung von ca. 8V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
&lt;br /&gt;
Ein Nachlöten hilft hier leicht ab.&lt;br /&gt;
&lt;br /&gt;
'''Aber Vorsicht!''' Auf jeden Fall die Akkus vorher entfernen, sonst werden die Clips durch den Federdruck und die Hitze beim Löten schnell irreparabel beschädigt!&lt;br /&gt;
&lt;br /&gt;
[[Datei:Battclips_error1.jpg|550px|nachgelötete Batterieclips]]&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Rasp für die Kommunikation mit dem Bee=&lt;br /&gt;
Der Raspberry wird typischerweise mit [https://www.raspberrypi.org/downloads/raspbian/ Raspberian] betrieben, einer speziell angepassten Debian-Version für den Raspberry.&lt;br /&gt;
&lt;br /&gt;
Die Grundinstallation des Raspberrys ist im Internet, z.B. [https://www.raspberrypi.org/documentation/installation/installing-images/README.md hier], hinreichend beschrieben.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, ein Edimax-Nano-USB-WLAN-Stick gleich von Anfang an mit zu integrieren. Die Treiber bringt Raspberian bereits mit.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Arbeiten führen wir auf dem Raspberry aus, nachdem wir uns typischerweise mit einem SSH-Program (Linux: ssh, Windows: putty) nach der Grundeinrichtung mit dem Raspberry verbunden haben. &lt;br /&gt;
&lt;br /&gt;
Wir werden im Folgenden mit Linux als unserem Hauptsystem arbeiten; die Beispiele sind dementsprechend aus Linux-Sicht.&lt;br /&gt;
&lt;br /&gt;
Damit wir vollen Zugriff auf alle Funktionen und Rechte haben, werden wir mit dem root-Benutzer arbeiten.&lt;br /&gt;
&lt;br /&gt;
Verbinden von unserem lokalen Rechner aus mit dem Raspberry:&lt;br /&gt;
 user@localmachine:~# ssh root@[IP-ADRESSE-RASPBERRY]&lt;br /&gt;
&lt;br /&gt;
Sollte das Login trotz korrektem Passwort nicht möglich sein, ist vermutlich das Verbinden als root nicht gestattet. Wir melden uns dann als ''pi'', dem Standardbenutzer, an und verwandeln uns mit ''sudo su'' zu root:&lt;br /&gt;
 user@localmachine:~# ssh pi@[IP-ADRESSE-RASPBERRY]    (defaultpasswort: ''raspberry'')&lt;br /&gt;
 root@nibo:~# sudo su&lt;br /&gt;
 root@nibo:~#&lt;br /&gt;
&lt;br /&gt;
Wir werden der Ordnung halber gleich unter dem Ordner ''/opt'' einen eigenen Ordner für unsere Projekte anlegen:&lt;br /&gt;
 root@nibo:~# mkdir /opt/niboberry&lt;br /&gt;
&lt;br /&gt;
==Installation WiringPi / GPIO==&lt;br /&gt;
Damit wir einfach die Ein- und Ausgänge des Rapsberry ansprechen können, installieren wir ''WiringPi'', was nützliche Tools (''gpio'') und diverse Bibliotheken in C, C++, Python, Java und PHP mitbringt.&lt;br /&gt;
 root@nibo:~# apt-get update&lt;br /&gt;
 root@nibo:~# apt-get install git-core&lt;br /&gt;
 root@nibo:~# cd /opt&lt;br /&gt;
 root@nibo:/opt# git clone git://git.drogon.net/wiringPi&lt;br /&gt;
 root@nibo:/opt# cd WiringPi&lt;br /&gt;
 root@nibo:/opt/WiringPi# ./build&lt;br /&gt;
&lt;br /&gt;
===Test der Grundfunktion===&lt;br /&gt;
Mit einem kleinen Script testen wir die Grundfunktionen der Raspberry-Addon-Platine.&lt;br /&gt;
&lt;br /&gt;
Die Verdrahtung der Platine ist wie folgt:&lt;br /&gt;
 Taster A: Pin 15 (wPi: 3)&lt;br /&gt;
 Taster B: Pin 16 (wPi: 4)&lt;br /&gt;
 LED grün: Pin 18 (wPi: 5)&lt;br /&gt;
 LED  rot: Pin 22 (wPi: 6)&lt;br /&gt;
&lt;br /&gt;
Da die Taster das Signal auf GND legen, benötigen wir als &amp;quot;Gegenstück&amp;quot; (quasi im ungedrückten Zustand) ein High-Signal. Wir stellen daher den internen Pull-Up-Wiederstand für die Eingänge ein.&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Mit &lt;br /&gt;
 root@nibo:~# gpio readall&lt;br /&gt;
bekommen wir alle Ports, Ein- und Ausgänge, derzeitige Zustände und die unterschiedlichen Namen angezeigt:&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |&lt;br /&gt;
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |&lt;br /&gt;
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |&lt;br /&gt;
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |&lt;br /&gt;
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT0 | RxD     | 16  | 15  |&lt;br /&gt;
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |&lt;br /&gt;
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |&lt;br /&gt;
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |&lt;br /&gt;
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |&lt;br /&gt;
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |&lt;br /&gt;
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |&lt;br /&gt;
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |&lt;br /&gt;
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |&lt;br /&gt;
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
Dort erkennen wir auch, dass z.B. der physikalische Pin (''Physical'') 15 die WiringPi-(''wPi'')-Nummer 3 hat.&lt;br /&gt;
&lt;br /&gt;
Wir legen das Skript in unserem neuen Ordner an:&lt;br /&gt;
 root@nibo:~# cd /opt/niboberry&lt;br /&gt;
 root@nibo:~# nano test.sh&lt;br /&gt;
&lt;br /&gt;
Folgenden Code einfügen und mit '''[STRG-X]''' den Editor beenden und speichern:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Einstellen der Ports als Ein- bzw. Ausgang&lt;br /&gt;
 gpio mode 3 in&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 in&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
 gpio mode 5 out&lt;br /&gt;
 gpio mode 6 out&lt;br /&gt;
 &lt;br /&gt;
 # Abwechselndes Blinken der beiden LEDs&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 gpio write 5 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 &lt;br /&gt;
 # Endlosschleife für Hauptfunktion&lt;br /&gt;
 while [ True ]&lt;br /&gt;
  do&lt;br /&gt;
   if [ $(gpio read 3) = 0 ]&lt;br /&gt;
   # Taste 1 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster A&amp;quot;&lt;br /&gt;
     # LED 1 an&lt;br /&gt;
     gpio write 5 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 1 aus&lt;br /&gt;
     gpio write 5 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
   if [ $(gpio read 4) = 0 ]&lt;br /&gt;
   # Taste 2 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster B&amp;quot;&lt;br /&gt;
     # LED 2 an&lt;br /&gt;
     gpio write 6 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 2 aus&lt;br /&gt;
     gpio write 6 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Programmende (wird nie erreicht, da Endlosschleife)&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
Dann die Datei ausführbar machen und starten:&lt;br /&gt;
 root@nibo:~# chmod +x test.sh&lt;br /&gt;
 root@nibo:~# ./test.sh&lt;br /&gt;
&lt;br /&gt;
Die LED sollten nacheinander kurz aufleuchten, dann wartet das Script auf das Drücken der Taster.&lt;br /&gt;
&lt;br /&gt;
Bei Druck auf Taster A, sollte nun die grüne LED leuchten. Bei Druck auf Taster B die rote LED.&lt;br /&gt;
&lt;br /&gt;
Sollte das nicht funktionieren, je nach Problem die Platine und das Programm überprüfen.&lt;br /&gt;
&lt;br /&gt;
Mit '''[STRG-C]''' beenden wir das Testprogramm.&lt;br /&gt;
&lt;br /&gt;
==Aufbau der seriellen Verbindung zum NIBObee==&lt;br /&gt;
Auf der Raspberry-GPIO-Leiste sind die Pins 8 (TX, senden) und 10 (RX, empfangen) für die serielle Kommunikation vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle wird vom Raspberry standardmäßig zur Bootprotokollierung verwendet.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion müssen wir daher zunächst deaktivieren.&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /boot/cdmline.txt&lt;br /&gt;
muss diese Zeile angepasst werden:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Der Parameter mit Verweis auf '''ttyAMA0''' muss entfernt werden.&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /etc/inittab&lt;br /&gt;
müssen wir verhindern, dass eine Login-Konsole auf die serielle Schnittstelle gesetzt wird. Dazu muss der entsprechende Eintrag (in der Regel die letzte Zeile) mit einer '''#''' auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Hier das Ergebnis:&lt;br /&gt;
 # T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
Nach einem '''Reboot''' sollte uns die Schnittstelle nun zur Verfügung stehen.&lt;br /&gt;
===Test===&lt;br /&gt;
Um mit dem NiboBEE zu &amp;quot;sprechen&amp;quot; benötigen wir ein Terminalprogramm.&lt;br /&gt;
&lt;br /&gt;
Viele stehen nach Belieben zur Verfügung. Für die Befehlszeile z.B.:&lt;br /&gt;
* minicom&lt;br /&gt;
* microcom&lt;br /&gt;
* picocom&lt;br /&gt;
&lt;br /&gt;
Installation von z.B. microcom mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install microcom&lt;br /&gt;
&lt;br /&gt;
Nun können wir zum ersten Mal vom Raspberry aus mit den NiboBEE die Verbindung aufnehmen. Vorausgesetzt, alle Module sind betriebsbereit, miteinander verbunden und eingeschaltet.&lt;br /&gt;
 microcom -p /dev/ttyAMA0 -s 9600&lt;br /&gt;
&lt;br /&gt;
Wenn auf dem NiboBEE noch das bei der Auslieferung aufgespielte Testprogramm im Flash-Speicher ist, sendet er laufend auf der seriellen Schnittstelle Werte der optischen Sensoren. z.B.:&lt;br /&gt;
 1a:1f:1a&lt;br /&gt;
Hält man nun den Finger rechts oder links unter den Sensor, ändern sich die Werte entsprechend.&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Bees für die Kommunikation mit dem Rasp=&lt;br /&gt;
Damit der Bee von dem Rasp über die serielle Schnittstelle Befehle annehmen und Daten senden kann, müssen diese miteinander kommunizieren und über eine &amp;quot;abgestimmten&amp;quot; Befehlssatz verfügen.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE ist bereits dementsprechend vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehlssatz nennt sich: [[Nibo_Serial_Protocol|Nibo Serial Protocol]].&lt;br /&gt;
&lt;br /&gt;
=Programmierbeispiele=&lt;br /&gt;
Wenn wir schon einen Linux-Computer auf dem NiboBEE haben, wollen wir ihn natürlich auf möglichst umfassend nutzen.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation mit dem NiboBEE und dem Programmiercomputer erfolgt über die USB-Schnittstelle an der Frontseite des NiboBEE. Hier können wir natürlich auch eine Verbindung mit unserem Raspberry herstellen. &lt;br /&gt;
&lt;br /&gt;
Allerdings reagiert der Raspberry sehr empfindlich auf die Spannungsschwankungen, die beim Einstecken von USB-Geräten entstehen können. &lt;br /&gt;
'''Am besten schaltet man daher beide Geräte, insbesondere aber den Raspberry, vor dem Zusammenstecken über USB aus.'''&lt;br /&gt;
&lt;br /&gt;
Steht die Verbindung, haben wir die Möglichkeit, uns via WLAN und SSH auf den Raspberry zu schalten und dort direkt den verbundenen NiboBEE zu Programmieren.&lt;br /&gt;
&lt;br /&gt;
Ob die USB-Verbindung steht, kann mit&lt;br /&gt;
 lsusb&lt;br /&gt;
auf dem Raspberry festgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE wird wie folgt angezeigt:&lt;br /&gt;
 Bus 001 Device 007: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb&lt;br /&gt;
==Backup==&lt;br /&gt;
Bevor wir eigene Programme auf den NiboBEE aufspielen, sollten wir ggf. vorhandene Programme sichern.&lt;br /&gt;
&lt;br /&gt;
Dazu benötigen wir, ebenso wie für das Übertragen unseres eigenen C-Codes, das Tool&lt;br /&gt;
 avrdude&lt;br /&gt;
&lt;br /&gt;
Dies installieren wir mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install avrdude&lt;br /&gt;
===EEPROM===&lt;br /&gt;
Hier befindet sich das vorinstallierte Betriebssystem des NiboBEE, der alle wesentlichen Funktionen steuert und auch die serielle Kommunikation organisiert&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl kann ein Backup erstellt werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U eeprom:r:&amp;quot;BACKUPFILENAME.eeprom&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
Hier befinden sich die von uns Anwendern übertragenen Programme.&lt;br /&gt;
&lt;br /&gt;
Die Sicherung erfolgt mit diesem Befehl:&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U flash:r:&amp;quot;BACKUPFILENAME.flash&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Fuses===&lt;br /&gt;
In den &amp;quot;Fuses&amp;quot; verwaltet der ATMEL-Prozessor diverse Einstellungen. Diese sollten wir im Normalfall nicht ändern. Aber ein Backup kann auch hier nicht schaden. Es gibt &amp;quot;high&amp;quot;-, &amp;quot;low&amp;quot;- und die E-Fuses, die getrennt verwaltet und auch gesichert werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U hfuse:r:&amp;quot;BACKUPFILENAME.hfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U lfuse:r:&amp;quot;BACKUPFILENAME.lfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U efuse:r:&amp;quot;BACKUPFILENAME.efuse&amp;quot;:b&lt;br /&gt;
&lt;br /&gt;
==Hello World==&lt;br /&gt;
---Work in progress---&lt;br /&gt;
==Nutzen der Spannungsüberwachung==&lt;br /&gt;
---Idee---&lt;br /&gt;
&lt;br /&gt;
Ein 1kHz-PWM-Signal mit 14% duty cycle erzeugt an GPIO18 (RP_PWM) ca. 0,6V. Diese Spannung vergleicht die Op-Amp-Schaltung mit einem 10tel der Batteriespannung. Sinkt die Spannung also unter 6V, reagiert unsere Schaltung mit einem auf HIGH gesetzten GPIO4.&lt;br /&gt;
&lt;br /&gt;
---Work in progress---&lt;br /&gt;
&lt;br /&gt;
==Linienverfolger mit Fotofunktion==&lt;br /&gt;
---Work in progress---&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1243</id>
		<title>NIBObee-Berry</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBObee-Berry&amp;diff=1243"/>
				<updated>2016-04-12T09:19:04Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: /* Info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Info=&lt;br /&gt;
Mit dem Berry Modul kann ein NIBObee Roboter mit einem Raspberry Pi verbunden werden. Dadurch wird der Anschluss von nahezu beliebiger Sensorik (SPI, I2C, USB ...) möglich und zudem kann über den Raspberry via WLAN-Zugriff auf einen somit mobilen NIBObee zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus stehen über den vollwertigen Linux-Computer, den der Raspberry darstellt, wesentlich komfortablere und zugleich komplexere Programmiermöglichkeiten zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Das Berry-Modul enthält zudem einen integrierten DC/DC Wandler für die Spannungsversorgung des RPi, der mit einem weiten Spannungsbreich von 6,5 - 30 Volt umgehen kann. Dadurch können z.B. auch LiPo-Akkus etc. verwendet werden.&lt;br /&gt;
Über einen (leider nicht enthaltenen und nur optionalen) 2. DC/DC-Wandler kann aus dem Berry-Akku auch der NIBObee mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Der Rasperry Pi ist durch eine serielle Schnittstelle mit dem NIBObee verbunden.&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller im NIBObee kann dabei aus &amp;quot;ausführendes&amp;quot; Organ verstanden werden, während der Raspberry die Befehle erteilt.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann ggf. das neue eeprom-Flashen auf dem NIBObee bei Programmänderungen entfallen. Allerdings ist die Geschwindigkeit der Datenübertragung über die serielle Schnittstelle begrenzt, so dass die &amp;quot;reflexartigen&amp;quot; Funktionen ggf. besser &amp;quot;fest&amp;quot; im NIBObee-Controller verankert und die komplexen Funktionen im Raspberry umgesetzt werden sollten.&lt;br /&gt;
&lt;br /&gt;
So sieht der NIBOObee mit dem aufgesetzten Raspberry mit WLAN, Kamera und einer Powerbank als Stromquelle aus:&lt;br /&gt;
&lt;br /&gt;
[[image:beeberry_full.jpg|550px|right|NIBObee-Berry]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über die Berry-Erweiterung stehen 2 zusätzliche Schalter und 2 LEDs zur Verfügung, die nach Belieben Verwendung finden werden:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side1.jpg|550px|NIBObee-Berry, Seitenansicht 1]]&lt;br /&gt;
&lt;br /&gt;
Insgesamt hat unser Mega-Käfer jetzt drei Ebenen: NIBObee, Berry-Erweiterung und der Raspberry selbst:&lt;br /&gt;
&lt;br /&gt;
[[Datei:beeberry_side2.jpg|550px|NIBObee-Berry, Seitenansicht 2]]&lt;br /&gt;
&lt;br /&gt;
=Fehlersuche, wenn es nach dem Zusammenbauen nicht klappt=&lt;br /&gt;
Sowohl beim NIBObee, als auch beim Berry-AddOn sind vereinzelt Probleme bei den Batterieclips bekannt. Die verklemmten Bereiche an den Enden sind in manchen Fällen nicht stromführend verquetscht, so dass die Geräte nicht mit Strom versorgt werden.&lt;br /&gt;
&lt;br /&gt;
Dies lässt sich einfach nachmessen, in dem man die anliegenden Spannungen prüft.&lt;br /&gt;
&lt;br /&gt;
* beim NiboBEE sollte an X8 bei eingelegten Batterien ca. 5V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
* bei der Berry-Platine sollte an X10 zwischen 1 und 4 eine Spannung von ca. 8V anliegen. Auch im ausgeschalteten Zustand.&lt;br /&gt;
&lt;br /&gt;
Ein Nachlöten hilft hier leicht ab.&lt;br /&gt;
&lt;br /&gt;
'''Aber Vorsicht!''' Auf jeden Fall die Akkus vorher entfernen, sonst werden die Clips durch den Federdruck und die Hitze beim Löten schnell irreparabel beschädigt!&lt;br /&gt;
&lt;br /&gt;
[[Datei:Battclips_error1.jpg|550px|nachgelötete Batterieclips]]&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Rasp für die Kommunikation mit dem Bee=&lt;br /&gt;
Der Raspberry wird typischerweise mit [https://www.raspberrypi.org/downloads/raspbian/ Raspberian] betrieben, einer speziell angepassten Debian-Version für den Raspberry.&lt;br /&gt;
&lt;br /&gt;
Die Grundinstallation des Raspberrys ist im Internet, z.B. [https://www.raspberrypi.org/documentation/installation/installing-images/README.md hier], hinreichend beschrieben.&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich, ein Edimax-Nano-USB-WLAN-Stick gleich von Anfang an mit zu integrieren. Die Treiber bringt Raspberian bereits mit.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Arbeiten führen wir auf dem Raspberry aus, nachdem wir uns typischerweise mit einem SSH-Program (Linux: ssh, Windows: putty) nach der Grundeinrichtung mit dem Raspberry verbunden haben. &lt;br /&gt;
&lt;br /&gt;
Wir werden im Folgenden mit Linux als unserem Hauptsystem arbeiten; die Beispiele sind dementsprechend aus Linux-Sicht.&lt;br /&gt;
&lt;br /&gt;
Damit wir vollen Zugriff auf alle Funktionen und Rechte haben, werden wir mit dem root-Benutzer arbeiten.&lt;br /&gt;
&lt;br /&gt;
Verbinden von unserem lokalen Rechner aus mit dem Raspberry:&lt;br /&gt;
 user@localmachine:~# ssh root@[IP-ADRESSE-RASPBERRY]&lt;br /&gt;
&lt;br /&gt;
Sollte das Login trotz korrektem Passwort nicht möglich sein, ist vermutlich das Verbinden als root nicht gestattet. Wir melden uns dann als ''pi'', dem Standardbenutzer, an und verwandeln uns mit ''sudo su'' zu root:&lt;br /&gt;
 user@localmachine:~# ssh pi@[IP-ADRESSE-RASPBERRY]    (defaultpasswort: ''raspberry'')&lt;br /&gt;
 root@nibo:~# sudo su&lt;br /&gt;
 root@nibo:~#&lt;br /&gt;
&lt;br /&gt;
Wir werden der Ordnung halber gleich unter dem Ordner ''/opt'' einen eigenen Ordner für unsere Projekte anlegen:&lt;br /&gt;
 root@nibo:~# mkdir /opt/niboberry&lt;br /&gt;
&lt;br /&gt;
==Installation WiringPi / GPIO==&lt;br /&gt;
Damit wir einfach die Ein- und Ausgänge des Rapsberry ansprechen können, installieren wir ''WiringPi'', was nützliche Tools (''gpio'') und diverse Bibliotheken in C, C++, Python, Java und PHP mitbringt.&lt;br /&gt;
 root@nibo:~# apt-get update&lt;br /&gt;
 root@nibo:~# apt-get install git-core&lt;br /&gt;
 root@nibo:~# cd /opt&lt;br /&gt;
 root@nibo:/opt# git clone git://git.drogon.net/wiringPi&lt;br /&gt;
 root@nibo:/opt# cd WiringPi&lt;br /&gt;
 root@nibo:/opt/WiringPi# ./build&lt;br /&gt;
&lt;br /&gt;
===Test der Grundfunktion===&lt;br /&gt;
Mit einem kleinen Script testen wir die Grundfunktionen der Raspberry-Addon-Platine.&lt;br /&gt;
&lt;br /&gt;
Die Verdrahtung der Platine ist wie folgt:&lt;br /&gt;
 Taster A: Pin 15 (wPi: 3)&lt;br /&gt;
 Taster B: Pin 16 (wPi: 4)&lt;br /&gt;
 LED grün: Pin 18 (wPi: 5)&lt;br /&gt;
 LED  rot: Pin 22 (wPi: 6)&lt;br /&gt;
&lt;br /&gt;
Da die Taster das Signal auf GND legen, benötigen wir als &amp;quot;Gegenstück&amp;quot; (quasi im ungedrückten Zustand) ein High-Signal. Wir stellen daher den internen Pull-Up-Wiederstand für die Eingänge ein.&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Mit &lt;br /&gt;
 root@nibo:~# gpio readall&lt;br /&gt;
bekommen wir alle Ports, Ein- und Ausgänge, derzeitige Zustände und die unterschiedlichen Namen angezeigt:&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |&lt;br /&gt;
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |&lt;br /&gt;
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |&lt;br /&gt;
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |&lt;br /&gt;
 |     |     |      0v |      |   |  9 || 10 | 0 | ALT0 | RxD     | 16  | 15  |&lt;br /&gt;
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |&lt;br /&gt;
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |&lt;br /&gt;
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |&lt;br /&gt;
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |&lt;br /&gt;
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |&lt;br /&gt;
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |&lt;br /&gt;
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |&lt;br /&gt;
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |&lt;br /&gt;
 |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |&lt;br /&gt;
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+&lt;br /&gt;
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |&lt;br /&gt;
 +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+&lt;br /&gt;
Dort erkennen wir auch, dass z.B. der physikalische Pin (''Physical'') 15 die WiringPi-(''wPi'')-Nummer 3 hat.&lt;br /&gt;
&lt;br /&gt;
Wir legen das Skript in unserem neuen Ordner an:&lt;br /&gt;
 root@nibo:~# cd /opt/niboberry&lt;br /&gt;
 root@nibo:~# nano test.sh&lt;br /&gt;
&lt;br /&gt;
Folgenden Code einfügen und mit '''[STRG-X]''' den Editor beenden und speichern:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Einstellen der Ports als Ein- bzw. Ausgang&lt;br /&gt;
 gpio mode 3 in&lt;br /&gt;
 gpio mode 3 up&lt;br /&gt;
 gpio mode 4 in&lt;br /&gt;
 gpio mode 4 up&lt;br /&gt;
 gpio mode 5 out&lt;br /&gt;
 gpio mode 6 out&lt;br /&gt;
 &lt;br /&gt;
 # Abwechselndes Blinken der beiden LEDs&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 gpio write 5 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 5 0&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 1&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 gpio write 6 0&lt;br /&gt;
 &lt;br /&gt;
 # Endlosschleife für Hauptfunktion&lt;br /&gt;
 while [ True ]&lt;br /&gt;
  do&lt;br /&gt;
   if [ $(gpio read 3) = 0 ]&lt;br /&gt;
   # Taste 1 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster A&amp;quot;&lt;br /&gt;
     # LED 1 an&lt;br /&gt;
     gpio write 5 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 1 aus&lt;br /&gt;
     gpio write 5 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
   if [ $(gpio read 4) = 0 ]&lt;br /&gt;
   # Taste 2 gedrückt&lt;br /&gt;
   then&lt;br /&gt;
     echo &amp;quot;Taster B&amp;quot;&lt;br /&gt;
     # LED 2 an&lt;br /&gt;
     gpio write 6 1&lt;br /&gt;
   else&lt;br /&gt;
     # LED 2 aus&lt;br /&gt;
     gpio write 6 0&lt;br /&gt;
   fi&lt;br /&gt;
 &lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Programmende (wird nie erreicht, da Endlosschleife)&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
Dann die Datei ausführbar machen und starten:&lt;br /&gt;
 root@nibo:~# chmod +x test.sh&lt;br /&gt;
 root@nibo:~# ./test.sh&lt;br /&gt;
&lt;br /&gt;
Die LED sollten nacheinander kurz aufleuchten, dann wartet das Script auf das Drücken der Taster.&lt;br /&gt;
&lt;br /&gt;
Bei Druck auf Taster A, sollte nun die grüne LED leuchten. Bei Druck auf Taster B die rote LED.&lt;br /&gt;
&lt;br /&gt;
Sollte das nicht funktionieren, je nach Problem die Platine und das Programm überprüfen.&lt;br /&gt;
&lt;br /&gt;
Mit '''[STRG-C]''' beenden wir das Testprogramm.&lt;br /&gt;
&lt;br /&gt;
==Aufbau der seriellen Verbindung zum NIBObee==&lt;br /&gt;
Auf der Raspberry-GPIO-Leiste sind die Pins 8 (TX, senden) und 10 (RX, empfangen) für die serielle Kommunikation vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://download.nicai-systems.com/nibo/nibobee_berry_schematic_1_04.pdf Schaltplan Berry-Erweiterung].&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle wird vom Raspberry standardmäßig zur Bootprotokollierung verwendet.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion müssen wir daher zunächst deaktivieren.&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /boot/cdmline.txt&lt;br /&gt;
muss diese Zeile angepasst werden:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
Der Parameter mit Verweis auf '''ttyAMA0''' muss entfernt werden.&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 /etc/inittab&lt;br /&gt;
müssen wir verhindern, dass eine Login-Konsole auf die serielle Schnittstelle gesetzt wird. Dazu muss der entsprechende Eintrag (in der Regel die letzte Zeile) mit einer '''#''' auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Hier das Ergebnis:&lt;br /&gt;
 # T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
Nach einem '''Reboot''' sollte uns die Schnittstelle nun zur Verfügung stehen.&lt;br /&gt;
===Test===&lt;br /&gt;
Um mit dem NiboBEE zu &amp;quot;sprechen&amp;quot; benötigen wir ein Terminalprogramm.&lt;br /&gt;
&lt;br /&gt;
Viele stehen nach Belieben zur Verfügung. Für die Befehlszeile z.B.:&lt;br /&gt;
* minicom&lt;br /&gt;
* microcom&lt;br /&gt;
* picocom&lt;br /&gt;
&lt;br /&gt;
Installation von z.B. microcom mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install microcom&lt;br /&gt;
&lt;br /&gt;
Nun können wir zum ersten Mal vom Raspberry aus mit den NiboBEE die Verbindung aufnehmen. Vorausgesetzt, alle Module sind betriebsbereit, miteinander verbunden und eingeschaltet.&lt;br /&gt;
 microcom -p /dev/ttyAMA0 -s 9600&lt;br /&gt;
&lt;br /&gt;
Wenn auf dem NiboBEE noch das bei der Auslieferung aufgespielte Testprogramm im Flash-Speicher ist, sendet er laufend auf der seriellen Schnittstelle Werte der optischen Sensoren. z.B.:&lt;br /&gt;
 1a:1f:1a&lt;br /&gt;
Hält man nun den Finger rechts oder links unter den Sensor, ändern sich die Werte entsprechend.&lt;br /&gt;
&lt;br /&gt;
=Vorbereiten des Bees für die Kommunikation mit dem Rasp=&lt;br /&gt;
Damit der Bee von dem Rasp über die serielle Schnittstelle Befehle annehmen und Daten senden kann, müssen diese miteinander kommunizieren und über eine &amp;quot;abgestimmten&amp;quot; Befehlssatz verfügen.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE ist bereits dementsprechend vorbereitet.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehlssatz nennt sich: [[Nibo_Serial_Protocol|Nibo Serial Protocol]].&lt;br /&gt;
&lt;br /&gt;
=Programmierbeispiele=&lt;br /&gt;
Wenn wir schon einen Linux-Computer auf dem NiboBEE haben, wollen wir ihn natürlich auf möglichst umfassend nutzen.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation mit dem NiboBEE und dem Programmiercomputer erfolgt über die USB-Schnittstelle an der Frontseite des NiboBEE. Hier können wir natürlich auch eine Verbindung mit unserem Raspberry herstellen. &lt;br /&gt;
&lt;br /&gt;
Allerdings reagiert der Raspberry sehr empfindlich auf die Spannungsschwankungen, die beim Einstecken von USB-Geräten entstehen können. &lt;br /&gt;
'''Am besten schaltet man daher beide Geräte, insbesondere aber den Raspberry, vor dem Zusammenstecken über USB aus.'''&lt;br /&gt;
&lt;br /&gt;
Steht die Verbindung, haben wir die Möglichkeit, uns via WLAN und SSH auf den Raspberry zu schalten und dort direkt den verbundenen NiboBEE zu Programmieren.&lt;br /&gt;
&lt;br /&gt;
Ob die USB-Verbindung steht, kann mit&lt;br /&gt;
 lsusb&lt;br /&gt;
auf dem Raspberry festgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Der NiboBEE wird wie folgt angezeigt:&lt;br /&gt;
 Bus 001 Device 007: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb&lt;br /&gt;
==Backup==&lt;br /&gt;
Bevor wir eigene Programme auf den NiboBEE aufspielen, sollten wir ggf. vorhandene Programme sichern.&lt;br /&gt;
&lt;br /&gt;
Dazu benötigen wir, ebenso wie für das Übertragen unseres eigenen C-Codes, das Tool&lt;br /&gt;
 avrdude&lt;br /&gt;
&lt;br /&gt;
Dies installieren wir mit:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install avrdude&lt;br /&gt;
===EEPROM===&lt;br /&gt;
Hier befindet sich das vorinstallierte Betriebssystem des NiboBEE, der alle wesentlichen Funktionen steuert und auch die serielle Kommunikation organisiert&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl kann ein Backup erstellt werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U eeprom:r:&amp;quot;BACKUPFILENAME.eeprom&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
Hier befinden sich die von uns Anwendern übertragenen Programme.&lt;br /&gt;
&lt;br /&gt;
Die Sicherung erfolgt mit diesem Befehl:&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U flash:r:&amp;quot;BACKUPFILENAME.flash&amp;quot;:i&lt;br /&gt;
&lt;br /&gt;
===Fuses===&lt;br /&gt;
In den &amp;quot;Fuses&amp;quot; verwaltet der ATMEL-Prozessor diverse Einstellungen. Diese sollten wir im Normalfall nicht ändern. Aber ein Backup kann auch hier nicht schaden. Es gibt &amp;quot;high&amp;quot;-, &amp;quot;low&amp;quot;- und die E-Fuses, die getrennt verwaltet und auch gesichert werden.&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U hfuse:r:&amp;quot;BACKUPFILENAME.hfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U lfuse:r:&amp;quot;BACKUPFILENAME.lfuse&amp;quot;:b&lt;br /&gt;
 avrdude -v -F -c usbasp -P usb  -p m1284p -B 0.5 -U efuse:r:&amp;quot;BACKUPFILENAME.efuse&amp;quot;:b&lt;br /&gt;
&lt;br /&gt;
==Hello World==&lt;br /&gt;
---Work in progress---&lt;br /&gt;
==Nutzen der Spannungsüberwachung==&lt;br /&gt;
---Idee---&lt;br /&gt;
&lt;br /&gt;
Ein 1kHz-PWM-Signal mit 14% duty cycle erzeugt an GPIO18 (RP_PWM) ca. 0,6V. Diese Spannung vergleicht die Op-Amp-Schaltung mit einem 10tel der Batteriespannung. Sinkt die Spannung also unter 6V, reagiert unsere Schaltung mit einem auf HIGH gesetzten GPIO4.&lt;br /&gt;
&lt;br /&gt;
---Work in progress---&lt;br /&gt;
&lt;br /&gt;
==Linienverfolger mit Fotofunktion==&lt;br /&gt;
---Work in progress---&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1178</id>
		<title>NIBO burger</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1178"/>
				<updated>2016-03-28T14:34:42Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:NIBO_burger_wings.jpg|180px|left|NIBO burger mit Wings]]&lt;br /&gt;
Der [[Roboterbausatz]] '''NIBO burger''' ist ein [[Programmierung (NIBO burger)|programmierbarer]] autonomer Roboter. Der Roboter hat einen [[ATmega16]] als Hauptprozessor, vier IR-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] und drei Farb-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] zur Wahrnehmung seiner Umgebung und einen integrierten USB-Programmer ([[ATtiny44]]), der zusätzlich als Ladegerät für die Akkus dient. Zwei Motoren dienen als [[NIBO burger/Antrieb|Antrieb]], die [[Odometrie (NIBO burger)|Odometriemessung]] erfolgt durch zwei Lichtschranken.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==Informationen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungen/Zubehör==&lt;br /&gt;
* [[Blue-Modul]]&lt;br /&gt;
* [[Maroon Shield]]&lt;br /&gt;
* [[NIBObee/Tuning-Kit|NIBObee-Tuning-Kit]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* weitere [[Linksammlung|Links]] zum Thema&lt;br /&gt;
* [[nicai_eu:burger|Produktwebseite bei nicai-systems]]&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/375728#4309793 mikrocontroller.net] - Bericht über den Zusammenbau des NIBO burgers&lt;br /&gt;
* [https://niboburger005.wordpress.com/blog/ wordpress.com] - Blog über den Zusammenbau des NIBO burgers&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1177</id>
		<title>NIBO burger</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1177"/>
				<updated>2016-01-29T14:16:12Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:NIBO_burger_wings.jpg|180px|left|NIBO burger mit Wings]]&lt;br /&gt;
Der [[Roboterbausatz]] '''NIBO burger''' ist ein [[Programmierung (NIBO burger)|programmierbarer]] autonomer Roboter. Der Roboter hat einen [[ATmega16]] als Hauptprozessor, vier IR-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] und drei Farb-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] zur Wahrnehmung seiner Umgebung und einen integrierten USB-Programmer ([[ATtiny44]]), der zusätzlich als Ladegerät für die Akkus dient. Zwei Motoren dienen als [[NIBO burger/Antrieb|Antrieb]], die [[Odometrie (NIBO burger)|Odometriemessung]] erfolgt durch zwei Lichtschranken.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==Informationen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungen/Zubehör==&lt;br /&gt;
* [[Blue-Modul]]&lt;br /&gt;
* [[Maroon Shield]]&lt;br /&gt;
* [[NIBObee/Tuning-Kit|NIBObee-Tuning-Kit]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* weitere [[Linksammlung|Links]] zum Thema&lt;br /&gt;
* [http://burger.nicai.eu Produktwebseite bei nicai-systems]&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/375728#4309793 mikrocontroller.net] - Bericht über den Zusammenbau des NIBO burgers&lt;br /&gt;
* [https://niboburger005.wordpress.com/blog/ wordpress.com] - Blog über den Zusammenbau des NIBO burgers&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1176</id>
		<title>NIBO burger</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=NIBO_burger&amp;diff=1176"/>
				<updated>2016-01-29T14:15:37Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:Nibo_burger_wings.jpg|180px|left|NIBO burger mit Wings]]&lt;br /&gt;
Der [[Roboterbausatz]] '''NIBO burger''' ist ein [[Programmierung (NIBO burger)|programmierbarer]] autonomer Roboter. Der Roboter hat einen [[ATmega16]] als Hauptprozessor, vier IR-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] und drei Farb-[[Sensor-Bricks (NIBO burger)|Sensor-Bricks]] zur Wahrnehmung seiner Umgebung und einen integrierten USB-Programmer ([[ATtiny44]]), der zusätzlich als Ladegerät für die Akkus dient. Zwei Motoren dienen als [[NIBO burger/Antrieb|Antrieb]], die [[Odometrie (NIBO burger)|Odometriemessung]] erfolgt durch zwei Lichtschranken.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==Informationen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungen/Zubehör==&lt;br /&gt;
* [[Blue-Modul]]&lt;br /&gt;
* [[Maroon Shield]]&lt;br /&gt;
* [[NIBObee/Tuning-Kit|NIBObee-Tuning-Kit]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* weitere [[Linksammlung|Links]] zum Thema&lt;br /&gt;
* [http://burger.nicai.eu Produktwebseite bei nicai-systems]&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/375728#4309793 mikrocontroller.net] - Bericht über den Zusammenbau des NIBO burgers&lt;br /&gt;
* [https://niboburger005.wordpress.com/blog/ wordpress.com] - Blog über den Zusammenbau des NIBO burgers&lt;br /&gt;
&lt;br /&gt;
[[Category:NIBO burger]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=Vorlage:/Mainpage/NIBO_burger&amp;diff=1175</id>
		<title>Vorlage:/Mainpage/NIBO burger</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=Vorlage:/Mainpage/NIBO_burger&amp;diff=1175"/>
				<updated>2016-01-29T14:12:49Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:NIBO burger wings.jpg|180px|left|link=NIBO burger|NIBO burger Detail]]&lt;br /&gt;
'''Roboterbausatz [[NIBO burger]]'''&lt;br /&gt;
** Atmel ATmega16A + ATtiny44A&lt;br /&gt;
** 4 Hindernis,&lt;br /&gt;
** 3 Boden-/Farbsensoren&lt;br /&gt;
** 2 Motoren mit 125:1 Getriebe und Odometrie&lt;br /&gt;
** integrierten USB-Programmer mit zusätzlicher Ladefunktion &lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:NIBO_burger_wings.jpg&amp;diff=1174</id>
		<title>Datei:NIBO burger wings.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=Datei:NIBO_burger_wings.jpg&amp;diff=1174"/>
				<updated>2016-01-29T14:10:01Z</updated>
		
		<summary type="html">&lt;p&gt;Workwind: NIBO burger mit Wings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NIBO burger mit Wings&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	</feed>