åæ
èªå® ã§ç³æ²¹ææ¿ãããŠããŸãã ã¿ã³ã¯å ã®ãªã€ã«ã¬ãã«ã枬å®ããããã«ãç¢å°ãšããŒãäžã®ãããŒããåããæ§åŒã®ã»ã³ãµãŒã䜿çšãããŸãã ã»ã³ãµãŒã®åäœåçã¯ããã®äžæ£ç¢ºãã«é¡èã§ãã ããããç§ãã¡ã¯åäŸã®é ããé ãæªæ¥ã«äœãã§ããã®ã§ã次ã®æ¡ä»¶ãæºããã»ã³ãµãŒãäœããããšæããŸããã
- ã»ã³ãµãŒã¯ããžã¿ã«ã§ãªããã°ãªããŸããã
- 圌ã®èšŒèšã¯ãããªãåŠçã®ããã«ä¿åãããã¹ãã§ãã
- ããŒã¿ã¯ãã€ã§ãã©ãã§ãå©çšã§ããã¯ãã§ãã
- ããã€ã¹å šäœã¯200ãŠãŒãããå®ããªããã°ãªããŸããã
ãã¡ãããææã®Visual Studioã«åãæ¿ããããšã¯ã§ããŸããããçŸæç¹ã§ã¯èªåã§LinuxãåçºèŠããŠãããããWindowsã¯äœ¿çšã§ããŸããã
ä»æ¥ãUbuntu 10.10ã§Arduino Unoãšé£æºããããã«Eclipseãæ§æããæ¹æ³ã«ã€ããŠå ±æããããšæããŸãã
äœãå¿ èŠã§ãã
ãœãããŠã§ã¢
- Ubuntu 10.10ãã€ã³ã¹ããŒã«ãããPC
- Eclipse IDEãããŒãžã§ã³3.5.2ã䜿çšããŸãã
- C Development ToolkitãããŒãžã§ã³6.0.2ã䜿çšããŸãã
- Eclipseçšã®AVRãã©ã°ã€ã³ãããŒãžã§ã³2.3.4ã䜿çšããŸãã
- GNU AVR-GCCããŒã«ãã§ãŒã³
- Arduino IDEãããŒãžã§ã³0022ã䜿çšããŸãã
- Arduino uno
- Arduinoãã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ããããã®USBã±ãŒãã«
- ã³ã³ãã¥ãŒã¿ãŒã®ç©ºãUSBããŒãã
ãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«
1.1 Eclipseãã€ã³ã¹ããŒã«ããŸãããã®ãããUbuntu Software Centerã«ç§»åããæ€çŽ¢ã«ãEclipseããšããåèªãå ¥åããEclipseã®è¡ã§[ã€ã³ã¹ããŒã«]ãã¿ã³ãã¯ãªãã¯ããŸãã![](https://habrastorage.org/storage/habraeffect/79/5f/795f3cd0459e461b1cbdccbe5f4d67ca.jpg)
ãŸãã¯ãã¿ãŒããã«ã«æ¬¡ã®ããã«èšè¿°ã§ããŸãã
sudo apt-get install eclipse-platform
1.2 C Development Toolkitãã€ã³ã¹ããŒã«ããŸãã ãããè¡ãã«ã¯ãEclipseãéãã[ãã«ã]ã¡ãã¥ãŒã«ç§»åããŠã[æ°ãããœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«...]ãã¯ãªãã¯ããŸãã
ãŠã£ã³ããŠãéããŸãã [äœæ¥]ãã£ãŒã«ãã§ã[ã¬ãªã¬ãªæŽæ°ãµã€ã]ããŒãžãéžæããŸãã
æ€çŽ¢ããã¯ã¹ã«ããEclipse C / C ++ Development Toolsããšããè¡ãæ¿å ¥ããŸã
![](https://habrastorage.org/storage/habraeffect/9a/d9/9ad9b7105e9c8989cc047d3ac141e56e.jpg)
æ€çŽ¢çµæã®å·ŠåŽã«ããããã¯ã¹ãã€ãŸã ãEclipse C / C ++ Development Toolsãã®è¡ã®å察åŽã§ãNextããã¯ãªãã¯ãã次ã«ãNextãããAcceptãããFinishãã®é ã«ã¯ãªãã¯ããŸã ãã®ã¹ãŒããŒã³ã³ãã®åŸãCDTã®ã€ã³ã¹ããŒã«ãéå§ãããŸãã ã€ã³ã¹ããŒã«åŸãEclipseãåèµ·åããŸãã
1.3 AVRãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããŸãã ãæ°ãããœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ããŠã£ã³ããŠãéãããè¿œå ...ããã¿ã³ãã¯ãªãã¯ããŠããã©ã°ã€ã³ãååŸããã¢ãã¬ã¹ãå ¥åããŸãã ãååããã£ãŒã«ãã«ãAVR plugins for Eclipseããšå ¥åãããå Žæããã£ãŒã«ãã«æ¬¡ã®ããã«å ¥åããŸãã
http://avr-eclipse.sourceforge.net/updatesite/OKãã¯ãªãã¯ããŸãã ãAVR Eclipse Pluginããšããè¡ã«ããŒã¯ãä»ããŠãã¹ããã1.2ããã®ã³ã³ããå®è¡ããŸãã EclipseãéããŸãã
1.4 GNU AVR-GCCããŒã«ãã§ãŒã³ã®ã€ã³ã¹ããŒã«ã¯ãã¿ãŒããã«ããå®è¡ãããŸãã ãããè¡ãã«ã¯ãã¿ãŒããã«ã«æ¬¡ã®è¡ãæ¿å ¥ããŸãã
sudo apt-get install avrdude binutils-avr gcc-avr avr-libc gdb-avr
EnterããŒãæŒããŠå°ãåŸ ã¡ãŸãã
Eclipseãæ§æãã
Eclipseã«å¿ èŠãªãã¹ãŠã®ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããããAVRDudeãæ§æããå¿ èŠããããŸãã ãããè¡ãã«ã¯ãEclipseã®èšå®ã¡ãã¥ãŒïŒ ãŠã£ã³ããŠâPrefrences ïŒã«ç§»åããŸããæ€çŽ¢ããŒã«ãAVRDudeããšå ¥åããŠEnterããŒãæŒããšã次ã®ãŠã£ã³ããŠã衚瀺ãããŸãã
![](https://habrastorage.org/storage/habraeffect/1d/86/1d8692a8d3d66d1f76b9e8ce03a316c6.jpg)
ãè¿œå ããã¿ã³ãã¯ãªãã¯ããŠãããã°ã©ãçšã®æ°ããæ§æãè¿œå ããŸãã ãããè¡ãã«ã¯ãéãããŠã£ã³ããŠã§ãæ§æã®ååãšèª¬æãå€æŽããŸãïŒæ³šæçšïŒã [Programmer HardwareïŒ-cïŒ]ãªã¹ãã§ArduinoãéžæããŸãã ãããã©ã«ãã®ããŒã¬ãŒãããªãŒããŒã©ã€ãããïŒ-bïŒããã£ãŒã«ãã§å€115200ãéžæãããããã©ã«ãã®ããŒãããªãŒããŒã©ã€ãããïŒ-PïŒããã£ãŒã«ãã§å€/ dev / ttyACM0ãèšå®ããå¿ èŠããããŸãïŒArduinoãæ¥ç¶ãããŠããããŒãã¯ç§ã®ããŒããšç°ãªãå ŽåããããŸãArduino IDEïŒã
![](https://habrastorage.org/storage/habraeffect/30/3f/303f6d1a21d5fdbebc5e0bfe66ad4205.jpg)
OKãã¯ãªãã¯ããŸãã ããäžåºŠOKã
Arduinoçšã®ãããžã§ã¯ããäœæãã
æåã®ãããžã§ã¯ãã§ã¯ããã³ã§ãããžã§ã¯ãã調æŽããå¿ èŠããããŸãã ãããã£ãŠããã®ãããžã§ã¯ããArduinoã®ãããŒã¹ããããžã§ã¯ããšããŠäœæããå¿ èŠã«å¿ããŠã³ããŒããããšããå§ãããŸãã2.1 Eclipseã§ãã¡ãã¥ãŒïŒ ãã¡ã€ã«âæ°èŠâãããžã§ã¯ã... ïŒã«é²ã¿ããCãããžã§ã¯ãããéžæããŠãã次ãžããã¯ãªãã¯ããŸãã
2.2ç§ãã¡ã¯åäŸãç§ã®å Žåã¯ArduinoUnoãšåŒã³ããããžã§ã¯ãã®ã¿ã€ããéžæããŸããã AVR Cross Target Application ããå¿ èŠã§ãã å®äºãã¯ãªãã¯ããŸãã
2.3 ããããžã§ã¯ããšã¯ã¹ãããŒã©ãŒããŠã£ã³ããŠã§ãããžã§ã¯ããéžæãããããžã§ã¯ãèšå®ãå€æŽããŸãïŒ ãããžã§ã¯ãâãããã㣠ïŒã éãããŠã£ã³ããŠã®å·Šãã€ã³ã«ãAVRã¿ããããããããå±éããŸãã
2.4 AVRDudeãã¯ãªãã¯ããããã°ã©ããŒæ§æãéžæããŸãïŒä»¥åã«äœæããŸããïŒã
2.5 USBã±ãŒãã«ã䜿çšããŠArduinoãã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ããŸãã Arduinoããªã³ã«ãªã£ãŠããããšã確èªããŠãã ããã
2.6 [ã¿ãŒã²ããããŒããŠã§ã¢]ãå·Šã¯ãªãã¯ããŸãã å³åŽã«ãMCUããããŒãããã¿ã³ã衚瀺ãããŸãããããã¯ãªãã¯ããŸãã MCUã®ã¿ã€ããšåšæ³¢æ°ã¯ãã䜿çšã®ãã€ã¯ãã³ã³ãããŒã©ãŒã«åãããŠå€æŽããå¿ èŠããããŸãã ã¯ãªã¹ã¿ã«ã®å»å°ã§ã¿ã€ãã確èªããŸããäžèŽããå Žåã¯ãè¯å¥œã§ãã ã³ã³ãããŒã©ãŒãèªåçã«èªèã§ããªãå Žåã¯ã説æãããŒããŠã§ã¢ã«ã¹ã¢ãŒã¯ããå€ãæã§èšå®ããŸãã Unoã®å Žåãã¿ã€ãã¯ATmega328Pããã³16 MHzã®åšæ³¢æ°ãšããŠèªèãããŸãã
2.7 [OK]ãã¯ãªãã¯ããŠ[ããããã£]ãŠã£ã³ããŠãéããŸãã
Arduino Unoã®ã©ã€ãã©ãªãäœæãã
Arduinoã䜿çšããåãããžã§ã¯ãã«ã¯ãã«ãŒãã«ã©ã€ãã©ãªãå¿ èŠã§ãã ååŸããæ¹æ³ã¯ããã€ããããŸãããæéã®æ¹æ³ã¯å ã®Arduinoéçºç°å¢ãããããåŒãåºãããšã§ãã ä»äœãããŸããã3.1 Arduino IDEã®èµ·å
3.2ããŒããŠã§ã¢ã®éžæïŒ ããŒã«âããŒãâ... ïŒãã®äŸã§ã¯ãArduino UnoãéžæããŸãã
3.3 Blinkãªã©ã®ãµã³ãã«ã³ãŒããããŠã³ããŒãããŸãïŒ [ãã¡ã€ã«]â[äŸ]â[åºæ¬]â[ç¹æ» ] ïŒã
3.4 [確èª]ãã¿ã³ãã¯ãªãã¯ããŸã
3.5次ã«ãå¿ èŠãªã©ã€ãã©ãªããããã©ã«ããŒã«ç§»åããŸãã ãã©ã«ããŒ/tmp/buildXXXXXXXX.tmp/ã§æ¢ãå¿ èŠããããŸããXXXXXXXXXã¯æ°åã®æã§ãã ãã®ãããªãã©ã«ããè€æ°ããå Žåã¯ããã¹ãŠã®ãã£ã¬ã¯ããªãæ¶å»ããŠã3.4ã«é²ã¿ãŸãã
3.6 core.aãã¡ã€ã«ã®ååãlibArduinoUnoCore.aã«å€æŽ
3.7ãã¡ã€ã«ãEclipseãããžã§ã¯ãã«ãã©ãã°ã¢ã³ãããããããŠãããã«ããããããŸãã
ãã«ããã«ã¹ã¿ãã€ãºãã
ãã«ããæåãããããã®ããã€ãã®èšå®ãè¡ãã ãã§ãå®äºã§ãã4.1 Eclipseã§ãAlt + EnterãæŒããŠãããžã§ã¯ãèšå®ã«å ¥ããŸãã
4.2 C / C ++ãã©ã³ãã«ç§»åããŸãïŒ ãã«ãâèšå® ïŒã [ããŒã«èšå®]ã¿ãã§ã[ããŒã«ãã§ãŒã³ã®è¿œå ããŒã«]ã¢ã€ãã ãéžæãããã§ãã¯ããã¯ã¹ããªã³ã«ããŸã
- ãã©ãã·ã¥ã¡ã¢ãªçšã®HEXãã¡ã€ã«ãçæãã
- å°å·ãµã€ãº
- AVRDude
![](https://habrastorage.org/storage/habraeffect/86/dd/86dd2855d098ee22770d17b5eba1aa60.jpg)
4.4 AVR Compilerã¿ãã«è¡ãããããã¯ãªãã¯ããŠãã³ãã³ããã£ãŒã«ãã®å€ããavr-gccããããavr-g ++ãã«å€æŽããŸãã
4.5次ã«ã AVR CompilerâDirectoriesãã©ã³ãã«é²ã¿ãlibArduinoUnoCore.aã«ããããŒãã¡ã€ã«ãèŠã€ããããšãã§ãããã¹ãè¿œå ããŸãã å¿ èŠãªãã¹ã¯ãArduino IDEã®ãããã©ã«ããŒã«ãããŸãã ... / arduino-0022 /ããŒããŠã§ã¢/ arduino / cores / arduino /ïŒçç¥èšå·ãIDEãžã®ãã¹ã«çœ®ãæããŸãïŒ ããã¯ãã³ã³ãã€ã©ã«ç€ºããã¹ã§ãã
![](https://habrastorage.org/storage/habraeffect/11/19/11199aadcd155656f8b544e28d83028b.jpg)
4.5次ã«ã AVR CompilerâDebuggingãã©ã³ãã«é²ã¿ãGenerate Debugging Infoå€ãNo debugging Infoã«èšå®ããŸãã
4.6 AVRã³ã³ãã€ã©ãŒâæé©åãã©ã³ãã«ç§»åããæé©åã¬ãã«ããµã€ãºæé©åïŒ-OsïŒã«èšå®ããŸã
4.7 AVR Assemblerâãããã°ãã©ã³ãã§ããããã°æ å ±ã®çæå€ããããã°æ å ±ãªãã«èšå®ããŸãã
4.8 AVR Cãªã³ã«ãŒâäžè¬ãã©ã³ãã®ãã®ä»ã®åŒæ°ãã£ãŒã«ãã«ãã-cref -Wlã-gc-sectionsããšèšè¿°ããŸãã ããã«ãããHEXãã¡ã€ã«ã4åã®1ã«åæžãããŸãã
4.9ãããŠã AVR Cãªã³ã«ãŒâã©ã€ãã©ãªã®æåŸã®ä»äžã ïŒ
- ã©ã€ãã©ãªã«ArduinoUnoCoreã©ã€ãã©ãªãè¿œå ïŒ-lïŒ
- ãã®ãããžã§ã¯ãã®ã©ã€ãã©ãªãã¹ïŒ-LïŒã«ãã¹ãè¿œå ããŸãã ã $ {workspace_locïŒ/ ArduinoUno} ã
![](https://habrastorage.org/storage/habraeffect/6d/bb/6dbb4936646ca8756c64f09b03642737.jpg)
main.cãäœæããŸã
ããŠãç§ãã¡ã¯å€§äºãªã¡ã€ã³ãã¡ã€ã«ã«å°éããŸããã Arduino IDEããèŠããŠããããã«ã2ã€ã®é¢æ°ãäœæããå¿ èŠãããããã¹ãŠãæ©èœããŸãïŒã»ããã¢ãããšã«ãŒãïŒã ãã®ãããžã§ã¯ãã§ã¯ãããå€ãã®ã³ãŒããèšè¿°ããå¿ èŠããããŸãããããžã§ã¯ãã«main.cãšããååã®æ°ãããã¡ã€ã«ãäœæããããšããå§ãããŸãïŒ[ãã¡ã€ã«]â[æ°èŠ]â[ãœãŒã¹ãã¡ã€ã«]ïŒã ãããŠã次ã®ã³ãŒããããã«è²Œãä»ããŸãïŒ/ *
* main.c
*
*äœææ¥ïŒ01/12/2011
*
* Arduinoãããžã§ã¯ãã®åºæ¬ã¡ã€ã³ãã¡ã€ã«ã
* /
#include "WProgram.h"
//ã°ããŒãã«å€æ°
int g_LedPin = 13; //ããžã¿ã«ãã³13ã®LED
ãã€ãèšå®ïŒïŒ
{
//ã·ãªã¢ã«ããŒããéããããŒã¿ã¬ãŒãã9600 bpsã«èšå®ããŸã
Serial.beginïŒ9600ïŒ;
//ãã³ãåºåãšããŠèšå®ããŸã
pinModeïŒg_LedPinãOUTPUTïŒ;
Serial.printlnïŒ "********************" ïŒ;
Serial.printlnïŒ "* hello world *" ïŒ;
Serial.printlnïŒ "********************" ïŒ;
}
ãã€ãã«ãŒãïŒïŒ
{
digitalWriteïŒg_LedPinãHIGHïŒ; // LEDããªã³ã«èšå®ããŸã
é 延ïŒ1000ïŒ; //ãã°ããåŸ ã¡ãŸã
digitalWriteïŒg_LedPinãLOWïŒ; // LEDããªãã«èšå®ããŸã
é 延ïŒ1000ïŒ; //ãã°ããåŸ ã¡ãŸã
}
extern "C" void __cxa_pure_virtualïŒïŒ
{
while ïŒ1ïŒ;
}
int mainïŒ void ïŒ
{
initïŒïŒ;
ã»ããã¢ããïŒïŒ;
//ç¡éã«ãŒã
ïŒ;;ïŒ
{
ã«ãŒãïŒïŒ;
}
0ãè¿ããŸãã
}
ã³ãŒããæ¿å ¥ãããããããžã§ã¯ãããã«ãããã ãã§ãã ããããããªãã¯èªåã§ãããåŠçã§ãããšæããŸãã ããã§ããææ¡ãããããŒãžã§ã³ã§ã¯ãHEXãã¡ã€ã«ã®ãµã€ãºã¯Arduinoã®å ã®éçºç°å¢ãšç«¶åããŠããŸãã