Arduino IDE로 Raspberry Pi 이용하기
Arduino IDE에서 Raspberry Pi를 개발보드로 이용할 수 있는 팁입니다.
다음 링크를 참조하시기 바랍니다: https://github.com/me-no-dev/RasPiArduino
Arduino Framework for RaspberryPI
Features
- The familiar Arduino API
- pinMode/digitalRead/digitalWrite/analogWrite
- Full SPI, Wire and Serial compatibility
- Access to STDIN/STDOUT through the Console class
- Access to system tty through the TTY library
- Process, FileIO, Client, Server and UDP implementations through the Bridge library
Instructions for Arduino IDE
- Open the installation folder of Arduino IDE
- Create a folder named “RaspberryPi” inside “hardware” and clone the repository to a folder named “piduino”
mkdir hardware/RaspberryPi cd hardware/RaspberryPi git clone https://github.com/me-no-dev/RasPiArduino piduino
- Download , extract and copy the toolchain to piduino/tools/arm-linux-gnueabihf
- Windows: gnutoolchains.com
- The toolchain for Jessie will work ONLY on RaspberryPi 2
- The toolchain for Wheezy will work on ALL RaspberryPi boards (recommended)
- Video Instructions
- Linux 64: arm-linux-gnueabihf
- Linux 32: arm-linux-gnueabihf
- Mac OS X: arm-linux-gnueabihf
- Windows: gnutoolchains.com
- Restart Arduino IDE and select the RaspberryPI from the list of boards
- Compile a sketch
- Select the RaspberryPi from the list of Ports (will show the IP address)
- Upload your sketch and see it go
Instructions for the PI
- Install Raspbian Jessie on your RaspberryPI
- Gain root permissions
sudo su
- Enable password login for root
passwd
- enter the new root password twice
- Edit
/etc/ssh/sshd_config
and make sure that the following lines exist and are not commented
PermitRootLogin yes PasswordAuthentication yes
- Disable Serial Console on boot by removing
console=/dev/ttyAMA0
from /boot/cmdline.txt (or through raspi-config) - Disable Serial tty
systemctl disable serial-getty@ttyAMA0
- Disable loading sound kernel module
sed -i "s/dtparam=audio=on/#dtparam=audio=on/" /boot/config.txt
- Change the hostname for your Pi (optional) (also through raspi-config)
hostnamectl set-hostname piduino
- Setup WiFi (optional)
cat > /etc/wpa_supplicant/wpa_supplicant.conf <<EOL ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="your-ssid" psk="your-pass" } EOL
- Setup avahi service to allow updating the sketch from ArduinoIDE
cat > /etc/avahi/services/arduino.service <<EOL <?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">%h</name> <service> <type>_arduino._tcp</type> <port>22</port> <txt-record>board=bplus</txt-record> </service> </service-group> EOL service avahi-daemon restart
- Install telnet and git
apt-get update apt-get install telnet git
- Copy all files from tools/arpi_bins to /usr/local/bin
git clone https://github.com/me-no-dev/RasPiArduino.git piduino chmod +x piduino/tools/arpi_bins/* cp piduino/tools/arpi_bins/* /usr/local/bin rm -rf piduino
- Create symbolic link for run-avrdude
ln -s /usr/local/bin/run-avrdude /usr/bin/run-avrdude
- Synchronize time and start sketch on boot (optional)
apt-get install ntpdate cat > /etc/rc.local <<EOL #!/bin/sh -e _IP=\$(hostname -I) || true if [ "\$_IP" ]; then printf "My IP address is %s\n" "\$_IP" fi # Sync Time ntpdate-debian -u > /dev/null # Start Sketch /usr/local/bin/run-sketch > /dev/null exit 0 EOL
- Prevent some RealTek USB WiFi from sleep (optional) (EU)
echo "options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1" > /etc/modprobe.d/8192cu.conf echo "options r8188eu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1" > /etc/modprobe.d/r8188eu.conf
- Disable screen blank (optional)
sed -i "s/BLANK_TIME=30/BLANK_TIME=0/" /etc/kbd/config sed -i "s/POWERDOWN_TIME=30/POWERDOWN_TIME=0/" /etc/kbd/config
- Do not load I2C UART or SPI kernel drivers
- reboot