arduino互換のマイコンでwifiとbluetoothを内蔵で1400円の開発キットが買える 今開発をするなら最もオススメできる
- 1.5Vの乾電池2本直列を3.3Vinに接続で動作確認済み
- 充電池での動作確認を予定
- analogreadが3.3Vでarduinoと違い5Vでないので注意する
- arduinoIDEをダウンロードしたディレクトリ内の
hardware
ディレクトリに移動する espressif
というディレクトリを作成esp32
というディレクトリを作成- **https://github.com/espressif/arduino-esp32**からコードをダウンロードする
- 解凍時の中身のみをesp32の中に移動する
注意上記の作業の結果
hardware/espressif/esp32
内にcoresやpackageなど様々なファイルが入っている状態にする。git cloneなどをしてespressif
内にarduino-esp32
をそのまま入れないこと
上記の作業を終了するとArduinoIDEのツール内にあるボードからESP32 Dev Moduleが選択できる
#include <WiFi.h>
const char SSID[] = "********";
const char PASSWORD[] = "*****";
WiFiServer server(80);
void setup() {
Serial.begin(115200);
while (!Serial);
WiFi.begin(SSID, PASSWORD);
Serial.print("WiFi connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(100);
}
Serial.println(" connected");
server.begin();
Serial.print("HTTP Server: http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop() {
WiFiClient client = server.available();
if (client) {
client.println("Hello World!");
client.stop();
}
}
上記のプログラムを実行するとwifiに接続されブラウザで表示されたipに接続すると Hello World!と表示される
I2Cを利用Adafruit 16-Channel 12-bit PWM/Servo Driverを使用する これを使用することで複数のサーボを動かすことが可能になる
**https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library**をarduinoIDEのディレクトリ内の```libraries```内にgit cloneする(zipからダウンロードして解凍でも問題ない)
参考 https://media.dmm-make.com/item/2495/
#include<Wire.h>
#include<Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver pwm= Adafruit_PWMServoDriver();
#define SERVOMIN 150
#define SERVOMAX 600
void setup() {
pwm.begin();
pwm.setPWMFreq(50);
servo_write(0,90);
delay(3000);
}
void loop() {
servo_write(0,90);
servo_write(2,90);
servo_write(4,90);
delay(1000);
}
void servo_write(int n, int ang){
ang = map(ang, 0, 180, SERVOMIN, SERVOMAX);
pwm.setPWM(n, 0, ang);
}
- SERVOMINとSERVOMAXの値はそのサーボの最小最大のPWM周波数なので使用するサーボによって設定を変更する
- pwm.setPWMFreqはサーボのPWM周期なので使用サーボによって設定を変更する