XinCheJian, Hackerspace, Robots, and HCR at Barcamp Shanghai

March 13th, 2011 § 1 comment § permalink

XinCheJian was in Barcamp Shanghai!

We took the Green for the afternoon to talk about Hackerspace, Maker, Open Source Hardware and of course ROBOTS!!! 😉

IMG 0086

The crazy robot car David was carrying around at Barcamp

The robot was built the night before barcamp with YM4 from Embedream, Arduino Uno and a HC-SR04. The little YM4 is a lot of fun. The independently controlled wheels allowing the car to turn on a fix axis and this saves the use to savor to turn the limited angle SR04 around to inspect the environment. But at 3AM, it was discovered a little drawback of controlling two independent wheels while trying to make the it going straight. Well, it was 3AM so I decide to let it acts a little crazy. I am dedicating this crazy robot to the crazy Shanghai taxi driver who took me to the barcamp in the morning! I will name it 840. 😉

IMG 0078

Pitching Hackerspace

Kicking off the afternoon with pitch of Hackerspace and Maker Culture

IMG 0093

Hmm, this is why the call this session “THE GREEN.” Get to make fun of making is much more fun then golf as hobby.

IMG 0096

HCR, the open source robots from DFRobot

Rick Ye gave a talk on his open source HCR robot. I was driving it around to round up people to the talk. This version has a cam pointing upward and a automated navigation mode. It’s a lot of fun to watch it walking all over the place on its own from the video at the control.

IMG 0106

This little guy has great potential to be a good caddy on the green.

IMG 0110

Video of HCR

Thanks to Scott for the video.

]]>

Cub Scout, Tiger Mom and Arduino Electronic Dice

February 28th, 2011 § 1 comment § permalink

@theliuyan just posted a few pictures from the Sunday’s Cub Scout event. It was fun to introduce some hardware hacking to cub scouts. I think they enjoyed it with their great group of supportive parents. Just put Tiger Mom on the title for SEO. 😉 The activity is part of their scout engineering and we were making Electronics Dice.

IMG_0029

IMG_0027

IMG_0017

]]>

Electronic Dice

February 27th, 2011 § 0 comments § permalink

Got a chance to introduce Arduino to the boy scout at YCIS. It was a fun afternoon working with the boys and the parents. Here are more on the design of the electronic dice. Look forward to seeing the boys completing the system next week.

The tool used to design the dice is Fritzing. It’s an open source design program for interactive electronics. The functionalities of the dice is pretty straight forward: when the button is press, the LEDs start to flash and on the release of the button, one of the LED is randomly picked.

Untitled

Untitled

Arduino is used to drive the dice logics. Arduino is a popular open source microcontroller for building interactive electronics. It comes with an easy-to-use IDE that can be downloaded here.

Untitled

The complete program of the dice is here. Just connect up the Arduino board to the computer using the USB cable and launch the IDE to upload the program. Would be fun to see some tinkering with the program to provide different behavior of the dice.


#define RANDOM 1
#define PICKED 2
#define BOUNCEDELAY 50
int state;
void setup()
{
  pinMode(7, INPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  state = 1;
  Serial.begin(9600);
}
int reading = 0;
int button = 0;
int last_button = 0;
int picked = 0;
void loop()
{
  if (state == RANDOM) {
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    delay(50);
    digitalWrite(2, LOW);
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
    delay(50);
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, HIGH);
    delay(50);
  } else if (state == PICKED) {
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(picked, HIGH);
  }
  reading = digitalRead(7);
  if (reading == last_button) {
    button = reading;
  } else {
   last_button = reading;
  }
  if (button == 1) {
    state = RANDOM;
  } else {
    state = PICKED;
    if (button != last_button) {
      picked = random(3) + 2;
    }
  }
}
]]>

Design a Block Language for Arduino

February 7th, 2011 § 1 comment § permalink

I have been playing around with OpenBlocks. It’s a very flexible environment to create a new block language. When it comes to design one for Arduino, I found myself wondering between two different styles of design.

Design I

The first design is of course to follow the Arduino Language Reference closely. However, the resulting block language seems to be a bit too “verbose?” Or should I say “busy” since it’s really a graphical representation of the textual program. Here is a sample of what it looks like for the equivalence of codes here.

void setup() {
  pinMode(1, INPUT);
  pinMode(2, OUTPUT);
}
void loop() {
  if (digitalRead(1) == HIGH) {
    digitalWrite(2, LOW);
  }
}

Vpl 1

Design II

Since the block language is targeted at the beginner of Arduino and programming, most of time, we talk about “When the button on pin 1 is pushed, I want the LED on pin 2 to light up.” There is a much natural way to map this statement into an intuitive block language by building the blocks around the pin. Here is how it may look like:

Vpl 2

This language is more concise and easier to understand. The language itself should provide enough meta info to infer the setup codes. However, in order to do this, the language may need a little runtime (OS?) to be compiled along with the Sketch but it seems to be worth the effort.

The OpenBlocks codes I am playing around with the idea is available at my ‘ant’ branch openblocks on github. Appreciate any feedback on this.

]]>

Visual Programming Language for Arduino (1)

February 5th, 2011 § 0 comments § permalink

To make Arduino easier for non-programmers, I decided to start a visual programming environment similar to Scratch for Arduino.

Similar Projects around the Web

Modkit is a similar project but at the time I wanted to start the project, it was in a closed alpha. Also, it seems that modkit is going to be proprietary and I want an open source VPL for Arduino. By the way, Modkit CrimpCards is an awesome idea and design.

S4A (Scratch for Arduino) is another interesting project but it’s for using Scratch with Arduino instead of programming for Arduino.

David Mellis over at MIT Media Lab also has a project called “Scratch for Arduino” but no detail yet. David is also one of the creator of Arduino platform.

Arduino IDE and OpenBlocks

Fork the source of Arduino IDE hosted on github to host my version here. Next stop is to find a library for the visual programming. I found a project called OpenBlocks developed as part of the MIT StarLogo NG. Open Blocks is also used in Google’s Android development tool App Inventor.

Both Arduino IDE and Open Blocks are written in Java so the integration should be smooth. Since I have done by share of Java, I decided to also use this opportunities to look into a few alternative languages running on JVM to implement this. Since I have done mostly Ruby for the past few years, JRuby looks pretty good. The language I really want to use is Clojure but it seems it’s a bit tricky to use it embedded in a Java app. Will give both a try and see how it goes.

Let the hacking beging!

Hopefully, we will have a running version in the next few weeks. ]]>

Arduino compatible electronic blocks for Lego from Flamingo EDA

January 26th, 2011 § 0 comments § permalink

Flamingo EDA brought to the Xinshanzhai talk is the Lego compatible sensor block! This is very awesome. I WANT ONE! Actually, I want a DOZENS and a bucket of Lego blocks! IMG_0268.jpg]]>

Robotic class @ Xin Che JIan – 机器人课程 @ 新车间

January 17th, 2011 § 0 comments § permalink

新车间的机器人课程是针对对物理运算有兴趣了解的朋友提供入门的课程和实践机会,适合十岁以上的人参加。 课程内容为: 8小时的授课时间:

  • Arduino入门
    • 电子和物理计算硬件概念
    • 编程语言处理
    • 物理计算: 软件與硬件的互动
  • 机器人入门
    • 什么是机器人?
    • 如何用遥控车和Arduino來做机器人
    • 自主玩具机器人 (A.R.T.) 入门
16小时的实验室时间:
  • 实验室共有2〜3个教师提供援助
  • 动手做自主机器车
对于15岁以下的孩子,我们希望看到家长一同参加。 课程总费用为1500元,包括8小时授课时间和16小时的实验室时间,Arduino材料费,玩具遥控车一台和基本传感器(价值500元),并赠送两个月的新车间超级会员(价值4000元)。 课程時間為周日下午,有兴趣参加可以写邮件到 [email protected] 报名。 Robot class@Xinchejian aims to promote the understanding of physical computing and provide hands-on experience with Arduino platform. This class is designed for 10 years old and more. The robot class consists of 8 hours of lectures and 16 hours of practice. 8 hours of lecture:
  • Introduction to Arduino
    • Hardware Concept of Electronics and Physical Computing
    • Processing programming language
    • Physical Computing: Interface Digital and Physical world
  • Introduction to Robotics
    • What’s robot?
    • Robotics using RC car and Arduino
    • Introduction to A.R.T.
16 hours of supervised hands-on labs:
  • 2 ~ 3 teachers in labs offering assistance
  • make your own autonomous robot car
For kids under 15, we’d like to see parent participate. The cost of the courses is 1500RMB, including 8 hours of lecture plus 16 hours hands-on lab, the Arduino starter kit, RC car and basic sensor (500RMB in value). We will also provide you two-month Xinchejian super membership (4000RMB in value) for free. The classes will be on Sunday afternoon. For class registration, please send email to [email protected].]]>

ARTv5 Electronics Design

January 15th, 2011 § 0 comments § permalink

ARTv4 to have interesting, pseudo-intelligent behaviors (and not running out of SRAM which causes it to reset randomly…), I’m also working on the next generation electrical design for ART… I’m naming the bundle of software and electronics ARTv5. The plan is to support more infrared and ultrasonic sensors with an RF transceiver for sending telemetry information.  I also want to start producing and using PCB boards to get away from the fragile breadboards. More specifically, these PCB will take the form of Arduino-shields that I can stack on top of each other. The plan right now is to create three boards that are stackable:

  • One for the ultrasonics sensors (front, rear, left, right);
  • One for the infrared sensors (front, rear, left, right);
  • One with four connectors to ultrasonics sensors, infrared sensors, motors control in addition to the connector for the RF transceiver.
The last “shield” will also host the CPLD (Xilinx xc9536). All incoming and outgoing signals go through the CPLD to give me the flexibility to do additional processing using digital logic instead of the microcontroller code. In addition, I also have a Texas Instrument CC1101 chipset transceiver (supposedly RFC1100-A but the board they sent me has FT1100A-100) with Power Amplifier that I’m adding so that the Microcontroller can send back telemetry information to the PC… So there’s the following connections:
  • Ultrasonics sensors shield: 10 wires (1 VCC, 1 GND, 4 echos, 4 triggers);
  • Infrared sensors shield: 6 wires (1 VCC, 1 GND, 4 signals);
  • RF transceiver: plugs into two 9×2 headers (1 VCC, 1 GND and the SPI wires);
  • Four control motor wires for the H-bridge (used right now to connect directly to the RF transmitter as a hack).
To do the design, I’m still using the fantastic Fritzing 0.4.3. Although it does crash regularly and has various nitpicks that, if solved, would make this even better there’s nothing really comparable. The workflow feels natural and the results are attractive. I haven’t been able to produce etchable versions of my PCB design due to what seems to be a bug, but the Gerber RS-274X files it generates seem to work fine (if GerberView output is any indication). I’ve compiled a list bought so far and the cost so far is a bit under 800 RMB. On the basis of that new design I need to add to the wishlist a whole bunch of stackable female headers in addition to figuring out the cost of producing the PCB. The BoM generated by Fritzing for the ART Shield says:
  • 1xGeneric female header – 10 pins;
  • 1xGeneric female header – 2 pins;
  • 2xGeneric female header – 4 pins;
  • 1xGeneric female header – 6 pins.
[gallery]]]>

TX-2/RX-2: Heart of the cheap RC Toys from China

January 9th, 2011 § 12 comments § permalink

As I was trying to hook up the motor to Arduino, I realized that there wasn’t any H Bridge and it was way too cold to go out and get it. Hmm… I figure there must be some H Bridge on the control board I just rip out of the car. IMG_0216.jpg As I located the two H bridge on the board, I notice the RX-2 chip. Out of curiosity, I decide to google for this chip. To a pleasant surprise, I found RX-2/TX-2 Datasheet in Chinese and guide for exactly the board in the car and remote. IMG_0215.jpg untitled.jpg Decide to replace RX-2 in the car with Arduino so the H-Bridge on board can be reused and the RF for the remote can still work. Still trying to figure out what I am going to do with those remote control signal. A few facts about RX-2/TX-2 chip I found is that the RC frequency can be adjusted by different resistance from 100K to 500K Ohm between OSCI/OSCO pins. untitled.jpg]]>

ART Telemetry wireless solution

January 9th, 2011 § 2 comments § permalink

Been researching wireless solutions to transmit in real-time sensor and decision information from ART in addition to possibly enabling minimal controls (on/off/behavior switch) and perhaps even wireless firmware updates.

My criteria:
  • Low-cost (<200RMB, preferably <100RMB)
  • Simplex or half-duplex OK
  • Low-bandwidth (>1,200 bit/s)
  • Low-power (<100 mAh)
  • Medium-range (500m-1000m)
  • TTL or SPI interface
One of the main issue is that I cannot find a clear reference to the spectrum allocation in China (The US has a very convenient Frequency Allocations Chart: http://en.wikipedia.org/wiki/Frequency_allocation).
I know that 2.4Ghz is good worldwide (such as what the Nordic nRF240L uses) but that has a very limited range (50m-100m). So is Bluetooth and to a certain degree Wifi (and they are pretty expensive too).
There are these:
Last one actually looks better than the Nordic on paper, but from what I gathered the price is pretty high.  I wonder about the price and why I can’t find it on Taobao…
]]>

Where Am I?

You are currently browsing the arduino category at 新车间 [XinCheJian].