Skip to main content

IoT
0 followers
0 questions
4 posts

3D printing, robotics and programming

🔧 Project
BlocklyIoT

Otto IoT with ESP8266 / ESP32 WiFi development boards

Otto IoT

After lots of tests and contributions from many of you, we finally have a functional Arduino code / blocks and prototype for Otto using ESP8266 and coming soon with the help of @Nicolas ESP32

Just collecting all initiatives here in one place and how you can get started into the world of IoT with Otto Blockly, oh and the plus of no memory limitation issues as with nano.

Using ESP8266 or WeMos

@Bill SCHONFELDER you are gonna like this board + shield combo i found on amazon

ESP8266 NodeMCU CP2102 ESP-12E

+Shield Module for NodeMCU ESP-12E ESP8266 it comes with L293D + DC Motor Driver!

Input Power:

  • Motor power (VM): 4.5~36V, can be powered separately.
  • Control power (VIN): 4.5V~9V(10V MAX), can be powered separately.
  • Provides a shortcut connector (short by VM and VIN), thus can use one power source (must be 4.5V~9V) to complete the drive and control for motor at a time.
  • Logic working current Iss:<=60mA (Vi=L), <=(Vi=H).
  • Driven working current Io: <=1.2A.
  • Max of dissipation power: 4W(T=90℃).
  • Control signal input voltage: 2.3V<=VIH<=VIN (high), -0.3V<=VIL<=1.5V (low).
  • Working temperature:* -25℃-+125℃.
  • Driven model: double ways large power H bridge driven.
  • ESP-12E Dev Kit control port: D1, D3 (motor A); D2, D4 (motor B).

INTERFACE AND FUNCTION

When you place your NodeMCU V3.0 on the L293D shield, it will use a few pins to control the motor(s). In the table below you can see which of the pins are used by the shield and which are... (More)

📝 Post
IoT
ESP32 compatibility in Arduino.

Hello Camilo Parra Palacio, as you might have noticed, I'm trying to use my Ottoky as a standard Otto, I'm starting with Arduino IDE first, and I guess compatibility in OttoBlockly will be easier after that.

I can now run the "Otto_allmoves" example, but I had to fix the following problems. Please tell me if you need more explanations/details, or if you need me to commit fixes somewhere.
1) softwareserial library included is not compatible with ESP32, I made a quick, temporary fix by adding #define SERIALCOMMAND_HARDWAREONLY in the sketch
2) servo library is not compatible with ESP32. For this one no quick fix, I used ESP32Servo.h library which has the same syntax, and put a #ifdef statement to select library for ESP32 or "standard arduino" in Otto9.h, Oscillator.h, Oscillator.cpp, Otto9Humanoid.h
#ifdef ARDUINO_ARCH_ESP32
#include <ESP32Servo.h>
#else
#include <Servo.h>
#endif

3) Oscillator.h and .cpp use a lot of _[uppercase stuff] variables, these are reserved and should not be used as variable names. Not a problem in basic arduino but it matches the names of some macros in ESP32, so they must all be renamed: _TS => _ts, _A => _amp etc etc

4) min(...) macro used in TimerFreeTone is not defined in ESP32 code, so I added it in TimerFreeTone.h after the include of Arduino.h. There should be a better place to define this or fix this problem, but I don't know where/how yet...

#ifndef min
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif
🔧 Project
IoTOLED

Arduino library to simulate LED panels on OLED screen

As the extension capabilities are a bit limited on the Ottoky I decided to simulate the LED panel on the OLED screen. I started from the Adafruit library and added a ZoomLevel parameter in constructor to allow a "zoom" on the screen so for example the 12864 OLED in 8x zoom will behave like a 16x8 led.

The main advantage compared to drawing circles using the Adafruit library is the much lower memory footprint. 128*64 buffer is 1kb in size with Adafruit library. With the zoom version the buffer is the size of the simulated led panel, so with x8 zoom simulating Otto Eyes the buffer is only 16 bytes.
The data is only generated on the fly

The library can be found here: https://github.com/Nca78/SSD1306_Zoom
Just put in a SSD1306_Zoom directory in your Arduino library folder and you're good to go.

The idea was to make it 100% compatible with the Otto Eyes sketches but unfortunately the way it's implemented at the moment forces to use rotation. But it's still compatible with very little changes, as you can see if you test the attached arduino sketch.

I am working on something to manage faces (mouth + eyes) in one place and output on led matrix and/or OLED, it will be available in a few days.

Usage is easy, pass screen size and zoom level (can be 2,4,8) and then use it like the normal library. Width and height in the constructor are the real size of the OLED screen, but... (More)

Let's welcome Ottoky to the Otto Builder community :D

https://youtu.be/G2qnIp91XPc

Isn't cool right? well make your own now! Attached you will find all the .STL files (update V9) to 3D print your own. 😃

https://youtu.be/AYGf2Ae1-Eg

What do you think of Ottoky?  @Nicolas 

Some already have one here, what is your experience so far? @Gabino Monroy